summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2015-11-24 09:40:39 +0100
committerThomas Haller <thaller@redhat.com>2015-11-24 11:14:47 +0100
commit7eed71d860b5e91c2da1c66396f8c3135eb37eb7 (patch)
tree78d32268e7ff81c9c46e26b7465b63a7bec599d0
parent8bdb2aaeea59e5b0c06980cee232be31490833c0 (diff)
downloadNetworkManager-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.h39
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)