OLD | NEW |
---|---|
(Empty) | |
1 # Copyright 2014 the V8 project authors. All rights reserved. | |
2 # Use of this source code is governed by a BSD-style license that can be | |
3 # found in the LICENSE file. | |
4 | |
5 import os | |
6 | |
7 from testrunner.local import commands | |
8 from testrunner.local import testsuite | |
9 from testrunner.local import utils | |
10 from testrunner.objects import testcase | |
11 | |
12 class FuzzNativesTestSuite(testsuite.TestSuite): | |
13 | |
14 def __init__(self, name, root): | |
15 super(FuzzNativesTestSuite, self).__init__(name, root) | |
16 | |
17 def ListTests(self, context): | |
18 shell = os.path.abspath(os.path.join(context.shell_dir, self.shell())) | |
19 if utils.IsWindows(): | |
20 shell += ".exe" | |
21 output = commands.Execute( | |
22 context.command_prefix + | |
23 [shell, "--allow-natives-syntax", "-e", | |
24 "try { var natives = %ListNatives();" | |
25 " for (var n in natives) { print(natives[n]); }" | |
26 "} catch(e) {}"] + | |
27 context.extra_flags) | |
28 if output.exit_code != 0: | |
Michael Achenbach
2014/04/29 15:51:53
If the command fails, the test driver would rather
Jakob Kummerow
2014/04/30 13:46:12
%ListNatives() isn't available in Release; the try
| |
29 print output.stdout | |
30 print output.stderr | |
31 return [] | |
32 tests = [] | |
33 for line in output.stdout.strip().split(): | |
34 (name, argc) = line.split(",") | |
35 flags = ["--allow-natives-syntax", | |
36 "-e", "var NAME = '%s', ARGC = %s;" % (name, argc)] | |
37 test = testcase.TestCase(self, name, flags) | |
38 tests.append(test) | |
39 return tests | |
40 | |
41 def GetFlagsForTestCase(self, testcase, context): | |
42 name = testcase.path | |
43 basefile = os.path.join(self.root, "base.js") | |
44 return testcase.flags + [basefile] + context.mode_flags | |
45 | |
46 def GetSuite(name, root): | |
47 return FuzzNativesTestSuite(name, root) | |
OLD | NEW |