diff options
author | Thomas Haller <thaller@redhat.com> | 2015-11-24 09:40:39 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2015-11-24 11:14:47 +0100 |
commit | 7eed71d860b5e91c2da1c66396f8c3135eb37eb7 (patch) | |
tree | 78d32268e7ff81c9c46e26b7465b63a7bec599d0 | |
parent | 8bdb2aaeea59e5b0c06980cee232be31490833c0 (diff) | |
download | NetworkManager-7eed71d860b5e91c2da1c66396f8c3135eb37eb7.tar.gz |
nmtst: pass -m=quick when specifying quick test in $NMTST_DEBUG
When the environment variable indicates that we want to run quick
tests, pass "-m=quick" to g_test_init().
(cherry picked from commit a6a2fd7eef5a1aefcc7ab6d35b84a8d4c0039cd1)
-rw-r--r-- | include/nm-test-utils.h | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/include/nm-test-utils.h b/include/nm-test-utils.h index 354f7efaf3..3630d78bcd 100644 --- a/include/nm-test-utils.h +++ b/include/nm-test-utils.h @@ -361,7 +361,44 @@ __nmtst_init (int *argc, char ***argv, gboolean assert_logging, const char *log_ /* g_test_init() sets g_log_set_always_fatal() for G_LOG_LEVEL_WARNING * and G_LOG_LEVEL_CRITICAL. So, beware that the test will fail if you * have any WARN or ERR log messages -- unless you g_test_expect_message(). */ - g_test_init (argc, argv, NULL); + GPtrArray *arg_array = g_ptr_array_new (); + gs_free char **arg_array_c = NULL; + int arg_array_n, j; + + if (*argc) { + for (i = 0; i < *argc; i++) + g_ptr_array_add (arg_array, (*argv)[i]); + } else + g_ptr_array_add (arg_array, "./test"); + + if (test_quick_set && !test_quick_argv) + g_ptr_array_add (arg_array, "-m=quick"); + + g_ptr_array_add (arg_array, NULL); + + arg_array_n = arg_array->len - 1; + arg_array_c = (char **) g_ptr_array_free (arg_array, FALSE); + + g_test_init (&arg_array_n, &arg_array_c, NULL); + + if (*argc > 1) { + /* collaps argc/argv by removing the arguments detected + * by g_test_init(). */ + for (i = 1, j = 1; i < *argc; i++) { + if ((*argv)[i] == arg_array_c[j]) + j++; + else + (*argv)[i] = NULL; + } + for (i = 1, j = 1; i < *argc; i++) { + if ((*argv)[i]) { + (*argv)[j++] = (*argv)[i]; + if (i >= j) + (*argv)[i] = NULL; + } + } + *argc = j; + } } if (test_quick_set) |