Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(138)

Unified Diff: test/mozilla/testcfg.py

Issue 10919265: First commit of new tools/run-tests.py (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: s/server.py/test-server.py/ in README Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/mjsunit/testcfg.py ('k') | test/preparser/testcfg.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/mozilla/testcfg.py
diff --git a/test/mozilla/testcfg.py b/test/mozilla/testcfg.py
index e88164d22cf5bb8898e6664ddaa03e2947cebf76..5aeac4cc67699c8dc73bc0e816fc2e3641d9b6d5 100644
--- a/test/mozilla/testcfg.py
+++ b/test/mozilla/testcfg.py
@@ -26,12 +26,19 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import test
import os
-from os.path import join, exists
+import shutil
+import subprocess
+import tarfile
+
+from testrunner.local import testsuite
+from testrunner.objects import testcase
+
+MOZILLA_VERSION = "2010-06-29"
-EXCLUDED = ['CVS']
+
+EXCLUDED = ["CVS"]
FRAMEWORK = """
@@ -54,6 +61,117 @@ TEST_DIRS = """
""".split()
+class MozillaTestSuite(testsuite.TestSuite):
+
+ def __init__(self, name, root):
+ super(MozillaTestSuite, self).__init__(name, root)
+ self.testroot = os.path.join(root, "data")
+
+ def ListTests(self, context):
+ tests = []
+ for testdir in TEST_DIRS:
+ current_root = os.path.join(self.testroot, testdir)
+ for dirname, dirs, files in os.walk(current_root):
+ for dotted in [x for x in dirs if x.startswith(".")]:
+ dirs.remove(dotted)
+ for excluded in EXCLUDED:
+ if excluded in dirs:
+ dirs.remove(excluded)
+ dirs.sort()
+ files.sort()
+ for filename in files:
+ if filename.endswith(".js") and not filename in FRAMEWORK:
+ testname = os.path.join(dirname[len(self.testroot) + 1:],
+ filename[:-3])
+ case = testcase.TestCase(self, testname)
+ tests.append(case)
+ return tests
+
+ def GetFlagsForTestCase(self, testcase, context):
+ result = []
+ result += context.mode_flags
+ result += ["--expose-gc"]
+ result += [os.path.join(self.root, "mozilla-shell-emulation.js")]
+ testfilename = testcase.path + ".js"
+ testfilepath = testfilename.split(os.path.sep)
+ for i in xrange(len(testfilepath)):
+ script = os.path.join(self.testroot,
+ reduce(os.path.join, testfilepath[:i], ""),
+ "shell.js")
+ if os.path.exists(script):
+ result.append(script)
+ result.append(os.path.join(self.testroot, testfilename))
+ return testcase.flags + result
+
+ def GetSourceForTest(self, testcase):
+ filename = join(self.testroot, testcase.path + ".js")
+ with open(filename) as f:
+ return f.read()
+
+ def IsNegativeTest(self, testcase):
+ return testcase.path.endswith("-n")
+
+ def IsFailureOutput(self, output, testpath):
+ if output.exit_code != 0:
+ return True
+ return "FAILED!" in output.stdout
+
+ def DownloadData(self):
+ old_cwd = os.getcwd()
+ os.chdir(os.path.abspath(self.root))
+
+ # Maybe we're still up to date?
+ versionfile = "CHECKED_OUT_VERSION"
+ checked_out_version = None
+ if os.path.exists(versionfile):
+ with open(versionfile) as f:
+ checked_out_version = f.read()
+ if checked_out_version == MOZILLA_VERSION:
+ os.chdir(old_cwd)
+ return
+
+ # If we have a local archive file with the test data, extract it.
+ directory_name = "data"
+ if os.path.exists(directory_name):
+ os.rename(directory_name, "data.old")
+ archive_file = "downloaded_%s.tar.gz" % MOZILLA_VERSION
+ if os.path.exists(archive_file):
+ with tarfile.open(archive_file, "r:gz") as tar:
+ tar.extractall()
+ with open(versionfile, "w") as f:
+ f.write(MOZILLA_VERSION)
+ os.chdir(old_cwd)
+ return
+
+ # No cached copy. Check out via CVS, and pack as .tar.gz for later use.
+ command = ("cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot"
+ " co -D %s mozilla/js/tests" % MOZILLA_VERSION)
+ code = subprocess.call(command, shell=True)
+ if code != 0:
+ os.chdir(old_cwd)
+ raise Exception("Error checking out Mozilla test suite!")
+ os.rename(join("mozilla", "js", "tests"), directory_name)
+ shutil.rmtree("mozilla")
+ with tarfile.open(archive_file, "w:gz") as tar:
+ tar.add("data")
+ with open(versionfile, "w") as f:
+ f.write(MOZILLA_VERSION)
+ os.chdir(old_cwd)
+
+
+def GetSuite(name, root):
+ return MozillaTestSuite(name, root)
+
+
+# Deprecated definitions below.
+# TODO(jkummerow): Remove when SCons is no longer supported.
+
+
+from os.path import exists
+from os.path import join
+import test
+
+
class MozillaTestCase(test.TestCase):
def __init__(self, filename, path, context, root, mode, framework):
« no previous file with comments | « test/mjsunit/testcfg.py ('k') | test/preparser/testcfg.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698