| 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)
|
|
|