]> git.sesse.net Git - ffmpeg/blobdiff - tests/checkasm/checkasm.c
Merge commit '7bf9647264308d2df74b2b50669f2d02a7ecc90b'
[ffmpeg] / tests / checkasm / checkasm.c
index a54a75ea5570ac381289ce85a10e26897147654f..4eb14ddec452f0e78b23f1f04a8eef382e6cc577 100644 (file)
@@ -29,8 +29,8 @@
 #include "libavutil/cpu.h"
 #include "libavutil/random_seed.h"
 
-#if ARCH_X86
-#include "libavutil/x86/cpu.h"
+#if HAVE_IO_H
+#include <io.h>
 #endif
 
 #if HAVE_SETCONSOLETEXTATTRIBUTE
 #endif
 
 /* List of tests to invoke */
-static void (* const tests[])(void) = {
+static const struct {
+    const char *name;
+    void (*func)(void);
+} tests[] = {
 #if CONFIG_BSWAPDSP
-    checkasm_check_bswapdsp,
+    { "bswapdsp", checkasm_check_bswapdsp },
 #endif
 #if CONFIG_H264PRED
-    checkasm_check_h264pred,
+    { "h264pred", checkasm_check_h264pred },
 #endif
 #if CONFIG_H264QPEL
-    checkasm_check_h264qpel,
+    { "h264qpel", checkasm_check_h264qpel },
 #endif
-    NULL
+    { NULL }
 };
 
 /* List of cpu flags to check */
@@ -127,6 +130,7 @@ static struct {
     CheckasmFunc *funcs;
     CheckasmFunc *current_func;
     CheckasmFuncVersion *current_func_ver;
+    const char *current_test_name;
     const char *bench_pattern;
     int bench_pattern_len;
     int num_checked;
@@ -314,8 +318,10 @@ static void check_cpu_flag(const char *name, int flag)
         int i;
 
         state.cpu_flag_name = name;
-        for (i = 0; tests[i]; i++)
-            tests[i]();
+        for (i = 0; tests[i].func; i++) {
+            state.current_test_name = tests[i].name;
+            tests[i].func();
+        }
     }
 }
 
@@ -332,7 +338,7 @@ int main(int argc, char *argv[])
 {
     int i, seed, ret = 0;
 
-    if (!tests[0] || !cpus[0].flag) {
+    if (!tests[0].func || !cpus[0].flag) {
         fprintf(stderr, "checkasm: no tests to perform\n");
         return 0;
     }
@@ -464,19 +470,15 @@ void checkasm_report(const char *name, ...)
     static int prev_checked, prev_failed, max_length;
 
     if (state.num_checked > prev_checked) {
-        print_cpu_name();
-
-        if (*name) {
-            int pad_length = max_length;
-            va_list arg;
+        int pad_length = max_length + 4;
+        va_list arg;
 
-            fprintf(stderr, " - ");
-            va_start(arg, name);
-            pad_length -= vfprintf(stderr, name, arg);
-            va_end(arg);
-            fprintf(stderr, "%*c", FFMAX(pad_length, 0) + 2, '[');
-        } else
-            fprintf(stderr, " - %-*s [", max_length, state.current_func->name);
+        print_cpu_name();
+        pad_length -= fprintf(stderr, " - %s.", state.current_test_name);
+        va_start(arg, name);
+        pad_length -= vfprintf(stderr, name, arg);
+        va_end(arg);
+        fprintf(stderr, "%*c", FFMAX(pad_length, 0) + 2, '[');
 
         if (state.num_failed == prev_failed)
             color_printf(COLOR_GREEN, "OK");
@@ -487,16 +489,13 @@ void checkasm_report(const char *name, ...)
         prev_checked = state.num_checked;
         prev_failed  = state.num_failed;
     } else if (!state.cpu_flag) {
-        int length;
-
         /* Calculate the amount of padding required to make the output vertically aligned */
-        if (*name) {
-            va_list arg;
-            va_start(arg, name);
-            length = vsnprintf(NULL, 0, name, arg);
-            va_end(arg);
-        } else
-            length = strlen(state.current_func->name);
+        int length = strlen(state.current_test_name);
+        va_list arg;
+
+        va_start(arg, name);
+        length += vsnprintf(NULL, 0, name, arg);
+        va_end(arg);
 
         if (length > max_length)
             max_length = length;