From 5f29ae6f998616da2759707e17f58f09c69caeca Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Fri, 14 Jul 2023 05:17:54 -0400 Subject: [PATCH 1/3] Failed tests are now listed in the total (#3073) * Failed tests are now listed in the total --- include/test_runner.h | 3 +- test/test_runner_battle.c | 11 ++++++++ tools/mgba-rom-test-hydra/main.c | 47 ++++++++++++++++++++++++++++---- 3 files changed, 54 insertions(+), 7 deletions(-) diff --git a/include/test_runner.h b/include/test_runner.h index 91f6f8f43..fddd4d656 100644 --- a/include/test_runner.h +++ b/include/test_runner.h @@ -3,11 +3,10 @@ extern const bool8 gTestRunnerEnabled; extern const bool8 gTestRunnerHeadless; +extern const bool8 gTestRunnerSkipIsFail; #if TESTING -extern const bool8 gTestRunnerSkipIsFail; - void TestRunner_Battle_RecordAbilityPopUp(u32 battlerId, u32 ability); void TestRunner_Battle_RecordAnimation(u32 animType, u32 animId); void TestRunner_Battle_RecordHP(u32 battlerId, u32 oldHP, u32 newHP); diff --git a/test/test_runner_battle.c b/test/test_runner_battle.c index 6c8972bae..592d0db98 100644 --- a/test/test_runner_battle.c +++ b/test/test_runner_battle.c @@ -10,6 +10,17 @@ #include "test_battle.h" #include "window.h" +#if defined(__INTELLISENSE__) +#undef TestRunner_Battle_RecordAbilityPopUp +#undef TestRunner_Battle_RecordAnimation +#undef TestRunner_Battle_RecordHP +#undef TestRunner_Battle_RecordMessage +#undef TestRunner_Battle_RecordStatus1 +#undef TestRunner_Battle_AfterLastTurn +#undef TestRunner_Battle_CheckBattleRecordActionType +#undef TestRunner_Battle_GetForcedAbility +#endif + #define INVALID(fmt, ...) Test_ExitWithResult(TEST_RESULT_INVALID, "%s:%d: " fmt, gTestRunnerState.test->filename, sourceLine, ##__VA_ARGS__) #define INVALID_IF(c, fmt, ...) do { if (c) Test_ExitWithResult(TEST_RESULT_INVALID, "%s:%d: " fmt, gTestRunnerState.test->filename, sourceLine, ##__VA_ARGS__); } while (0) diff --git a/tools/mgba-rom-test-hydra/main.c b/tools/mgba-rom-test-hydra/main.c index 48071ef8f..7151255de 100644 --- a/tools/mgba-rom-test-hydra/main.c +++ b/tools/mgba-rom-test-hydra/main.c @@ -31,7 +31,11 @@ #include #include -#define MAX_PROCESSES 32 // See also test/test.h +#define min(a, b) ((a) < (b) ? (a) : (b)) + +#define MAX_PROCESSES 32 // See also test/test.h +#define MAX_FAILED_TESTS_TO_LIST 100 +#define MAX_TEST_LIST_BUFFER_LENGTH 256 struct Runner { @@ -51,6 +55,7 @@ struct Runner int assumptionFails; int fails; int results; + char failedTestNames[MAX_FAILED_TESTS_TO_LIST][MAX_TEST_LIST_BUFFER_LENGTH]; }; static unsigned nrunners = 0; @@ -99,6 +104,8 @@ static void handle_read(int i, struct Runner *runner) runner->assumptionFails++; goto add_to_results; case 'F': + if (runner->fails < MAX_FAILED_TESTS_TO_LIST) + strcpy(runner->failedTestNames[runner->fails], runner->test_name); runner->fails++; add_to_results: runner->results++; @@ -182,6 +189,14 @@ static void exit2(int _) exit(2); } +int compare_strings(const void * a, const void * b) +{ + const char *arg1 = (const char *) a; + const char *arg2 = (const char *) b; + + return strcmp(arg1, arg2); +} + int main(int argc, char *argv[]) { if (argc < 4) @@ -476,6 +491,9 @@ int main(int argc, char *argv[]) int assumptionFails = 0; int fails = 0; int results = 0; + + char failedTestNames[MAX_FAILED_TESTS_TO_LIST * MAX_PROCESSES][MAX_TEST_LIST_BUFFER_LENGTH]; + for (int i = 0; i < nrunners; i++) { int wstatus; @@ -492,26 +510,45 @@ int main(int argc, char *argv[]) knownFails += runners[i].knownFails; todos += runners[i].todos; assumptionFails += runners[i].assumptionFails; - fails += runners[i].fails; + for (int j = 0; j < runners[i].fails; j++) + { + if (j < MAX_FAILED_TESTS_TO_LIST) + strcpy(failedTestNames[fails], runners[i].failedTestNames[j]); + fails++; + } results += runners[i].results; } + qsort(failedTestNames, min(fails, MAX_FAILED_TESTS_TO_LIST), sizeof(char) * MAX_TEST_LIST_BUFFER_LENGTH, compare_strings); + if (results == 0) { fprintf(stdout, "\nNo tests found.\n"); } else { - fprintf(stdout, "\n- Tests TOTAL: %d\n", results); + if (fails > 0) + { + fprintf(stdout, "\n- Tests \e[31mFAILED\e[0m : %d Add TESTS='X' to run tests with the defined prefix.\n", fails); + for (int i = 0; i < fails; i++) + { + if (i >= MAX_FAILED_TESTS_TO_LIST) + { + fprintf(stdout, " - \e[31mand %d more...\e[0m\n", fails - MAX_FAILED_TESTS_TO_LIST); + break; + } + fprintf(stdout, " - \e[31m%s\e[0m.\n", failedTestNames[i]); + } + } fprintf(stdout, "- Tests \e[32mPASSED\e[0m: %d\n", passes); if (knownFails > 0) fprintf(stdout, "- Tests \e[33mKNOWN_FAILING\e[0m: %d\n", knownFails); if (todos > 0) fprintf(stdout, "- Tests \e[33mTO_DO\e[0m: %d\n", todos); - if (fails > 0) - fprintf(stdout, "- Tests \e[31mFAILED\e[0m : %d\n", fails); if (assumptionFails > 0) fprintf(stdout, "- \e[33mASSUMPTIONS_FAILED\e[0m: %d\n", assumptionFails); + + fprintf(stdout, "- Tests \e[34mTOTAL\e[0m: %d\n", results); } fprintf(stdout, "\n"); From e1f2320f2e729685ff4bcccdf044d148db5cfe27 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Fri, 14 Jul 2023 07:27:52 -0400 Subject: [PATCH 2/3] Delete unneeded workflow --- .github/workflows/manual.yml | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 .github/workflows/manual.yml diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml deleted file mode 100644 index 0d724c4a4..000000000 --- a/.github/workflows/manual.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: Close issues related to a merged pull request based on master branch. - -on: - pull_request: - types: [closed] - branches: - - upcoming - -jobs: - closeIssueOnPrMergeTrigger: - - runs-on: ubuntu-latest - - steps: - - name: Closes issues related to a merged pull request. - uses: ldez/gha-mjolnir@v1.0.3 From 96159d189f60e351c407dbc1e5433156ccd28252 Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Fri, 14 Jul 2023 16:26:19 +0100 Subject: [PATCH 3/3] Clear fixedPopup when gTestRunnerHeadless (#3133) Previously fixedPopup = FALSE was unconditional, but it was erroneously changed in f1b9872bf0a. --- src/battle_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_interface.c b/src/battle_interface.c index 1a4909818..3e6029ab7 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -3188,8 +3188,8 @@ void DestroyAbilityPopUp(u8 battlerId) { gSprites[gBattleStruct->abilityPopUpSpriteIds[battlerId][0]].tFrames = 0; gSprites[gBattleStruct->abilityPopUpSpriteIds[battlerId][1]].tFrames = 0; - gBattleScripting.fixedPopup = FALSE; } + gBattleScripting.fixedPopup = FALSE; } static void Task_FreeAbilityPopUpGfx(u8 taskId)