Fix JSON export tests by using jq for the comparison

This commit is contained in:
Martchus 2020-06-10 18:45:13 +02:00
parent ad44ef55ab
commit 61e82c6110
2 changed files with 7 additions and 3 deletions

View File

@ -181,7 +181,7 @@ set(REQUIRED_ICONS
set(CONFIGURATION_PACKAGE_SUFFIX
""
CACHE STRING "sets the suffix for find_package() calls to packages configured via c++utilities")
find_package(c++utilities${CONFIGURATION_PACKAGE_SUFFIX} 5.0.0 REQUIRED)
find_package(c++utilities${CONFIGURATION_PACKAGE_SUFFIX} 5.5.0 REQUIRED)
use_cpp_utilities()
include(BasicConfig)

View File

@ -1008,10 +1008,14 @@ void CliTests::testJsonExport()
string stdout, stderr;
const auto file(testFilePath("matroska_wave1/test3.mkv"));
const auto expectedJson(readFile(testFilePath("matroska_wave1-test3.json"), 2048));
const auto expectedJsonPath(testFilePath("matroska_wave1-test3.json"));
const char *const args[] = { "tageditor", "export", "--pretty", "-f", file.data(), nullptr };
TESTUTILS_ASSERT_EXEC(args);
CPPUNIT_ASSERT_EQUAL(expectedJson, stdout);
const char *const jqArgs[]
= { "jq", "--argfile", "expected", expectedJsonPath.data(), "--argjson", "actual", stdout.data(), "-n", "$actual == $expected", nullptr };
execHelperAppInSearchPath("jq", jqArgs, stdout, stderr);
CPPUNIT_ASSERT_EQUAL(""s, stderr);
CPPUNIT_ASSERT_EQUAL("true\n"s, stdout);
#endif // TAGEDITOR_JSON_EXPORT
}