blob: c055d5a3d34b1ce8fc419ed49b27f140db022221 [file] [log] [blame]
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00001# 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
6import os
7import shutil
8import sys
9
10from testrunner.local import testsuite
11from testrunner.objects import testcase
12
13SIMDJS_SUITE_PATH = ["data", "src"]
14
15
16class SimdJsTestSuite(testsuite.TestSuite):
17
18 def __init__(self, name, root):
19 super(SimdJsTestSuite, self).__init__(name, root)
20 self.testroot = os.path.join(self.root, *SIMDJS_SUITE_PATH)
21 self.ParseTestRecord = None
22
23 def ListTests(self, context):
24 tests = [
25 testcase.TestCase(self, 'shell_test_runner'),
26 ]
27 for filename in os.listdir(os.path.join(self.testroot, 'benchmarks')):
28 if (not filename.endswith('.js') or
29 filename in ['run.js', 'run_browser.js', 'base.js']):
30 continue
31 name = filename.rsplit('.')[0]
32 tests.append(
33 testcase.TestCase(self, 'benchmarks/' + name))
34 return tests
35
36 def GetFlagsForTestCase(self, testcase, context):
37 return (testcase.flags + context.mode_flags +
38 [os.path.join(self.root, "harness-adapt.js"),
39 "--harmony", "--harmony-simd",
40 os.path.join(self.testroot, testcase.path + ".js"),
41 os.path.join(self.root, "harness-finish.js")])
42
43 def GetSourceForTest(self, testcase):
44 filename = os.path.join(self.testroot, testcase.path + ".js")
45 with open(filename) as f:
46 return f.read()
47
48 def IsNegativeTest(self, testcase):
49 return False
50
Ben Murdochda12d292016-06-02 14:46:10 +010051 def IsFailureOutput(self, testcase):
52 if testcase.output.exit_code != 0:
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000053 return True
Ben Murdochda12d292016-06-02 14:46:10 +010054 return "FAILED!" in testcase.output.stdout
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000055
56 def DownloadData(self):
57 print "SimdJs download is deprecated. It's part of DEPS."
58
59 # Clean up old directories and archive files.
60 directory_old_name = os.path.join(self.root, "data.old")
61 if os.path.exists(directory_old_name):
62 shutil.rmtree(directory_old_name)
63
64 archive_files = [f for f in os.listdir(self.root)
65 if f.startswith("ecmascript_simd-")]
66 if len(archive_files) > 0:
67 print "Clobber outdated test archives ..."
68 for f in archive_files:
69 os.remove(os.path.join(self.root, f))
70
71
72def GetSuite(name, root):
73 return SimdJsTestSuite(name, root)