1 | /*
|
---|
2 | * Copyright 2018-2020 The OpenSSL Project Authors. All Rights Reserved.
|
---|
3 | *
|
---|
4 | * Licensed under the Apache License 2.0 (the "License"). You may not use
|
---|
5 | * this file except in compliance with the License. You can obtain a copy
|
---|
6 | * in the file LICENSE in the source distribution or at
|
---|
7 | * https://www.openssl.org/source/license.html
|
---|
8 | */
|
---|
9 |
|
---|
10 | #include "../testutil.h"
|
---|
11 | #include "internal/nelem.h"
|
---|
12 | #include "tu_local.h"
|
---|
13 | #include "output.h"
|
---|
14 |
|
---|
15 |
|
---|
16 | static int used[100] = { 0 };
|
---|
17 |
|
---|
18 | int test_skip_common_options(void)
|
---|
19 | {
|
---|
20 | OPTION_CHOICE_DEFAULT o;
|
---|
21 |
|
---|
22 | while ((o = (OPTION_CHOICE_DEFAULT)opt_next()) != OPT_EOF) {
|
---|
23 | switch (o) {
|
---|
24 | case OPT_TEST_CASES:
|
---|
25 | break;
|
---|
26 | default:
|
---|
27 | case OPT_ERR:
|
---|
28 | return 0;
|
---|
29 | }
|
---|
30 | }
|
---|
31 | return 1;
|
---|
32 | }
|
---|
33 |
|
---|
34 | size_t test_get_argument_count(void)
|
---|
35 | {
|
---|
36 | return opt_num_rest();
|
---|
37 | }
|
---|
38 |
|
---|
39 | char *test_get_argument(size_t n)
|
---|
40 | {
|
---|
41 | char **argv = opt_rest();
|
---|
42 |
|
---|
43 | OPENSSL_assert(n < sizeof(used));
|
---|
44 | if ((int)n >= opt_num_rest() || argv == NULL)
|
---|
45 | return NULL;
|
---|
46 | used[n] = 1;
|
---|
47 | return argv[n];
|
---|
48 | }
|
---|
49 |
|
---|
50 | void opt_check_usage(void)
|
---|
51 | {
|
---|
52 | int i;
|
---|
53 | char **argv = opt_rest();
|
---|
54 | int n, arg_count = opt_num_rest();
|
---|
55 |
|
---|
56 | if (arg_count > (int)OSSL_NELEM(used))
|
---|
57 | n = (int)OSSL_NELEM(used);
|
---|
58 | else
|
---|
59 | n = arg_count;
|
---|
60 | for (i = 0; i < n; i++) {
|
---|
61 | if (used[i] == 0)
|
---|
62 | test_printf_stderr("Warning ignored command-line argument %d: %s\n",
|
---|
63 | i, argv[i]);
|
---|
64 | }
|
---|
65 | if (i < arg_count)
|
---|
66 | test_printf_stderr("Warning arguments %d and later unchecked\n", i);
|
---|
67 | }
|
---|
68 |
|
---|
69 | int opt_printf_stderr(const char *fmt, ...)
|
---|
70 | {
|
---|
71 | va_list ap;
|
---|
72 | int ret;
|
---|
73 |
|
---|
74 | va_start(ap, fmt);
|
---|
75 | ret = test_vprintf_stderr(fmt, ap);
|
---|
76 | va_end(ap);
|
---|
77 | return ret;
|
---|
78 | }
|
---|
79 |
|
---|