This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.26.9000-980-g5f1603c


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  5f1603c331d9e2194170762b7e5e80a5571e4b4e (commit)
      from  aa6932aa7b3d0020a299f4b928eb125c8bcc0ca3 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5f1603c331d9e2194170762b7e5e80a5571e4b4e

commit 5f1603c331d9e2194170762b7e5e80a5571e4b4e
Author: Siddhesh Poyarekar <siddhesh@sourceware.org>
Date:   Fri Dec 15 02:31:41 2017 +0530

    Convert strcmp benchmark output to json format
    
    The format is now parseable with the compare_strings.py script.

diff --git a/ChangeLog b/ChangeLog
index 3ae1fd2..99792bf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2017-12-14  Siddhesh Poyarekar  <siddhesh@sourceware.org>
 
+	* benchtests/bench-strcmp.c: Print output in JSON format.
+
 	* elf/dl-tunables.list: Remove redundant SXID_ERASE.
 
 2017-12-14  Florian Weimer  <fweimer@redhat.com>
diff --git a/benchtests/bench-strcmp.c b/benchtests/bench-strcmp.c
index 1fd0d1e..bd92b29 100644
--- a/benchtests/bench-strcmp.c
+++ b/benchtests/bench-strcmp.c
@@ -127,6 +127,8 @@ stupid_strcmp (const char *s1, const char *s2)
 }
 #endif
 
+# include "json-lib.h"
+
 typedef int (*proto_t) (const CHAR *, const CHAR *);
 
 IMPL (STUPID_STRCMP, 1)
@@ -134,7 +136,7 @@ IMPL (SIMPLE_STRCMP, 1)
 IMPL (STRCMP, 1)
 
 static void
-do_one_test (impl_t *impl,
+do_one_test (json_ctx_t *json_ctx, impl_t *impl,
 	     const CHAR *s1, const CHAR *s2,
 	     int exp_result)
 {
@@ -150,12 +152,12 @@ do_one_test (impl_t *impl,
 
   TIMING_DIFF (cur, start, stop);
 
-  TIMING_PRINT_MEAN ((double) cur, (double) iters);
+  json_element_double (json_ctx, (double) cur / (double) iters);
 }
 
 static void
-do_test (size_t align1, size_t align2, size_t len, int max_char,
-	 int exp_result)
+do_test (json_ctx_t *json_ctx, size_t align1, size_t align2, size_t len, int
+	 max_char, int exp_result)
 {
   size_t i;
 
@@ -186,55 +188,77 @@ do_test (size_t align1, size_t align2, size_t len, int max_char,
   s2[len + 1] = 24 + exp_result;
   s2[len - 1] -= exp_result;
 
-  printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
+  json_element_object_begin (json_ctx);
+  json_attr_uint (json_ctx, "length", (double) len);
+  json_attr_uint (json_ctx, "align1", (double) align1);
+  json_attr_uint (json_ctx, "align2", (double) align2);
+  json_array_begin (json_ctx, "timings");
 
   FOR_EACH_IMPL (impl, 0)
-    do_one_test (impl, s1, s2, exp_result);
+    do_one_test (json_ctx, impl, s1, s2, exp_result);
 
-  putchar ('\n');
+  json_array_end (json_ctx);
+  json_element_object_end (json_ctx);
 }
 
 int
 test_main (void)
 {
+  json_ctx_t json_ctx;
   size_t i;
 
   test_init ();
 
-  printf ("%23s", "");
+  json_init (&json_ctx, 0, stdout);
+
+  json_document_begin (&json_ctx);
+  json_attr_string (&json_ctx, "timing_type", TIMING_TYPE);
+
+  json_attr_object_begin (&json_ctx, "functions");
+  json_attr_object_begin (&json_ctx, TEST_NAME);
+  json_attr_string (&json_ctx, "bench-variant", "default");
+
+  json_array_begin (&json_ctx, "ifuncs");
   FOR_EACH_IMPL (impl, 0)
-    printf ("\t%s", impl->name);
-  putchar ('\n');
+    json_element_string (&json_ctx, impl->name);
+  json_array_end (&json_ctx);
+
+  json_array_begin (&json_ctx, "results");
 
   for (i = 1; i < 32; ++i)
     {
-      do_test (CHARBYTES * i, CHARBYTES * i, i, MIDCHAR, 0);
-      do_test (CHARBYTES * i, CHARBYTES * i, i, MIDCHAR, 1);
-      do_test (CHARBYTES * i, CHARBYTES * i, i, MIDCHAR, -1);
+      do_test (&json_ctx, CHARBYTES * i, CHARBYTES * i, i, MIDCHAR, 0);
+      do_test (&json_ctx, CHARBYTES * i, CHARBYTES * i, i, MIDCHAR, 1);
+      do_test (&json_ctx, CHARBYTES * i, CHARBYTES * i, i, MIDCHAR, -1);
     }
 
   for (i = 1; i < 10 + CHARBYTESLOG; ++i)
     {
-      do_test (0, 0, 2 << i, MIDCHAR, 0);
-      do_test (0, 0, 2 << i, LARGECHAR, 0);
-      do_test (0, 0, 2 << i, MIDCHAR, 1);
-      do_test (0, 0, 2 << i, LARGECHAR, 1);
-      do_test (0, 0, 2 << i, MIDCHAR, -1);
-      do_test (0, 0, 2 << i, LARGECHAR, -1);
-      do_test (0, CHARBYTES * i, 2 << i, MIDCHAR, 1);
-      do_test (CHARBYTES * i, CHARBYTES * (i + 1), 2 << i, LARGECHAR, 1);
+      do_test (&json_ctx, 0, 0, 2 << i, MIDCHAR, 0);
+      do_test (&json_ctx, 0, 0, 2 << i, LARGECHAR, 0);
+      do_test (&json_ctx, 0, 0, 2 << i, MIDCHAR, 1);
+      do_test (&json_ctx, 0, 0, 2 << i, LARGECHAR, 1);
+      do_test (&json_ctx, 0, 0, 2 << i, MIDCHAR, -1);
+      do_test (&json_ctx, 0, 0, 2 << i, LARGECHAR, -1);
+      do_test (&json_ctx, 0, CHARBYTES * i, 2 << i, MIDCHAR, 1);
+      do_test (&json_ctx, CHARBYTES * i, CHARBYTES * (i + 1), 2 << i, LARGECHAR, 1);
     }
 
   for (i = 1; i < 8; ++i)
     {
-      do_test (CHARBYTES * i, 2 * CHARBYTES * i, 8 << i, MIDCHAR, 0);
-      do_test (2 * CHARBYTES * i, CHARBYTES * i, 8 << i, LARGECHAR, 0);
-      do_test (CHARBYTES * i, 2 * CHARBYTES * i, 8 << i, MIDCHAR, 1);
-      do_test (2 * CHARBYTES * i, CHARBYTES * i, 8 << i, LARGECHAR, 1);
-      do_test (CHARBYTES * i, 2 * CHARBYTES * i, 8 << i, MIDCHAR, -1);
-      do_test (2 * CHARBYTES * i, CHARBYTES * i, 8 << i, LARGECHAR, -1);
+      do_test (&json_ctx, CHARBYTES * i, 2 * CHARBYTES * i, 8 << i, MIDCHAR, 0);
+      do_test (&json_ctx, 2 * CHARBYTES * i, CHARBYTES * i, 8 << i, LARGECHAR, 0);
+      do_test (&json_ctx, CHARBYTES * i, 2 * CHARBYTES * i, 8 << i, MIDCHAR, 1);
+      do_test (&json_ctx, 2 * CHARBYTES * i, CHARBYTES * i, 8 << i, LARGECHAR, 1);
+      do_test (&json_ctx, CHARBYTES * i, 2 * CHARBYTES * i, 8 << i, MIDCHAR, -1);
+      do_test (&json_ctx, 2 * CHARBYTES * i, CHARBYTES * i, 8 << i, LARGECHAR, -1);
     }
 
+  json_array_end (&json_ctx);
+  json_attr_object_end (&json_ctx);
+  json_attr_object_end (&json_ctx);
+  json_document_end (&json_ctx);
+
   return ret;
 }
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                 |    2 +
 benchtests/bench-strcmp.c |   78 +++++++++++++++++++++++++++++---------------
 2 files changed, 53 insertions(+), 27 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]