# Optional compression libs, mirrored from oracle/CMakeLists.txt, so the tag database # loader can decompress whatever format the tag source serves, and the benchmark can # download and decompress whatever AllPrintings format the default URL selects. # add_definitions() is directory-scoped and order-independent, so HAS_ZLIB/HAS_LZMA # reach every test target below regardless of where they are declared. set(_ORACLE_COMPRESSION_SOURCES) set(_ORACLE_COMPRESSION_LIBRARIES) find_package(ZLIB) if(ZLIB_FOUND) add_definitions("-DHAS_ZLIB") list(APPEND _ORACLE_COMPRESSION_SOURCES ../../oracle/src/zip/unzip.cpp ../../oracle/src/zip/zipglobal.cpp) cockatrice_disable_sanitizers_for(${_ORACLE_COMPRESSION_SOURCES}) cockatrice_disable_coverage_for(${_ORACLE_COMPRESSION_SOURCES}) list(APPEND _ORACLE_COMPRESSION_LIBRARIES ${ZLIB_LIBRARIES}) include_directories(${ZLIB_INCLUDE_DIRS}) else() message(STATUS "Oracle tests: zlib not found; gzip/zip tag databases and the zip download benchmark disabled") endif() find_package(LibLZMA) if(LIBLZMA_FOUND) add_definitions("-DHAS_LZMA") list(APPEND _ORACLE_COMPRESSION_SOURCES ../../oracle/src/lzma/decompress.cpp) cockatrice_disable_sanitizers_for(../../oracle/src/lzma/decompress.cpp) cockatrice_disable_coverage_for(../../oracle/src/lzma/decompress.cpp) list(APPEND _ORACLE_COMPRESSION_LIBRARIES ${LIBLZMA_LIBRARIES}) include_directories(${LIBLZMA_INCLUDE_DIRS}) else() message(STATUS "Oracle tests: LibLZMA not found; xz tag databases and the xz download benchmark disabled") endif() cockatrice_add_test(NAME parse_cipt_test SOURCES ../../oracle/src/parsehelpers.cpp parse_cipt_test.cpp) # Oracle importer unit tests cockatrice_add_test( NAME oracle_importer_test SOURCES ${VERSION_STRING_CPP} ../../oracle/src/oracleimporter.cpp ../../oracle/src/parsehelpers.cpp ../../oracle/src/raw_json_scanner.cpp ../../oracle/src/tag_database.cpp ../../oracle/src/database_writer.cpp oracle_importer_test.cpp ${_ORACLE_COMPRESSION_SOURCES} LIBS libcockatrice_card libcockatrice_interfaces EXTRA_LIBS ${_ORACLE_COMPRESSION_LIBRARIES} ) # Tag database format detection, parsing and parent expansion cockatrice_add_test( NAME tag_database_test SOURCES ../../oracle/src/tag_database.cpp tag_database_test.cpp ${_ORACLE_COMPRESSION_SOURCES} EXTRA_LIBS ${_ORACLE_COMPRESSION_LIBRARIES} ) # Oracle importer benchmark tests (manual, not run in CI, incl. RAM benchmark) cockatrice_add_manual_test( NAME oracle_importer_benchmark_test SOURCES ${VERSION_STRING_CPP} ../../oracle/src/oracleimporter.cpp ../../oracle/src/parsehelpers.cpp ../../oracle/src/raw_json_scanner.cpp ../../oracle/src/tag_database.cpp oracle_importer_benchmark_test.cpp ${_ORACLE_COMPRESSION_SOURCES} LIBS libcockatrice_card libcockatrice_interfaces EXTRA_LIBS ${_ORACLE_COMPRESSION_LIBRARIES} MANUAL )