This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.26.9000-980-g5f1603c
- From: siddhesh at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 14 Dec 2017 21:03:11 -0000
- Subject: 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