Skip to content

Commit 7d9c39b

Browse files
committed
Implemented unit test TestCLI.testDir() for issue #18.
1 parent 65e2d81 commit 7d9c39b

File tree

4 files changed

+109
-0
lines changed

4 files changed

+109
-0
lines changed

test/bin2cpp_unittest/CMakeLists.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ include_directories(${GENERATED_TEST_FILES_DIR}/testSequential10MB)
2626
include_directories(${GENERATED_TEST_FILES_DIR}/testText10)
2727
include_directories(${GENERATED_TEST_FILES_DIR}/testText1000)
2828
include_directories(${GENERATED_TEST_FILES_DIR}/testText100000)
29+
include_directories(${GENERATED_TEST_FILES_DIR}/testDir01/sources)
2930
if (WIN32)
3031
include_directories(${GENERATED_TEST_FILES_DIR}/testGeneratorWin32)
3132
endif()
@@ -79,6 +80,16 @@ set(GENERATED_TEST_FILES
7980
${GENERATED_TEST_FILES_DIR}/testText1000/_testText1000.cpp
8081
${GENERATED_TEST_FILES_DIR}/testText100000/_testText100000.h
8182
${GENERATED_TEST_FILES_DIR}/testText100000/_testText100000.cpp
83+
${GENERATED_TEST_FILES_DIR}/testDir01/sources/_img0001.h
84+
${GENERATED_TEST_FILES_DIR}/testDir01/sources/_img0002.h
85+
${GENERATED_TEST_FILES_DIR}/testDir01/sources/_img0003.h
86+
${GENERATED_TEST_FILES_DIR}/testDir01/sources/_img0004.h
87+
${GENERATED_TEST_FILES_DIR}/testDir01/sources/_img0005.h
88+
${GENERATED_TEST_FILES_DIR}/testDir01/sources/_img0001.cpp
89+
${GENERATED_TEST_FILES_DIR}/testDir01/sources/_img0002.cpp
90+
${GENERATED_TEST_FILES_DIR}/testDir01/sources/_img0003.cpp
91+
${GENERATED_TEST_FILES_DIR}/testDir01/sources/_img0004.cpp
92+
${GENERATED_TEST_FILES_DIR}/testDir01/sources/_img0005.cpp
8293
)
8394
if (WIN32)
8495
# Include win32 generated test files only on Windows platform.

test/bin2cpp_unittest/TestCLI.cpp

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -721,6 +721,76 @@ TEST_F(TestCLI, testEncoding)
721721
//cleanup
722722
ASSERT_TRUE(deleteFile(outputFilePath.c_str()));
723723
}
724+
725+
TEST_F(TestCLI, testDir)
726+
{
727+
static const std::string expectedFilePath = getExpectedFilePath();
728+
static const std::string outputFilePath = getActualFilePath();
729+
730+
std::string headerFileName = std::string("_") + ra::gtesthelp::getTestCaseName().c_str() + ".h";
731+
std::string headerFilePath = gGeneratedFilesDir + headerFileName;
732+
std::string cppFilePath = headerFilePath; ra::strings::replace(cppFilePath, ".h", ".cpp");
733+
734+
//build command line
735+
std::string cmdline;
736+
cmdline.append(getBin2cppPath());
737+
cmdline.append(" --dir=generated_files\\testDir01\\images"); //use windows path separator
738+
cmdline.append(" --output=generated_files\\testDir01\\sources");
739+
cmdline.append(" --noheader");
740+
741+
cmdline.append(" >");
742+
cmdline.append(outputFilePath.c_str());
743+
744+
#ifdef __linux__
745+
//fix path separator
746+
ra::strings::replace(cmdline, "\\", "/");
747+
#endif
748+
749+
//build the list of generated files
750+
const char * generated_files_tmp[] = {
751+
"generated_files\\testDir01\\sources\\IMG_0001.h" ,
752+
"generated_files\\testDir01\\sources\\IMG_0002.h" ,
753+
"generated_files\\testDir01\\sources\\IMG_0003.h" ,
754+
"generated_files\\testDir01\\sources\\IMG_0004.h" ,
755+
"generated_files\\testDir01\\sources\\IMG_0005.h" ,
756+
"generated_files\\testDir01\\sources\\IMG_0001.cpp",
757+
"generated_files\\testDir01\\sources\\IMG_0002.cpp",
758+
"generated_files\\testDir01\\sources\\IMG_0003.cpp",
759+
"generated_files\\testDir01\\sources\\IMG_0004.cpp",
760+
"generated_files\\testDir01\\sources\\IMG_0005.cpp",
761+
};
762+
const size_t num_generated_files = sizeof(generated_files_tmp)/sizeof(generated_files_tmp[0]);
763+
ra::strings::StringVector generated_files;
764+
for(size_t i=0; i<num_generated_files; i++)
765+
{
766+
generated_files.push_back(generated_files_tmp[i]);
767+
#ifdef __linux__
768+
ra::strings::replace(generated_files[i], "\\", "/"); //fix path separator
769+
#endif
770+
}
771+
772+
//delete generated files
773+
for(size_t i=0; i<generated_files.size(); i++)
774+
{
775+
const std::string & generated_file = generated_files[i];
776+
ASSERT_TRUE(deleteFile(generated_file.c_str()));
777+
}
778+
779+
//run the command
780+
int returnCode = system(cmdline.c_str());
781+
ASSERT_EQ(0, returnCode) << "The command line '" << cmdline.c_str() << "' returned " << returnCode;
782+
783+
//assert that expected files were generated
784+
for(size_t i=0; i<generated_files.size(); i++)
785+
{
786+
const std::string & generates_file = generated_files[i];
787+
ASSERT_TRUE(ra::filesystem::fileExists(generates_file.c_str())) << "File not found: '" << generates_file.c_str() << "'.";
788+
}
789+
790+
//cleanup
791+
ASSERT_TRUE(deleteFile(outputFilePath.c_str()));
792+
}
793+
724794
TEST_F(TestCLI, testErrorMissingArgumentFileOrDir)
725795
{
726796
static const std::string expectedFilePath = getExpectedFilePath();

test/bin2cpp_unittest/generate_test_files.bat.in

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,4 +162,18 @@ mkdir %OUTDIR% 1>NUL 2>NUL
162162
@TESTFILEGENERATOR_TARGET_FILE@ --file=%OUTDIR%\%TEST_NAME%.bin --size=1000 --fill=random --seed=1
163163
@BIN2CPP_TARGET_FILE@ --noheader --file=%OUTDIR%\%TEST_NAME%.bin --output=%OUTDIR% --headerfile=_%TEST_NAME%.h --identifier=%TEST_NAME% --chunksize=100 --override
164164

165+
set TEST_NAME=testDir01
166+
set OUTDIR=.\generated_files\%TEST_NAME%
167+
mkdir %OUTDIR% 1>NUL 2>NUL
168+
@TESTFILEGENERATOR_TARGET_FILE@ --file=%OUTDIR%\images\IMG_0001.jpg --size=1010 --fill=random --seed=1
169+
@TESTFILEGENERATOR_TARGET_FILE@ --file=%OUTDIR%\images\IMG_0002.jpg --size=1020 --fill=random --seed=2
170+
@TESTFILEGENERATOR_TARGET_FILE@ --file=%OUTDIR%\images\IMG_0003.jpg --size=1030 --fill=random --seed=3
171+
@TESTFILEGENERATOR_TARGET_FILE@ --file=%OUTDIR%\images\IMG_0004.jpg --size=1040 --fill=random --seed=4
172+
@TESTFILEGENERATOR_TARGET_FILE@ --file=%OUTDIR%\images\IMG_0005.jpg --size=1050 --fill=random --seed=5
173+
@BIN2CPP_TARGET_FILE@ --noheader --file=%OUTDIR%\images\IMG_0001.jpg --output=%OUTDIR%\sources --headerfile=_img0001.h --identifier=Img0001 --chunksize=200 --override
174+
@BIN2CPP_TARGET_FILE@ --noheader --file=%OUTDIR%\images\IMG_0002.jpg --output=%OUTDIR%\sources --headerfile=_img0002.h --identifier=Img0002 --chunksize=200 --override
175+
@BIN2CPP_TARGET_FILE@ --noheader --file=%OUTDIR%\images\IMG_0003.jpg --output=%OUTDIR%\sources --headerfile=_img0003.h --identifier=Img0003 --chunksize=200 --override
176+
@BIN2CPP_TARGET_FILE@ --noheader --file=%OUTDIR%\images\IMG_0004.jpg --output=%OUTDIR%\sources --headerfile=_img0004.h --identifier=Img0004 --chunksize=200 --override
177+
@BIN2CPP_TARGET_FILE@ --noheader --file=%OUTDIR%\images\IMG_0005.jpg --output=%OUTDIR%\sources --headerfile=_img0005.h --identifier=Img0005 --chunksize=200 --override
178+
165179
dir >NUL

test/bin2cpp_unittest/generate_test_files.sh.in

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,3 +159,17 @@ export OUTDIR=./generated_files/$TEST_NAME
159159
mkdir -p ${OUTDIR}
160160
@TESTFILEGENERATOR_TARGET_FILE@ --file=$OUTDIR/$TEST_NAME.bin --size=1000 --fill=random --seed=1
161161
@BIN2CPP_TARGET_FILE@ --noheader --file=$OUTDIR/$TEST_NAME.bin --output=$OUTDIR --headerfile=_$TEST_NAME.h --identifier=$TEST_NAME --chunksize=100 --override
162+
163+
export TEST_NAME=testDir01
164+
export OUTDIR=./generated_files/$TEST_NAME
165+
mkdir -p ${OUTDIR}
166+
@TESTFILEGENERATOR_TARGET_FILE@ --file=$OUTDIR/images/IMG_0001.jpg --size=1010 --fill=random --seed=1
167+
@TESTFILEGENERATOR_TARGET_FILE@ --file=$OUTDIR/images/IMG_0002.jpg --size=1020 --fill=random --seed=2
168+
@TESTFILEGENERATOR_TARGET_FILE@ --file=$OUTDIR/images/IMG_0003.jpg --size=1030 --fill=random --seed=3
169+
@TESTFILEGENERATOR_TARGET_FILE@ --file=$OUTDIR/images/IMG_0004.jpg --size=1040 --fill=random --seed=4
170+
@TESTFILEGENERATOR_TARGET_FILE@ --file=$OUTDIR/images/IMG_0005.jpg --size=1050 --fill=random --seed=5
171+
@BIN2CPP_TARGET_FILE@ --noheader --file=$OUTDIR/images/IMG_0001.jpg --output=$OUTDIR/sources --headerfile=_img0001.h --identifier=Img0001 --chunksize=200 --override
172+
@BIN2CPP_TARGET_FILE@ --noheader --file=$OUTDIR/images/IMG_0002.jpg --output=$OUTDIR/sources --headerfile=_img0002.h --identifier=Img0002 --chunksize=200 --override
173+
@BIN2CPP_TARGET_FILE@ --noheader --file=$OUTDIR/images/IMG_0003.jpg --output=$OUTDIR/sources --headerfile=_img0003.h --identifier=Img0003 --chunksize=200 --override
174+
@BIN2CPP_TARGET_FILE@ --noheader --file=$OUTDIR/images/IMG_0004.jpg --output=$OUTDIR/sources --headerfile=_img0004.h --identifier=Img0004 --chunksize=200 --override
175+
@BIN2CPP_TARGET_FILE@ --noheader --file=$OUTDIR/images/IMG_0005.jpg --output=$OUTDIR/sources --headerfile=_img0005.h --identifier=Img0005 --chunksize=200 --override

0 commit comments

Comments
 (0)