1b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# Copyright 2013 the V8 project authors. All rights reserved. 2b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# Redistribution and use in source and binary forms, with or without 3b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# modification, are permitted provided that the following conditions are 4b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# met: 5b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# 6b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# * Redistributions of source code must retain the above copyright 7b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# notice, this list of conditions and the following disclaimer. 8b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# * Redistributions in binary form must reproduce the above 9b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# copyright notice, this list of conditions and the following 10b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# disclaimer in the documentation and/or other materials provided 11b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# with the distribution. 12b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# * Neither the name of Google Inc. nor the names of its 13b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# contributors may be used to endorse or promote products derived 14b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# from this software without specific prior written permission. 15b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# 16b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 17b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 18b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 19b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 20b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 28b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochimport os 29b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 30b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochfrom testrunner.local import testsuite 31b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochfrom testrunner.objects import testcase 32b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 33b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 34b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochclass IntlTestSuite(testsuite.TestSuite): 35b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 36b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch def __init__(self, name, root): 37b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch super(IntlTestSuite, self).__init__(name, root) 38b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 39b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch def ListTests(self, context): 40b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch tests = [] 41b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch for dirname, dirs, files in os.walk(self.root): 42b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch for dotted in [x for x in dirs if x.startswith('.')]: 43b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch dirs.remove(dotted) 44b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch dirs.sort() 45b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch files.sort() 46b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch for filename in files: 47b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (filename.endswith(".js") and filename != "assert.js" and 48b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch filename != "utils.js"): 49b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch testname = os.path.join(dirname[len(self.root) + 1:], filename[:-3]) 50b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch test = testcase.TestCase(self, testname) 51b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch tests.append(test) 52b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch return tests 53b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 54b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch def GetFlagsForTestCase(self, testcase, context): 55b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch flags = ["--allow-natives-syntax"] + context.mode_flags 56b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 57b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch files = [] 58b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch files.append(os.path.join(self.root, "assert.js")) 59b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch files.append(os.path.join(self.root, "utils.js")) 60b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch files.append(os.path.join(self.root, testcase.path + self.suffix())) 61b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 62b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch flags += files 63b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if context.isolates: 64b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch flags.append("--isolate") 65b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch flags += files 66b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 67b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch return testcase.flags + flags 68b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 69b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 70b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochdef GetSuite(name, root): 71b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch return IntlTestSuite(name, root) 72