TESTUTIL: Adjust the rest of testutil
authorRichard Levitte <levitte@openssl.org>
Fri, 5 Jun 2020 15:04:33 +0000 (17:04 +0200)
committerRichard Levitte <levitte@openssl.org>
Sat, 6 Jun 2020 17:18:30 +0000 (19:18 +0200)
Fixes #12054

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12057)

test/testutil/driver.c
test/testutil/format_output.c

index 030fb1544c173c2a32c6624c45f5477c4289f175..775e3daf5549a2d38d6d4bc05b97639d8b6401a2 100644 (file)
@@ -76,11 +76,6 @@ void add_all_tests(const char *test_case_name, int(*test_fn)(int idx),
     num_test_cases += num;
 }
 
-int subtest_level(void)
-{
-    return level;
-}
-
 static int gcd(int a, int b)
 {
     while (b != 0) {
@@ -96,7 +91,7 @@ static void set_seed(int s)
     seed = s;
     if (seed <= 0)
         seed = (int)time(NULL);
-    test_printf_stdout("%*s# RAND SEED %d\n", subtest_level(), "", seed);
+    test_printf_stdout("RAND SEED %d\n", seed);
     test_flush_stdout();
     test_random_seed(seed);
 }
@@ -109,6 +104,7 @@ int setup_test_framework(int argc, char *argv[])
 
     if (TAP_levels != NULL)
         level = 4 * atoi(TAP_levels);
+    test_adjust_streams_tap_level(level);
     if (test_seed != NULL)
         set_seed(atoi(test_seed));
 
@@ -214,6 +210,7 @@ static int process_shared_options(void)
             if (!opt_int(opt_arg(), &value))
                 goto end;
             level = 4 * value;
+            test_adjust_streams_tap_level(level);
             break;
         case OPT_TEST_SEED:
             if (!opt_int(opt_arg(), &value))
@@ -260,13 +257,13 @@ PRINTF_FORMAT(2, 3) static void test_verdict(int verdict,
     test_flush_stdout();
     test_flush_stderr();
 
-    test_printf_stdout("%*s%s ", level, "", verdict != 0 ? "ok" : "not ok");
+    test_printf_tapout("%s ", verdict != 0 ? "ok" : "not ok");
     va_start(ap, description);
-    test_vprintf_stdout(description, ap);
+    test_vprintf_tapout(description, ap);
     va_end(ap);
     if (verdict == TEST_SKIP_CODE)
-        test_printf_stdout(" # skipped");
-    test_printf_stdout("\n");
+        test_printf_tapout(" # skipped");
+    test_printf_tapout("\n");
     test_flush_stdout();
 }
 
@@ -284,12 +281,11 @@ int run_tests(const char *test_prog_name)
         return EXIT_FAILURE;
 
     if (num_tests < 1) {
-        test_printf_stdout("%*s1..0 # Skipped: %s\n", level, "",
-                           test_prog_name);
+        test_printf_tapout("1..0 # Skipped: %s\n", test_prog_name);
     } else if (show_list == 0 && single_test == -1) {
         if (level > 0)
-            test_printf_stdout("%*s# Subtest: %s\n", level, "", test_prog_name);
-        test_printf_stdout("%*s1..%d\n", level, "", num_tests);
+            test_printf_stdout("Subtest: %s\n", test_prog_name);
+        test_printf_tapout("1..%d\n", num_tests);
     }
 
     test_flush_stdout();
@@ -312,11 +308,11 @@ int run_tests(const char *test_prog_name)
         }
         else if (show_list) {
             if (all_tests[i].num != -1) {
-                test_printf_stdout("%d - %s (%d..%d)\n", ii + 1,
+                test_printf_tapout("%d - %s (%d..%d)\n", ii + 1,
                                    all_tests[i].test_case_name, 1,
                                    all_tests[i].num);
             } else {
-                test_printf_stdout("%d - %s\n", ii + 1,
+                test_printf_tapout("%d - %s\n", ii + 1,
                                    all_tests[i].test_case_name);
             }
             test_flush_stdout();
@@ -332,11 +328,11 @@ int run_tests(const char *test_prog_name)
 
             verdict = TEST_SKIP_CODE;
             level += 4;
+            test_adjust_streams_tap_level(level);
             if (all_tests[i].subtest && single_iter == -1) {
-                test_printf_stdout("%*s# Subtest: %s\n", level, "",
+                test_printf_stdout("Subtest: %s\n",
                                    all_tests[i].test_case_name);
-                test_printf_stdout("%*s%d..%d\n", level, "", 1,
-                                   all_tests[i].num);
+                test_printf_tapout("%d..%d\n", 1, all_tests[i].num);
                 test_flush_stdout();
             }
 
@@ -375,6 +371,7 @@ int run_tests(const char *test_prog_name)
             }
 
             level -= 4;
+            test_adjust_streams_tap_level(level);
             if (verdict == 0)
                 ++num_failed;
             test_verdict(verdict, "%d - %s", ii + 1,
index 7f5147516ec7a7b493072ad3ce46c2ff828f9f9a..a2f8a9e0aa16a8f9a25a811c16ce9667c9a4687a 100644 (file)
@@ -42,7 +42,8 @@ static void test_fail_string_common(const char *prefix, const char *file,
                                     const char *op, const char *m1, size_t l1,
                                     const char *m2, size_t l2)
 {
-    const size_t width = (MAX_STRING_WIDTH - subtest_level() - 12) / 16 * 16;
+    const size_t width =
+        (MAX_STRING_WIDTH - BIO_get_indent(bio_err) - 12) / 16 * 16;
     char b1[MAX_STRING_WIDTH + 1], b2[MAX_STRING_WIDTH + 1];
     char bdiff[MAX_STRING_WIDTH + 1];
     size_t n1, n2, i;