From: ricow@chromium.org Date: Tue, 9 Feb 2010 12:15:34 +0000 (+0000) Subject: Changed fuzzer to randomly remove half of the arguments when running X-Git-Tag: upstream/4.7.83~22520 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=df1df78c48a72662d33eaaab6a97628d66308a52;p=platform%2Fupstream%2Fv8.git Changed fuzzer to randomly remove half of the arguments when running on functions that takes five or more arguments. Original version runs for a long time when there is 5 arguments in a runtime function (45+ seconds). The fuzzer can be run with all arguments on all functions regardless of the number of arguments by setting RUN_WITH_ALL_ARGUMENT_ENTRIES to true in fuzz-natives.js Review URL: http://codereview.chromium.org/598011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/test/mjsunit/fuzz-natives.js b/test/mjsunit/fuzz-natives.js index d906eb8a4..e2f601eb9 100644 --- a/test/mjsunit/fuzz-natives.js +++ b/test/mjsunit/fuzz-natives.js @@ -27,6 +27,9 @@ // Flags: --allow-natives-syntax +var RUN_WITH_ALL_ARGUMENT_ENTRIES = false; +var kOnManyArgumentsRemove = 5; + function makeArguments() { var result = [ ]; result.push(17); @@ -74,13 +77,23 @@ function testArgumentTypes(name, argc) { var func = makeFunction(name, argc); while (hasMore) { var argPool = makeArguments(); + // When we have 5 or more arguments we lower the amount of tests cases + // by randomly removing kOnManyArgumentsRemove entries + var numArguments = RUN_WITH_ALL_ARGUMENT_ENTRIES ? + kArgObjects : kArgObjects-kOnManyArgumentsRemove; + if (argc >= 5 && !RUN_WITH_ALL_ARGUMENT_ENTRIES) { + for (var i = 0; i < kOnManyArgumentsRemove; i++) { + var rand = Math.floor(Math.random() * (kArgObjects - i)); + argPool.splice(rand,1); + } + } var current = type; var hasMore = false; var argList = [ ]; for (var i = 0; i < argc; i++) { - var index = current % kArgObjects; - current = (current / kArgObjects) << 0; - if (index != (kArgObjects - 1)) + var index = current % numArguments; + current = (current / numArguments) << 0; + if (index != (numArguments - 1)) hasMore = true; argList.push(argPool[index]); }