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

Unified Diff: test/mjsunit/testcfg.py

Issue 155161: Add automatic tests for Tick Processor, take two. (Closed)
Patch Set: Created 11 years, 5 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 | « no previous file | test/mjsunit/tools/tickprocessor.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/mjsunit/testcfg.py
diff --git a/test/mjsunit/testcfg.py b/test/mjsunit/testcfg.py
index 9c7e028078e3a2a510fe6d3b33cb435021520e33..96840f5cf82815179598ed4805c0296a7faf7b7e 100644
--- a/test/mjsunit/testcfg.py
+++ b/test/mjsunit/testcfg.py
@@ -29,10 +29,12 @@ import test
import os
from os.path import join, dirname, exists
import re
+import tempfile
FLAGS_PATTERN = re.compile(r"//\s+Flags:(.*)")
FILES_PATTERN = re.compile(r"//\s+Files:(.*)")
+SELF_SCRIPT_PATTERN = re.compile(r"//\s+Env: TEST_FILE_NAME")
class MjsunitTestCase(test.TestCase):
@@ -42,6 +44,7 @@ class MjsunitTestCase(test.TestCase):
self.file = file
self.config = config
self.mode = mode
+ self.self_script = False
def GetLabel(self):
return "%s %s" % (self.mode, self.GetName())
@@ -55,19 +58,43 @@ class MjsunitTestCase(test.TestCase):
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()
+ files_match = FILES_PATTERN.search(source);
+ # Accept several lines of 'Files:'
+ while True:
+ if files_match:
+ additional_files += files_match.group(1).strip().split()
+ files_match = FILES_PATTERN.search(source, files_match.end())
+ else:
+ break
for a_file in additional_files:
result.append(join(dirname(self.config.root), '..', a_file))
framework = join(dirname(self.config.root), 'mjsunit', 'mjsunit.js')
+ if SELF_SCRIPT_PATTERN.search(source):
+ result.append(self.CreateSelfScript())
result += [framework, self.file]
return result
def GetSource(self):
return open(self.file).read()
+ def CreateSelfScript(self):
+ (fd_self_script, self_script) = tempfile.mkstemp(suffix=".js")
+ def MakeJsConst(name, value):
+ return "var %(name)s=\'%(value)s\';\n" % \
+ {'name': name, \
+ 'value': value.replace('\\', '\\\\').replace('\'', '\\\'') }
+ try:
+ os.write(fd_self_script, MakeJsConst('TEST_FILE_NAME', self.file))
+ except IOError, e:
+ test.PrintError("write() " + str(e))
+ os.close(fd_self_script)
+ self.self_script = self_script
+ return self_script
+
+ def Cleanup(self):
+ if self.self_script:
+ test.CheckedUnlink(self.self_script)
class MjsunitTestConfiguration(test.TestConfiguration):
« no previous file with comments | « no previous file | test/mjsunit/tools/tickprocessor.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698