Index: test/fuzz-natives/testcfg.py |
diff --git a/test/fuzz-natives/testcfg.py b/test/fuzz-natives/testcfg.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d8e3f056c6cdd284f9187bcf188a344eb39852c3 |
--- /dev/null |
+++ b/test/fuzz-natives/testcfg.py |
@@ -0,0 +1,47 @@ |
+# Copyright 2014 the V8 project authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+import os |
+ |
+from testrunner.local import commands |
+from testrunner.local import testsuite |
+from testrunner.local import utils |
+from testrunner.objects import testcase |
+ |
+class FuzzNativesTestSuite(testsuite.TestSuite): |
+ |
+ def __init__(self, name, root): |
+ super(FuzzNativesTestSuite, self).__init__(name, root) |
+ |
+ def ListTests(self, context): |
+ shell = os.path.abspath(os.path.join(context.shell_dir, self.shell())) |
+ if utils.IsWindows(): |
+ shell += ".exe" |
+ output = commands.Execute( |
+ context.command_prefix + |
+ [shell, "--allow-natives-syntax", "-e", |
+ "try { var natives = %ListNatives();" |
+ " for (var n in natives) { print(natives[n]); }" |
+ "} catch(e) {}"] + |
+ context.extra_flags) |
+ if output.exit_code != 0: |
+ print output.stdout |
+ print output.stderr |
+ assert false, "Failed to get natives list." |
+ tests = [] |
+ for line in output.stdout.strip().split(): |
+ (name, argc) = line.split(",") |
+ flags = ["--allow-natives-syntax", |
+ "-e", "var NAME = '%s', ARGC = %s;" % (name, argc)] |
+ test = testcase.TestCase(self, name, flags) |
+ tests.append(test) |
+ return tests |
+ |
+ def GetFlagsForTestCase(self, testcase, context): |
+ name = testcase.path |
+ basefile = os.path.join(self.root, "base.js") |
+ return testcase.flags + [basefile] + context.mode_flags |
+ |
+def GetSuite(name, root): |
+ return FuzzNativesTestSuite(name, root) |