]> git.cworth.org Git - apitrace-tests/blobdiff - driver.py
Use non-overlapping names for traces.
[apitrace-tests] / driver.py
index e488e13ddfaa910565a0b5572fbf2809222d7a9f..9caf39510b1a1aa71ab77dba4499ff97c9f176d5 100755 (executable)
--- a/driver.py
+++ b/driver.py
@@ -243,7 +243,13 @@ class TestCase:
             return
 
         if self.trace_file is None:
-            name, ext = os.path.splitext(os.path.basename(self.cmd[0]))
+            if self.ref_dump is not None:
+                name = self.ref_dump
+            else:
+                name = self.cmd[0]
+            name, ext = os.path.splitext(os.path.basename(name))
+            while ext:
+                name, ext = os.path.splitext(os.path.basename(name))
             self.trace_file = os.path.abspath(os.path.join(self.results, name + '.trace'))
         if os.path.exists(self.trace_file):
             os.remove(self.trace_file)
@@ -333,14 +339,10 @@ class TestCase:
             differ.visit(refState, srcState)
             fail('state from call %u does not match %s' % (callNo, refStateFileName))
 
-    # Allo non-standard JS comments in JSON
-    json_comment_re = re.compile(r'//.*$', re.MULTILINE)
-
     def getRefState(self, refStateFileName):
-        data = open(refStateFileName, 'rt').read()
-        data = self.json_comment_re.sub('', data)
-        state = json.loads(data, strict=False)
-        self.adjustRefState(state)
+        stream = open(refStateFileName, 'rt')
+        from jsondiff import load
+        state = load(stream)
         return state
 
     def getNamePrefix(self):