systemc: Generalize ignoring info messages in the reference output.
authorGabe Black <gabeblack@google.com>
Tue, 14 Aug 2018 01:50:28 +0000 (18:50 -0700)
committerGabe Black <gabeblack@google.com>
Thu, 20 Sep 2018 01:47:51 +0000 (01:47 +0000)
Those messages are very implementation specific and don't (generally)
affect correctness. This makes it easier to ignore info messages based
on their number.

This change also makes the output checker ignore a similarly styled
message gem5 generates. We should consider making gem5 not generate
that message and have it generate another message instead which is
specific to gem5. We would need to filter that out too when comparing
results.

Change-Id: I93b9e2d547b6259512db091cfc557d21f86f4a3d
Reviewed-on: https://gem5-review.googlesource.com/12086
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>

src/systemc/tests/verify.py

index 6667b13a1fecbcc581bae95f89f2e94f92f52336..4c307737ea76244b9821063145096437a4565c99 100755 (executable)
@@ -184,27 +184,35 @@ class Checker(object):
         with open(self.text) as test_f, open(self.ref) as ref_f:
             return test_f.read() == ref_f.read()
 
+def tagged_filt(tag, num):
+    return (r'^\n{}: \({}{}\) .*\n(In file: .*\n)?'
+            r'(In process: [\w.]* @ .*\n)?').format(tag, tag[0], num)
+
+def warning_filt(num):
+    return tagged_filt('Warning', num)
+
+def info_filt(num):
+    return tagged_filt('Info', num)
+
 class LogChecker(Checker):
     def merge_filts(*filts):
         filts = map(lambda f: '(' + f + ')', filts)
         filts = '|'.join(filts)
         return re.compile(filts, flags=re.MULTILINE)
 
-    def warning_filt(num):
-        return (r'^\nWarning: \(W{}\) .*\n(In file: .*\n)?'
-                r'(In process: [\w.]* @ .*\n)?').format(num)
-
     ref_filt = merge_filts(
         r'^\nInfo: /OSCI/SystemC: Simulation stopped by user.\n',
         r'^SystemC Simulation\n',
+        r'^\nInfo: \(I804\) /IEEE_Std_1666/deprecated: ' +
+        r'You can turn off(.*\n){7}',
         warning_filt(540),
         warning_filt(569),
         warning_filt(571),
-        r'^\nInfo: \(I804\) /IEEE_Std_1666/deprecated: ' +
-        r'You can turn off(.*\n){7}'
+        info_filt(804),
     )
     test_filt = merge_filts(
-        r'^Global frequency set at \d* ticks per second\n'
+        r'^Global frequency set at \d* ticks per second\n',
+        info_filt(804),
     )
 
     def __init__(self, ref, test, tag, out_dir):