diff options
author | Timothy J Fontaine <tjfontaine@gmail.com> | 2014-01-13 17:09:12 -0800 |
---|---|---|
committer | Timothy J Fontaine <tjfontaine@gmail.com> | 2014-01-20 09:00:13 -0800 |
commit | 6cc95b06eaef681c66b5d5d574d3aabfc150f04a (patch) | |
tree | 8479d8cfc2d3d5995776c98b68ca2090559574e5 /test/pummel/testcfg.py | |
parent | 442d2d0cdec2dba97341ffd7dff7f7673f3dc242 (diff) | |
download | android-node-v8-6cc95b06eaef681c66b5d5d574d3aabfc150f04a.tar.gz android-node-v8-6cc95b06eaef681c66b5d5d574d3aabfc150f04a.tar.bz2 android-node-v8-6cc95b06eaef681c66b5d5d574d3aabfc150f04a.zip |
test: refactor to use common testcfg
Diffstat (limited to 'test/pummel/testcfg.py')
-rw-r--r-- | test/pummel/testcfg.py | 132 |
1 files changed, 4 insertions, 128 deletions
diff --git a/test/pummel/testcfg.py b/test/pummel/testcfg.py index 02f5ec6a9c..c91fe39dce 100644 --- a/test/pummel/testcfg.py +++ b/test/pummel/testcfg.py @@ -1,130 +1,6 @@ -# Copyright 2008 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import test -import os -import shutil -from shutil import rmtree -from os import mkdir -from glob import glob -from os.path import join, dirname, exists -import re - - -FLAGS_PATTERN = re.compile(r"//\s+Flags:(.*)") -FILES_PATTERN = re.compile(r"//\s+Files:(.*)") - - -class PummelTestCase(test.TestCase): - - def __init__(self, path, file, mode, context, config): - super(PummelTestCase, self).__init__(context, path, mode) - self.file = file - self.config = config - self.mode = mode - self.tmpdir = join(dirname(self.config.root), 'tmp') - - def AfterRun(self, result): - # delete the whole tmp dir - try: - rmtree(self.tmpdir) - except: - pass - # make it again. - try: - mkdir(self.tmpdir) - except: - pass - - def BeforeRun(self): - # delete the whole tmp dir - try: - rmtree(self.tmpdir) - except: - pass - # make it again. - try: - mkdir(self.tmpdir) - except: - pass - - def GetLabel(self): - return "%s %s" % (self.mode, self.GetName()) - - def GetName(self): - return self.path[-1] - - def GetCommand(self): - result = [self.config.context.GetVm(self.mode)] - source = open(self.file).read() - flags_match = FLAGS_PATTERN.search(source) - if flags_match: - result += flags_match.group(1).strip().split() - files_match = FILES_PATTERN.search(source); - additional_files = [] - if files_match: - additional_files += files_match.group(1).strip().split() - for a_file in additional_files: - result.append(join(dirname(self.config.root), '..', a_file)) - result += [self.file] - return result - - def GetSource(self): - return open(self.file).read() - - -class PummelTestConfiguration(test.TestConfiguration): - - def __init__(self, context, root): - super(PummelTestConfiguration, self).__init__(context, root) - - def Ls(self, path): - def SelectTest(name): - return name.startswith('test-') and name.endswith('.js') - return [f[:-3] for f in os.listdir(path) if SelectTest(f)] - - def ListTests(self, current_path, path, mode): - all_tests = [current_path + [t] for t in self.Ls(join(self.root))] - result = [] - for test in all_tests: - if self.Contains(path, test): - file_path = join(self.root, reduce(join, test[1:], "") + ".js") - result.append(PummelTestCase(test, file_path, mode, self.context, self)) - return result - - def GetBuildRequirements(self): - return ['sample', 'sample=shell'] - - def GetTestStatus(self, sections, defs): - status_file = join(self.root, 'simple.status') - if exists(status_file): - test.ReadConfigurationInto(status_file, sections, defs) - - +import sys, os +sys.path.append(os.path.join(os.path.dirname(__file__), '..')) +import testpy def GetConfiguration(context, root): - return PummelTestConfiguration(context, root) + return testpy.SimpleTestConfiguration(context, root, 'pummel') |