From 8432c830364dd753a6c20fb914f226e1da798557 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sat, 24 Nov 2012 18:15:33 -0800 Subject: [PATCH 1/2] Fix tests on Linux to behave more like Android. --- headless/Headless.cpp | 4 ++++ native | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/headless/Headless.cpp b/headless/Headless.cpp index 68c8bec541..d0b1c249c8 100644 --- a/headless/Headless.cpp +++ b/headless/Headless.cpp @@ -158,6 +158,10 @@ int main(int argc, const char* argv[]) u64 nowTicks = CoreTiming::GetTicks(); u64 frameTicks = usToCycles(1000000/60); mipsr4k.RunLoopUntil(nowTicks + frameTicks); + + // If we were rendering, this might be a nice time to do something about it. + if (coreState == CORE_NEXTFRAME) + coreState = CORE_RUNNING; } // NOTE: we won't get here until I've gotten rid of the exit(0) in sceExitProcess or whatever it's called diff --git a/native b/native index 275331061e..62b5bc46d0 160000 --- a/native +++ b/native @@ -1 +1 @@ -Subproject commit 275331061efb16786b8ba792e004275a64ced5ab +Subproject commit 62b5bc46d01fd0f79c7f54273d6a09c7ae17c17f From 5022922a3adccbcca17a273af8383f740748855a Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sat, 24 Nov 2012 21:45:32 -0800 Subject: [PATCH 2/2] Make headless take arguments like a standard cli. I like -l. --- headless/Headless.cpp | 45 ++++++++++++++++++++++++++++++++++--------- headless/headless.txt | 2 +- test.py | 2 +- 3 files changed, 38 insertions(+), 11 deletions(-) diff --git a/headless/Headless.cpp b/headless/Headless.cpp index d0b1c249c8..7510f6527e 100644 --- a/headless/Headless.cpp +++ b/headless/Headless.cpp @@ -69,11 +69,20 @@ public: } }; -void printUsage() +void printUsage(const char *progname, const char *reason) { + if (reason != NULL) + fprintf(stderr, "Error: %s\n\n", reason); fprintf(stderr, "PPSSPP Headless\n"); - fprintf(stderr, "Usage: ppsspp-headless file.elf [-c] [-m] [-j] [-c]\n"); - fprintf(stderr, "See headless.txt for details.\n"); + fprintf(stderr, "This is primarily meant for non-inactive test tool.\n\n"); + fprintf(stderr, "Usage: %s [options] file.elf\n\n", progname); + fprintf(stderr, "Options:\n"); + fprintf(stderr, " -m, --mount umd.cso mount iso on umd:\n"); + fprintf(stderr, " -l, --log full log output, not just emulated printfs\n"); + fprintf(stderr, " -f use the fast interpreter\n"); + fprintf(stderr, " -j use jit (overrides -f)\n"); + fprintf(stderr, " -c, --compare compare with output in file.expected\n"); + fprintf(stderr, "\nSee headless.txt for details.\n"); } int main(int argc, const char* argv[]) @@ -83,11 +92,11 @@ int main(int argc, const char* argv[]) bool fastInterpreter = false; bool autoCompare = false; - const char *bootFilename = argc > 1 ? argv[1] : 0; + const char *bootFilename = 0; const char *mountIso = 0; bool readMount = false; - for (int i = 2; i < argc; i++) + for (int i = 1; i < argc; i++) { if (readMount) { @@ -95,21 +104,39 @@ int main(int argc, const char* argv[]) readMount = false; continue; } - if (!strcmp(argv[i], "-m")) + if (!strcmp(argv[i], "-m") || !strcmp(argv[i], "--mount")) readMount = true; - else if (!strcmp(argv[i], "-l")) + else if (!strcmp(argv[i], "-l") || !strcmp(argv[i], "--log")) fullLog = true; else if (!strcmp(argv[i], "-j")) useJit = true; else if (!strcmp(argv[i], "-f")) fastInterpreter = true; - else if (!strcmp(argv[i], "-c")) + else if (!strcmp(argv[i], "-c") || !strcmp(argv[i], "--compare")) autoCompare = true; + else if (bootFilename == 0) + bootFilename = argv[i]; + else + { + if (!strcmp(argv[i], "--help") || !strcmp(argv[i], "-h")) + printUsage(argv[0], NULL); + else + { + std::string reason = "Unexpected argument " + std::string(argv[i]); + printUsage(argv[0], reason.c_str()); + } + return 1; + } } + if (readMount) + { + printUsage(argv[0], "Missing argument after -m"); + return 1; + } if (!bootFilename) { - printUsage(); + printUsage(argv[0], argc <= 1 ? NULL : "No executable specified"); return 1; } diff --git a/headless/headless.txt b/headless/headless.txt index 96371c86aa..ddc43e4cfc 100644 --- a/headless/headless.txt +++ b/headless/headless.txt @@ -11,4 +11,4 @@ ppsspp-headless test.elf [-m testdata.cso] [-j] [-l] -l : Print full log output, instead of just the "emulator printfs" This is primarily intended to run non-graphical unit tests of the emulation engine, such as -those in http://code.google.com/p/pspautotests/ . \ No newline at end of file +those in https://github.com/hrydgard/pspautotests/ . \ No newline at end of file diff --git a/test.py b/test.py index 3a83065cdd..25bd151b73 100755 --- a/test.py +++ b/test.py @@ -191,7 +191,7 @@ def run_tests(test_list, args): tcprint("##teamcity[testStarted name='%s' captureStandardOutput='true']" % test) cmdline = [PPSSPP_EXE, elf_filename] - cmdline.extend(args) + cmdline.extend([i for i in args if i not in ['-v', '-g']]) c = Command(cmdline) c.run(TIMEOUT)