Fix the parameter types of the CRYPTO_EX_dup function type.
[oweals/openssl.git] / test / testutil / main.c
index 8b30ac60ec1e0d72c2600ac3d073927805f6f878..6716750a30535f6962403b3830c6e88f79376979 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
  *
  * Licensed under the Apache License 2.0 (the "License").  You may not use
  * this file except in compliance with the License.  You can obtain a copy
@@ -8,28 +8,9 @@
  */
 
 #include "../testutil.h"
-#include "internal/nelem.h"
 #include "output.h"
 #include "tu_local.h"
 
-#include <string.h>
-
-static size_t arg_count;
-static char **args;
-static unsigned char arg_used[1000];
-
-static void check_arg_usage(void)
-{
-    size_t i, n = arg_count < OSSL_NELEM(arg_used) ? arg_count
-                                                   : OSSL_NELEM(arg_used);
-
-    for (i = 0; i < n; i++)
-        if (!arg_used[i+1])
-            test_printf_stderr("Warning ignored command-line argument %zu: %s\n",
-                               i, args[i+1]);
-    if (i < arg_count)
-        test_printf_stderr("Warning arguments %zu and later unchecked\n", i);
-}
 
 int main(int argc, char *argv[])
 {
@@ -42,65 +23,18 @@ int main(int argc, char *argv[])
         return ret;
     }
 
-    arg_count = argc - 1;
-    args = argv;
-
-    setup_test_framework();
+    if (!setup_test_framework(argc, argv))
+        goto end;
 
-    if (setup_tests())
+    if (setup_tests()) {
         ret = run_tests(argv[0]);
-    cleanup_tests();
-    check_arg_usage();
-
+        cleanup_tests();
+        opt_check_usage();
+    } else {
+        opt_help(test_get_options());
+    }
+end:
     ret = pulldown_test_framework(ret);
     test_close_streams();
     return ret;
 }
-
-const char *test_get_program_name(void)
-{
-    return args[0];
-}
-
-char *test_get_argument(size_t n)
-{
-    if (n > arg_count)
-        return NULL;
-    if (n + 1 < OSSL_NELEM(arg_used))
-        arg_used[n + 1] = 1;
-    return args[n + 1];
-}
-
-size_t test_get_argument_count(void)
-{
-    return arg_count;
-}
-
-int test_has_option(const char *option)
-{
-    size_t i;
-
-    for (i = 1; i <= arg_count; i++)
-        if (strcmp(args[i], option) == 0) {
-            arg_used[i] = 1;
-            return 1;
-        }
-    return 0;
-}
-
-const char *test_get_option_argument(const char *option)
-{
-    size_t i, n = strlen(option);
-
-    for (i = 1; i <= arg_count; i++)
-        if (strncmp(args[i], option, n) == 0) {
-            arg_used[i] = 1;
-            if (args[i][n] == '\0' && i + 1 < arg_count) {
-                arg_used[++i] = 1;
-                return args[i];
-            }
-            return args[i] + n;
-        }
-    return NULL;
-}
-