🔧 Make tests read mo-file from subdir

This commit is contained in:
Edgar 2021-08-25 10:52:38 +02:00
parent 5c00a6ff3e
commit fe422db632
7 changed files with 15 additions and 14 deletions

View File

@ -1,6 +1,6 @@
set(Catch2_FOUND TRUE) set(Catch2_FOUND TRUE)
set(CATCH2_VERSION "v2.13.4") set(CATCH2_VERSION "v2.13.7")
set(CATCH2_INCLUDEDIR "${CMAKE_BINARY_DIR}/catch-${CATCH2_VERSION}") set(CATCH2_INCLUDEDIR "${CMAKE_BINARY_DIR}/catch-${CATCH2_VERSION}")
list(APPEND CMAKE_MODULE_PATH "${CATCH2_INCLUDEDIR}") list(APPEND CMAKE_MODULE_PATH "${CATCH2_INCLUDEDIR}")

View File

@ -4,13 +4,12 @@ find_package(Catch2 REQUIRED)
include(CTest) include(CTest)
include(Catch) include(Catch)
add_executable(${PROJECT_NAME} test.cpp link_test.cpp) add_executable(${PROJECT_NAME} main.cpp test.cpp link_test.cpp)
target_include_directories(moFileReaderTest PRIVATE ${CMAKE_SOURCE_DIR}/include) target_include_directories(moFileReaderTest PRIVATE ${CMAKE_SOURCE_DIR}/include)
target_link_libraries(${PROJECT_NAME} PRIVATE Catch2::Catch2) target_link_libraries(${PROJECT_NAME} PRIVATE Catch2::Catch2)
catch_discover_tests(${PROJECT_NAME}) catch_discover_tests(${PROJECT_NAME})
add_custom_command( add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/test.mo $<TARGET_FILE_DIR:moFileReaderTest>/test.mo COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/languages/nl.mo $<TARGET_FILE_DIR:moFileReaderTest>/languages/nl.mo
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/test.mo ${CMAKE_CURRENT_BINARY_DIR}/test.mo
) )

View File

@ -1,2 +1,2 @@
#!/bin/sh #!/bin/sh
msgfmt -o test.mo test.po msgfmt -o languages/nl.mo languages/nl.po

2
test/main.cpp Normal file
View File

@ -0,0 +1,2 @@
#define CATCH_CONFIG_MAIN
#include "catch.hpp"

View File

@ -1,17 +1,17 @@
#define CATCH_CONFIG_MAIN
#include "catch.hpp" #include "catch.hpp"
#include "moFileReader.hpp" #include "moFileReader.hpp"
using namespace moFileLib; using namespace moFileLib;
#define MO_TEST_FILE "languages/nl.mo"
#define _L(str) moFR.Lookup(str) #define _L(str) moFR.Lookup(str)
#define _LC(ctx, str) moFR.LookupWithContext(ctx, str) #define _LC(ctx, str) moFR.LookupWithContext(ctx, str)
TEST_CASE("Load mo-file", "[ReadFile]") TEST_CASE("Load mo-file", "[ReadFile]")
{ {
moFileReader moFR; moFileReader moFR;
CHECK(moFR.ReadFile("test.mo") == moFileReader::EC_SUCCESS); CHECK(moFR.ReadFile(MO_TEST_FILE) == moFileReader::EC_SUCCESS);
} }
TEST_CASE("Load not existing mo-file", "[ReadFile-fail]") TEST_CASE("Load not existing mo-file", "[ReadFile-fail]")
@ -23,14 +23,14 @@ TEST_CASE("Load not existing mo-file", "[ReadFile-fail]")
TEST_CASE("Count number of strings", "[Count]") TEST_CASE("Count number of strings", "[Count]")
{ {
moFileReader moFR; moFileReader moFR;
moFR.ReadFile("test.mo"); moFR.ReadFile(MO_TEST_FILE);
CHECK(7 == moFR.GetNumStrings()); CHECK(7 == moFR.GetNumStrings());
} }
TEST_CASE("Empties the Lookup-Table", "[Count]") TEST_CASE("Empties the Lookup-Table", "[Count]")
{ {
moFileReader moFR; moFileReader moFR;
moFR.ReadFile("test.mo"); moFR.ReadFile(MO_TEST_FILE);
CHECK("Text Nederlands Een" == moFR.Lookup("String English One")); CHECK("Text Nederlands Een" == moFR.Lookup("String English One"));
CHECK(7 == moFR.GetNumStrings()); CHECK(7 == moFR.GetNumStrings());
moFR.ClearTable(); moFR.ClearTable();
@ -41,7 +41,7 @@ TEST_CASE("Empties the Lookup-Table", "[Count]")
TEST_CASE("Lookup string", "[Lookup]") TEST_CASE("Lookup string", "[Lookup]")
{ {
moFileReader moFR; moFileReader moFR;
moFR.ReadFile("test.mo"); moFR.ReadFile(MO_TEST_FILE);
/* This is the first comment. */ /* This is the first comment. */
CHECK("Text Nederlands Een" == _L("String English One")); CHECK("Text Nederlands Een" == _L("String English One"));
/* This is the second comment. */ /* This is the second comment. */
@ -53,7 +53,7 @@ TEST_CASE("Lookup string", "[Lookup]")
TEST_CASE("Lookup string with context", "[LookupWithContext]") TEST_CASE("Lookup string with context", "[LookupWithContext]")
{ {
moFileReader moFR; moFileReader moFR;
moFR.ReadFile("test.mo"); moFR.ReadFile(MO_TEST_FILE);
/* This is the first comment. */ /* This is the first comment. */
CHECK("Text Nederlands Een" == _LC("TEST|String|1", "String English")); CHECK("Text Nederlands Een" == _LC("TEST|String|1", "String English"));
/* This is the second comment. */ /* This is the second comment. */
@ -65,7 +65,7 @@ TEST_CASE("Lookup string with context", "[LookupWithContext]")
TEST_CASE("Lookup not existing strings", "[Lookup-fail]") TEST_CASE("Lookup not existing strings", "[Lookup-fail]")
{ {
moFileReader moFR; moFileReader moFR;
moFR.ReadFile("test.mo"); moFR.ReadFile(MO_TEST_FILE);
CHECK("No match" == moFR.Lookup("No match")); CHECK("No match" == moFR.Lookup("No match"));
CHECK("Can't touch this" == moFR.Lookup("Can't touch this")); CHECK("Can't touch this" == moFR.Lookup("Can't touch this"));
} }
@ -73,7 +73,7 @@ TEST_CASE("Lookup not existing strings", "[Lookup-fail]")
TEST_CASE("Lookup not existing strings with context", "[LookupWithContext-fail]") TEST_CASE("Lookup not existing strings with context", "[LookupWithContext-fail]")
{ {
moFileReader moFR; moFileReader moFR;
moFR.ReadFile("test.mo"); moFR.ReadFile(MO_TEST_FILE);
CHECK("String English" == _LC("Nope", "String English")); CHECK("String English" == _LC("Nope", "String English"));
CHECK("Not this one" == _LC("TEST|String|1", "Not this one")); CHECK("Not this one" == _LC("TEST|String|1", "Not this one"));
} }