Ensure that the test version of the command line tool is stable for benchmarking (#2076)
Some benchmark suites contain test cases that have nonreproducible behaviour. This is mostly caused by relying on "now" when dealing with dates or timestamps, instead of using a fixed moment. (A notorious example is the crypto-aes.js test case of the sunspider bechmark suite, where the heap memory consumption can vary between 34K-41K heap because of using `(new Date()).getTime()`.) This commit renames the jerry-minimal command line tool to jerry-test (to better reflect its purpose) and adds extra code, which intercepts some calls to libc (`gettimeofday`, `rand`) and pins their results to some fixed values. This makes the tool useless in a general case but ensures stable results when benchmarking -- for which it is mostly used. As a side effect, the commit also changes jerry-libc by making all libc functions weak symbols to allow their override from application code. JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
This commit is contained in:
+4
-3
@@ -72,8 +72,6 @@ def get_arguments():
|
||||
help='Allowed N build jobs at once (default: %(default)s)')
|
||||
parser.add_argument('--jerry-cmdline', metavar='X', choices=['ON', 'OFF'], default='ON', type=str.upper,
|
||||
help='build jerry command line tool (%(choices)s; default: %(default)s)')
|
||||
parser.add_argument('--jerry-cmdline-minimal', metavar='X', choices=['ON', 'OFF'], default='OFF', type=str.upper,
|
||||
help='build minimal version of the jerry command line tool (%(choices)s; default: %(default)s)')
|
||||
parser.add_argument('--jerry-cmdline-snapshot', metavar='X', choices=['ON', 'OFF'], default='OFF', type=str.upper,
|
||||
help='build snapshot command line tool (%(choices)s; default: %(default)s)')
|
||||
parser.add_argument('--jerry-debugger', metavar='X', choices=['ON', 'OFF'], default='OFF', type=str.upper,
|
||||
@@ -118,6 +116,9 @@ def get_arguments():
|
||||
help='enable VM execution stopping (%(choices)s; default: %(default)s)')
|
||||
|
||||
devgroup = parser.add_argument_group('developer options')
|
||||
devgroup.add_argument('--jerry-cmdline-test', metavar='X', choices=['ON', 'OFF'], default='OFF', type=str.upper,
|
||||
help=devhelp('build test version of the jerry command line tool '
|
||||
'(%(choices)s; default: %(default)s)'))
|
||||
devgroup.add_argument('--link-map', metavar='X', choices=['ON', 'OFF'], default='OFF', type=str.upper,
|
||||
help=devhelp('enable the generation of a link map file for jerry command line tool '
|
||||
'(%(choices)s; default: %(default)s)'))
|
||||
@@ -151,7 +152,7 @@ def generate_build_options(arguments):
|
||||
build_options.append('-DFEATURE_CPOINTER_32_BIT=%s' % arguments.cpointer_32bit)
|
||||
build_options.append('-DFEATURE_ERROR_MESSAGES=%s' % arguments.error_messages)
|
||||
build_options.append('-DJERRY_CMDLINE=%s' % arguments.jerry_cmdline)
|
||||
build_options.append('-DJERRY_CMDLINE_MINIMAL=%s' % arguments.jerry_cmdline_minimal)
|
||||
build_options.append('-DJERRY_CMDLINE_TEST=%s' % arguments.jerry_cmdline_test)
|
||||
build_options.append('-DJERRY_CMDLINE_SNAPSHOT=%s' % arguments.jerry_cmdline_snapshot)
|
||||
build_options.append('-DJERRY_PORT_DEFAULT=%s' % arguments.jerry_port_default)
|
||||
build_options.append('-DJERRY_EXT=%s' % arguments.jerry_ext)
|
||||
|
||||
Reference in New Issue
Block a user