[FFmpeg-cvslog] checkasm: Modify report format

Henrik Gramner git at videolan.org
Mon Jul 27 12:27:41 CEST 2015


ffmpeg | branch: master | Henrik Gramner <henrik at gramner.com> | Fri Jul 24 23:46:20 2015 +0200| [65c14801527068fcaf729eeffc142ffd4682a21a] | committer: Anton Khirnov

checkasm: Modify report format

Makes it a bit more clear where each test belongs.

Suggested by Anton Khirnov.

Signed-off-by: Anton Khirnov <anton at khirnov.net>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=65c14801527068fcaf729eeffc142ffd4682a21a
---

 tests/checkasm/checkasm.c |   57 ++++++++++++++++++++++-----------------------
 tests/checkasm/checkasm.h |    2 +-
 tests/checkasm/h264qpel.c |    2 +-
 3 files changed, 30 insertions(+), 31 deletions(-)

diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c
index e6cf3d7..f1e9cd9 100644
--- a/tests/checkasm/checkasm.c
+++ b/tests/checkasm/checkasm.c
@@ -53,17 +53,20 @@
 #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;
diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h
index b7a36ee..443546a 100644
--- a/tests/checkasm/checkasm.h
+++ b/tests/checkasm/checkasm.h
@@ -55,7 +55,7 @@ static av_unused intptr_t (*func_new)();
 #define fail() checkasm_fail_func("%s:%d", av_basename(__FILE__), __LINE__)
 
 /* Print the test outcome */
-#define report(...) checkasm_report("" __VA_ARGS__)
+#define report checkasm_report
 
 /* Call the reference function */
 #define call_ref(...) func_ref(__VA_ARGS__)
diff --git a/tests/checkasm/h264qpel.c b/tests/checkasm/h264qpel.c
index a67bbb4..f734945 100644
--- a/tests/checkasm/h264qpel.c
+++ b/tests/checkasm/h264qpel.c
@@ -75,6 +75,6 @@ void checkasm_check_h264qpel(void)
                     }
             }
         }
-        report("%s_h264_qpel", op_name);
+        report("%s", op_name);
     }
 }



More information about the ffmpeg-cvslog mailing list