From 9b39ae16fea3d4cca2ad77de11a4d3c4ae2ef212 Mon Sep 17 00:00:00 2001 From: Gemba Date: Mon, 11 Mar 2024 21:33:23 +0100 Subject: [PATCH] testcases for getSearchNames() --- test/getsearchnames/.gitignore | 5 + .../rom_samples/empty (0 bytes).zip | 0 test/getsearchnames/rom_samples/zaxxon.zip | Bin 0 -> 32768 bytes test/getsearchnames/scummvm.ini | 12 + test/getsearchnames/test_getsearchnames.cpp | 316 ++++++++++++++++++ test/getsearchnames/test_getsearchnames.pro | 50 +++ 6 files changed, 383 insertions(+) create mode 100644 test/getsearchnames/.gitignore create mode 100644 test/getsearchnames/rom_samples/empty (0 bytes).zip create mode 100644 test/getsearchnames/rom_samples/zaxxon.zip create mode 100644 test/getsearchnames/scummvm.ini create mode 100644 test/getsearchnames/test_getsearchnames.cpp create mode 100644 test/getsearchnames/test_getsearchnames.pro diff --git a/test/getsearchnames/.gitignore b/test/getsearchnames/.gitignore new file mode 100644 index 00000000..b4c081ec --- /dev/null +++ b/test/getsearchnames/.gitignore @@ -0,0 +1,5 @@ +Makefile +*.o +moc_* +*.moc +test_getsearchnames diff --git a/test/getsearchnames/rom_samples/empty (0 bytes).zip b/test/getsearchnames/rom_samples/empty (0 bytes).zip new file mode 100644 index 00000000..e69de29b diff --git a/test/getsearchnames/rom_samples/zaxxon.zip b/test/getsearchnames/rom_samples/zaxxon.zip new file mode 100644 index 0000000000000000000000000000000000000000..1f800cbf8c19ad90ed6eff282a4a530847a0373d GIT binary patch literal 32768 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 X&L7~?Lu+oRL9EH5-Vs2_xE#B>-s)TR literal 0 HcmV?d00001 diff --git a/test/getsearchnames/scummvm.ini b/test/getsearchnames/scummvm.ini new file mode 100644 index 00000000..42dec2b0 --- /dev/null +++ b/test/getsearchnames/scummvm.ini @@ -0,0 +1,12 @@ +[scummvm] +native_mt32=false + +[tentacle] +description=Day of the Tentacle (Floppy/DOS/English) +extra=Floppy +path=c:\what\ever\Day-of-the-Tentacle +engineid=scumm +gameid=tentacle + +[dig] +description=The Dig diff --git a/test/getsearchnames/test_getsearchnames.cpp b/test/getsearchnames/test_getsearchnames.cpp new file mode 100644 index 00000000..d16dc519 --- /dev/null +++ b/test/getsearchnames/test_getsearchnames.cpp @@ -0,0 +1,316 @@ +#include "arcadedb.h" +#include "config.h" +#include "esgamelist.h" +#include "igdb.h" +#include "mobygames.h" +#include "openretro.h" +#include "screenscraper.h" + +#include +#include + +/* + Tests the getSearchNames() method of the different scrapers. + WorldOfSpectrum and Import-Scraper and TGDB are covered by Mobygames scraper: + These use getSearchNames() in the AbstractScraper. + + If testing against v3.10.3 or earlier set the define VER_3_10_3 in the *.pro + file. +*/ +class TestGetSearchNames : public QObject { + Q_OBJECT + +private: + void match(const QMap> &tests) { + QString dbgStr; + + for (auto t : tests.keys()) { + qInfo() << "Testing" << t << "..."; + QString input = tests.value(t).first; + QFile f = QFile(input); + QFileInfo fi(f); + QStringList exp = tests.value(t).second; +#ifdef VER_3_10_3 + QList out = scraper->getSearchNames(fi); +#else + QList out = scraper->getSearchNames(fi, dbgStr); +#endif + // qDebug() << out; + + QCOMPARE(out.size(), exp.size()); + int i = 0; + for (const auto &e : exp) { + QCOMPARE(out[i++], e); + } + qInfo() << "... done testing" << t; + } + } + + Settings settings; + AbstractScraper *scraper; + +private slots: + void initTestCase() { + + settings.aliasMap = { + // explictly change first word in the replacement + // to spot possible errors (MotherX) + {"Mother 25th Restoration Hack", {"MotherX (Japan)"}}}; + } + + void testArcadeDB() { + scraper = new ArcadeDB(&settings, NULL); + QMap> tests_adb = { +#ifndef VER_3_10_3 + {"ArcadeDB, with aliasMap match", + QPair( + "./rom_samples/Mother 25th Restoration Hack.zip", + {"MotherX (Japan)"})}, +#endif + {"ArcadeDB, w/o aliasMap match", + QPair("./rom_samples/1942.zip", {"1942"})}, + + }; + + match(tests_adb); + } + + void testESGamelist() { + QMap> tests_esgl = { + {"ESgl, with aliasMap match (aliasMap should be ignored)", + QPair( + "./rom_samples/Mother 25th Restoration Hack.zip", + {"Mother 25th Restoration Hack.zip"})}, + {"ESgl, w/o aliasMap match", + QPair("./rom_samples/1942.zip", + {"1942.zip"})}, + + }; + + scraper = new ESGameList(&settings, NULL); + match(tests_esgl); + } + + void testOpenRetro() { + scraper = new OpenRetro(&settings, NULL); + QMap> tests_matchone = { + {"OpenRetro, with aliasMap match", + QPair( + "./rom_samples/Mother 25th Restoration Hack.zip", + {"/browse?q=motherx"})}, + {"OpenRetro, with ROM hack and no aliasMap entry", + QPair( + "./rom_samples/Mother 25th Restoration Hack_Hack.zip", + {"/browse?q=mother+25th"})}, + {"OpenRetro, w/o aliasMap match 1 word", + QPair("./rom_samples/1942.zip", + {"/browse?q=1942"})}, + {"OpenRetro, w/o aliasMap match 2+ words", + QPair("./rom_samples/abclimax.zip", + {"/browse?q=after+burner"})}, + + }; + + settings.platform = "fba"; + settings.mameMap = {{"1942", "1942 (Revision B)"}, + {"abclimax", "After Burner Climax (Export)"} + + }; + match(tests_matchone); + } + + void testOpenRetroMatchMany() { + scraper = new OpenRetro(&settings, NULL); + settings.platform = "amiga"; + settings.whdLoadMap = { + {"BillsTomatoGame_v2.0_1748", + {"Bill's Tomato Game", "307c1c7f-1f31-5b7d-ac71-57a9f035679f"}}, + {"Burntime_v1.2_AGA_2213", + {"Burntime [AGA]", "930a2652-50e0-5b89-8076-3ec478f0e6ad"}}, + + }; + + QMap> tests_matchmany = { + {"OpenRetro, with amiga whdl match", + QPair( + "./rom_samples/BillsTomatoGame_v2.0_1748.lha", + {"/game/307c1c7f-1f31-5b7d-ac71-57a9f035679f", + "/browse?q=bill%27s+tomato"})}, + {"OpenRetro, w/o amiga whdl match", + QPair( + "./rom_samples/Some game-here V1.0.lha", + {"/browse?q=some+game-here", "/browse?q=some+game"})}, + {"OpenRetro, with amiga whdl and aga match", + QPair( + "./rom_samples/Burntime_v1.2_AGA_2213.lha", + {"/game/930a2652-50e0-5b89-8076-3ec478f0e6ad", + "/browse?q=burntime+aga", "/browse?q=burntime"})}, + + }; + + match(tests_matchmany); + + QMap> tests_scummvm = { + {"OpenRetro, with scummvm.ini match", + QPair("./rom_samples/tentacle.svm", + {"/browse?q=day+of"})}, + {"OpenRetro, w/o scummvm.ini match", + QPair( + "./rom_samples/the yabba dabba doo.svm", + {"/browse?q=yabba+dabba"})}, + + }; + + settings.platform = "scummvm"; + settings.scummIni = + QCoreApplication::applicationDirPath() + "/scummvm.ini"; + + match(tests_scummvm); + } + + void testIgdb() { + scraper = new Igdb(&settings, NULL); + settings.platform = "amiga"; + settings.whdLoadMap = { + {"BillsTomatoGame_v2.0_1748", + {"Bill's Tomato Game", "307c1c7f-1f31-5b7d-ac71-57a9f035679f"}}, + {"Burntime_v1.2_AGA_2213", + {"Burntime [AGA]", "930a2652-50e0-5b89-8076-3ec478f0e6ad"}}, + + }; + + settings.aliasMap.insert("Mother.25th.Restoration.Hack", "Dot.dot.dot"); + + QMap> tests_matchmany = { + {"Igdb, with amiga whdl match", + QPair( + "./rom_samples/BillsTomatoGame_v2.0_1748.lha", + {"Bill's Tomato Game"})}, + {"Igdb, w/o amiga whdl match", + QPair( + "./rom_samples/Some game-here V99.33.lha", + {"Some game-here V99.33"})}, + {"Igdb, with amiga whdl and aga match", + QPair( + "./rom_samples/Burntime_v1.2_AGA_2213.lha", {"Burntime"})}, + {"Igdb, with aliasMap match", + QPair( + "./rom_samples/Mother 25th Restoration Hack.zip", + {"MotherX"})}, + {"Igdb, with aliasMap match, ROM with dots", + QPair( + "./rom_samples/Mother.25th.Restoration.Hack.zip", + {"Dot.dot.dot"})}, + {"Igdb, with ROM hack and no aliasMap entry", + QPair( + "./rom_samples/Mother 25th Restoration Hack_Hack.zip", + {"Mother 25th Restoration Hack_Hack"})}, + + }; + + match(tests_matchmany); + + QMap> tests_scummvm = { + {"Igdb, with scummvm.ini match", + QPair("./rom_samples/tentacle.svm", + {"Day of the Tentacle"})}, + {"Igdb, w/o scummvm.ini match", + QPair( + "./rom_samples/the yabba dabba doo.svm", + {"the yabba dabba doo"})}, + + }; + + settings.platform = "scummvm"; + settings.scummIni = + QCoreApplication::applicationDirPath() + "/scummvm.ini"; + + match(tests_scummvm); + } + + void testMobyGames() { + scraper = new MobyGames(&settings, NULL); + settings.platform = "amiga"; + settings.whdLoadMap = { + {"BillsTomatoGame_v2.0_1748", + {"Bill's Tomato Game", "307c1c7f-1f31-5b7d-ac71-57a9f035679f"}}, + {"Burntime_v1.2_AGA_2213", + {"Burntime [AGA]", "930a2652-50e0-5b89-8076-3ec478f0e6ad"}}, + + }; + + QMap> tests_matchmany = { + {"Mobygames, with amiga whdl match", + QPair( + "./rom_samples/BillsTomatoGame_v2.0_1748.lha", + {"bill%27s+tomato+game"})}, + {"Mobygames, w/o amiga whdl match", + QPair( + "./rom_samples/Some game-here V99.33.lha", + {"some+game-here+v99.33"})}, + {"Mobygames, with amiga whdl and aga match", + QPair( + "./rom_samples/Burntime_v1.2_AGA_2213.lha", {"burntime"})}, + {"Mobygames, with aliasMap match", + QPair( + "./rom_samples/Mother 25th Restoration Hack.zip", + {"motherx"})}, + {"Mobygames, with ROM hack and no aliasMap entry", + QPair( + "./rom_samples/Mother 25th Restoration Hack_Hack.zip", + {"mother+25th+restoration+hack+hack"})}, + + }; + + match(tests_matchmany); + + QMap> tests_scummvm = { + {"Mobygames, with scummvm.ini match", + QPair("./rom_samples/tentacle.svm", + {"day+of+the+tentacle"})}, + {"Mobygames, w/o scummvm.ini match", + QPair( + "./rom_samples/the yabba dabba doo.svm", {"yabba+dabba+doo"})}, + + }; + + settings.platform = "scummvm"; + settings.scummIni = + QCoreApplication::applicationDirPath() + "/scummvm.ini"; + + match(tests_scummvm); + } + void testScreenscraper() { + scraper = new ScreenScraper(&settings, NULL); + settings.platform = "mame-libretro"; + QStringList zaxxon_expected = { + "crc=BB2E0146", "md5=852605F01A3E2D21FBAF35FCAB385B94", + "sha1=05F32B2286ECE2F30CB1EFBC2B4C7C2AEF2F9662", + "romnom=zaxxon.zip", "romtaille=32768"}; + QMap> tests = { +#ifndef VER_3_10_3 + {"Screenscraper, with aliasMap match", + QPair( + "./rom_samples/Mother 25th Restoration Hack.zip", + {"romnom=MotherX%20(Japan)"})}, +#endif + {"Screenscraper, with arcade match", + QPair("./rom_samples/zaxxon.zip", + {zaxxon_expected.join("&")})}, + {"Screenscraper, 0 byte ROM", + QPair("./rom_samples/empty (0 bytes).zip", + {"romnom=empty%20(0%20bytes).zip"})}, + {"Screenscraper, with amiga whdl match", + QPair( + "./rom_samples/BillsTomatoGame_v2.0_1748.lha", + {"romnom=BillsTomatoGame_v2.0_1748.lha"})}, + + }; + settings.mameMap.insert("zaxxon.zip", "Should not break the test.zip"); + + match(tests); + } +}; + +QTEST_MAIN(TestGetSearchNames) +#include "test_getsearchnames.moc" diff --git a/test/getsearchnames/test_getsearchnames.pro b/test/getsearchnames/test_getsearchnames.pro new file mode 100644 index 00000000..9a8fc1ee --- /dev/null +++ b/test/getsearchnames/test_getsearchnames.pro @@ -0,0 +1,50 @@ +QT += core network xml testlib +TEMPLATE = app +TARGET = test_getsearchnames +DEPENDPATH += . +INCLUDEPATH += ../../src +CONFIG += debug +QMAKE_CXXFLAGS += -std=c++17 + +CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG_OUTPUT + +include(../../VERSION) +DEFINES+=VERSION=\\\"$$VERSION\\\" + +# set if testing against v3.10.3 or earlier +###DEFINES+=VER_3_10_3 + +HEADERS += ../../src/abstractscraper.h \ + ../../src/arcadedb.h \ + ../../src/cli.h \ + ../../src/crc32.h \ + ../../src/esgamelist.h \ + ../../src/gameentry.h \ + ../../src/igdb.h \ + ../../src/mobygames.h \ + ../../src/nametools.h \ + ../../src/netcomm.h \ + ../../src/netmanager.h \ + ../../src/openretro.h \ + ../../src/platform.h \ + ../../src/screenscraper.h \ + ../../src/settings.h \ + ../../src/strtools.h + +SOURCES += test_getsearchnames.cpp \ + ../../src/abstractscraper.cpp \ + ../../src/arcadedb.cpp \ + ../../src/cli.cpp \ + ../../src/crc32.cpp \ + ../../src/esgamelist.cpp \ + ../../src/gameentry.cpp \ + ../../src/igdb.cpp \ + ../../src/mobygames.cpp \ + ../../src/nametools.cpp \ + ../../src/netcomm.cpp \ + ../../src/netmanager.cpp \ + ../../src/openretro.cpp \ + ../../src/platform.cpp \ + ../../src/screenscraper.cpp \ + ../../src/settings.cpp \ + ../../src/strtools.cpp