From b5d3b6fc25fc8d464938515c13937e0cb0390664 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Tue, 28 May 2019 17:39:13 -0400 Subject: [PATCH] test: unify all the command line usage logging. --- include/SDL_test_common.h | 14 ++++++--- src/test/SDL_test_common.c | 57 ++++++++++++++++++++++++---------- test/testautomation.c | 4 +-- test/testcustomcursor.c | 2 +- test/testdraw2.c | 4 +-- test/testdropfile.c | 2 +- test/testgl2.c | 4 +-- test/testgles.c | 4 +-- test/testgles2.c | 4 +-- test/testintersections.c | 4 +-- test/testrendertarget.c | 4 +-- test/testsprite2.c | 4 +-- test/testviewport.c | 4 +-- visualtest/unittest/testquit.c | 3 +- 14 files changed, 72 insertions(+), 42 deletions(-) diff --git a/include/SDL_test_common.h b/include/SDL_test_common.h index feb70acbeec50..c34d0d103071e 100644 --- a/include/SDL_test_common.h +++ b/include/SDL_test_common.h @@ -140,14 +140,20 @@ SDLTest_CommonState *SDLTest_CommonCreateState(char **argv, Uint32 flags); */ int SDLTest_CommonArg(SDLTest_CommonState * state, int index); + /** - * \brief Returns common usage information + * \brief Logs command line usage info. * - * \param state The common state describing the test window to create. + * This logs the appropriate command line options for the subsystems in use + * plus other common options, and then any application-specific options. + * This uses the SDL_Log() function and splits up output to be friendly to + * 80-character-wide terminals. * - * \returns String with usage information + * \param state The common state describing the test window for the app. + * \param argv0 argv[0], as passed to main/SDL_main. + * \param options an array of strings for application specific options. The last element of the array should be NULL. */ -const char *SDLTest_CommonUsage(SDLTest_CommonState * state); +void SDLTest_CommonLogUsage(SDLTest_CommonState * state, const char *argv0, const char **options); /** * \brief Open test window. diff --git a/src/test/SDL_test_common.c b/src/test/SDL_test_common.c index f7e94ab4fd717..95e6f6e42cdce 100644 --- a/src/test/SDL_test_common.c +++ b/src/test/SDL_test_common.c @@ -26,11 +26,22 @@ #include -#define VIDEO_USAGE \ -"[--video driver] [--renderer driver] [--gldebug] [--info all|video|modes|render|event] [--log all|error|system|audio|video|render|input] [--display N] [--fullscreen | --fullscreen-desktop | --windows N] [--title title] [--icon icon.bmp] [--center | --position X,Y] [--geometry WxH] [--min-geometry WxH] [--max-geometry WxH] [--logical WxH] [--scale N] [--depth N] [--refresh R] [--vsync] [--noframe] [--resize] [--minimize] [--maximize] [--grab] [--allow-highdpi]" - -#define AUDIO_USAGE \ -"[--rate N] [--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE] [--channels N] [--samples N]" +static const char *video_usage[] = { + "[--video driver]", "[--renderer driver]", "[--gldebug]", + "[--info all|video|modes|render|event]", + "[--log all|error|system|audio|video|render|input]", "[--display N]", + "[--fullscreen | --fullscreen-desktop | --windows N]", "[--title title]", + "[--icon icon.bmp]", "[--center | --position X,Y]", "[--geometry WxH]", + "[--min-geometry WxH]", "[--max-geometry WxH]", "[--logical WxH]", + "[--scale N]", "[--depth N]", "[--refresh R]", "[--vsync]", "[--noframe]", + "[--resize]", "[--minimize]", "[--maximize]", "[--grab]", + "[--allow-highdpi]" +}; + +static const char *audio_usage[] = { + "[--rate N]", "[--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE]", + "[--channels N]", "[--samples N]" +}; static void SDL_snprintfcat(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, SDL_PRINTF_FORMAT_STRING const char *fmt, ... ) { @@ -474,18 +485,30 @@ SDLTest_CommonArg(SDLTest_CommonState * state, int index) return 0; } -const char * -SDLTest_CommonUsage(SDLTest_CommonState * state) +void +SDLTest_CommonLogUsage(SDLTest_CommonState * state, const char *argv0, const char **options) { - switch (state->flags & (SDL_INIT_VIDEO | SDL_INIT_AUDIO)) { - case SDL_INIT_VIDEO: - return "[--trackmem] " VIDEO_USAGE; - case SDL_INIT_AUDIO: - return "[--trackmem] " AUDIO_USAGE; - case (SDL_INIT_VIDEO | SDL_INIT_AUDIO): - return "[--trackmem] " VIDEO_USAGE " " AUDIO_USAGE; - default: - return "[--trackmem]"; + int i; + + SDL_Log("USAGE: %s", argv0); + SDL_Log(" %s", "[--trackmem]"); + + if (state->flags & SDL_INIT_VIDEO) { + for (i = 0; i < SDL_arraysize(video_usage); i++) { + SDL_Log(" %s", video_usage[i]); + } + } + + if (state->flags & SDL_INIT_AUDIO) { + for (i = 0; i < SDL_arraysize(audio_usage); i++) { + SDL_Log(" %s", audio_usage[i]); + } + } + + if (options) { + for (i = 0; options[i] != NULL; i++) { + SDL_Log(" %s", options[i]); + } } } @@ -496,7 +519,7 @@ SDLTest_CommonDefaultArgs(SDLTest_CommonState *state, const int argc, char **arg while (i < argc) { const int consumed = SDLTest_CommonArg(state, i); if (consumed == 0) { - SDL_Log("Usage: %s %s\n", argv[0], SDLTest_CommonUsage(state)); + SDLTest_CommonLogUsage(state, argv[0], NULL); return SDL_FALSE; } i += consumed; diff --git a/test/testautomation.c b/test/testautomation.c index d761325014161..1a0ecbd12b4c8 100644 --- a/test/testautomation.c +++ b/test/testautomation.c @@ -80,8 +80,8 @@ main(int argc, char *argv[]) } } if (consumed < 0) { - SDL_Log("Usage: %s %s [--iterations #] [--execKey #] [--seed string] [--filter suite_name|test_name]\n", - argv[0], SDLTest_CommonUsage(state)); + static const char *options[] = { "[--iterations #]", "[--execKey #]", "[--seed string]", "[--filter suite_name|test_name]", NULL }; + SDLTest_CommonLogUsage(state, argv[0], options); quit(1); } diff --git a/test/testcustomcursor.c b/test/testcustomcursor.c index ba0d6b287ab6b..b0b7fa79b239d 100644 --- a/test/testcustomcursor.c +++ b/test/testcustomcursor.c @@ -203,7 +203,7 @@ main(int argc, char *argv[]) break; } if (consumed < 0) { - SDL_Log("Usage: %s %s\n", argv[0], SDLTest_CommonUsage(state)); + SDLTest_CommonLogUsage(state, argv[0], NULL); quit(1); } i += consumed; diff --git a/test/testdraw2.c b/test/testdraw2.c index 0df66424e3dd1..77a0f11eb2458 100644 --- a/test/testdraw2.c +++ b/test/testdraw2.c @@ -256,8 +256,8 @@ main(int argc, char *argv[]) } } if (consumed < 0) { - SDL_Log("Usage: %s %s [--blend none|blend|add|mod] [--cyclecolor] [--cyclealpha]\n", - argv[0], SDLTest_CommonUsage(state)); + static const char *options[] = { "[--blend none|blend|add|mod]", "[--cyclecolor]", "[--cyclealpha]", NULL }; + SDLTest_CommonLogUsage(state, argv[0], options); return 1; } i += consumed; diff --git a/test/testdropfile.c b/test/testdropfile.c index 778f10c0b86eb..c0cc7a5d13e92 100644 --- a/test/testdropfile.c +++ b/test/testdropfile.c @@ -52,7 +52,7 @@ main(int argc, char *argv[]) consumed = -1; } if (consumed < 0) { - SDL_Log("Usage: %s %s\n", argv[0], SDLTest_CommonUsage(state)); + SDLTest_CommonLogUsage(state, argv[0], NULL); quit(1); } i += consumed; diff --git a/test/testgl2.c b/test/testgl2.c index fdffa7c8bd308..a8bc181a39188 100644 --- a/test/testgl2.c +++ b/test/testgl2.c @@ -248,8 +248,8 @@ main(int argc, char *argv[]) } } if (consumed < 0) { - SDL_Log("Usage: %s %s [--fsaa n] [--accel n]\n", argv[0], - SDLTest_CommonUsage(state)); + static const char *options[] = { "[--fsaa n]", "[--accel n]", NULL }; + SDLTest_CommonLogUsage(state, argv[0], options); quit(1); } i += consumed; diff --git a/test/testgles.c b/test/testgles.c index 4c69a28a827a5..c4ea45f54fd83 100644 --- a/test/testgles.c +++ b/test/testgles.c @@ -146,8 +146,8 @@ main(int argc, char *argv[]) } } if (consumed < 0) { - SDL_Log("Usage: %s %s [--fsaa] [--accel] [--zdepth %%d]\n", argv[0], - SDLTest_CommonUsage(state)); + static const char *options[] = { "[--fsaa]", "[--accel]", "[--zdepth %d]", NULL }; + SDLTest_CommonLogUsage(state, argv[0], options); quit(1); } i += consumed; diff --git a/test/testgles2.c b/test/testgles2.c index b4484bc8735be..641a8975c411f 100644 --- a/test/testgles2.c +++ b/test/testgles2.c @@ -518,8 +518,8 @@ main(int argc, char *argv[]) } } if (consumed < 0) { - SDL_Log ("Usage: %s %s [--fsaa] [--accel] [--zdepth %%d]\n", argv[0], - SDLTest_CommonUsage(state)); + static const char *options[] = { "[--fsaa]", "[--accel]", "[--zdepth %d]", NULL }; + SDLTest_CommonLogUsage(state, argv[0], options); quit(1); } i += consumed; diff --git a/test/testintersections.c b/test/testintersections.c index 0382bb7de4c1c..0c824cb9571dd 100644 --- a/test/testintersections.c +++ b/test/testintersections.c @@ -315,8 +315,8 @@ main(int argc, char *argv[]) } } if (consumed < 0) { - SDL_Log("Usage: %s %s [--blend none|blend|add|mod] [--cyclecolor] [--cyclealpha]\n", - argv[0], SDLTest_CommonUsage(state)); + static const char *options[] = { "[--blend none|blend|add|mod]", "[--cyclecolor]", "[--cyclealpha]", NULL }; + SDLTest_CommonLogUsage(state, argv[0], options); return 1; } i += consumed; diff --git a/test/testrendertarget.c b/test/testrendertarget.c index 21e3d673262bc..bc50007ffc91a 100644 --- a/test/testrendertarget.c +++ b/test/testrendertarget.c @@ -275,8 +275,8 @@ main(int argc, char *argv[]) } } if (consumed < 0) { - SDL_Log("Usage: %s %s [--composite]\n", - argv[0], SDLTest_CommonUsage(state)); + static const char *options[] = { "[--composite]", NULL }; + SDLTest_CommonLogUsage(state, argv[0], options); quit(1); } i += consumed; diff --git a/test/testsprite2.c b/test/testsprite2.c index f6db6bb8ab586..76ac7ebd110b1 100644 --- a/test/testsprite2.c +++ b/test/testsprite2.c @@ -340,8 +340,8 @@ main(int argc, char *argv[]) } } if (consumed < 0) { - SDL_Log("Usage: %s %s [--blend none|blend|add|mod] [--cyclecolor] [--cyclealpha] [--iterations N] [num_sprites] [icon.bmp]\n", - argv[0], SDLTest_CommonUsage(state)); + static const char *options[] = { "[--blend none|blend|add|mod]", "[--cyclecolor]", "[--cyclealpha]", "[--iterations N]", "[num_sprites]", "[icon.bmp]", NULL }; + SDLTest_CommonLogUsage(state, argv[0], options); quit(1); } i += consumed; diff --git a/test/testviewport.c b/test/testviewport.c index 2468b3afaa25a..2706ab2fff709 100644 --- a/test/testviewport.c +++ b/test/testviewport.c @@ -161,8 +161,8 @@ main(int argc, char *argv[]) } } if (consumed < 0) { - SDL_Log("Usage: %s %s [--target]\n", - argv[0], SDLTest_CommonUsage(state)); + static const char *options[] = { "[--target]", NULL }; + SDLTest_CommonLogUsage(state, argv[0], options); quit(1); } i += consumed; diff --git a/visualtest/unittest/testquit.c b/visualtest/unittest/testquit.c index 4393700f8ad2a..6cf4536727c7d 100644 --- a/visualtest/unittest/testquit.c +++ b/visualtest/unittest/testquit.c @@ -64,7 +64,8 @@ main(int argc, char** argv) if(consumed < 0) { - SDLTest_Log("Usage: %s %s [--exit-code N] [--crash] [--hang]", argv[0], SDLTest_CommonUsage(state)); + static const char *options = { "[--exit-code N]", "[--crash]", "[--hang]", NULL }; + SDLTest_CommonLogUsage(state, argv[0], options); SDLTest_CommonQuit(state); return 1; }