X86: Update the regressions for the fact that rdtsc does something now.
[gem5.git] / tests / SConscript
index 8720939de36b7003e4ae1a1ffbb81a2988199d5f..62c4d05083b03508133f3f62c7667edf41088e8c 100644 (file)
@@ -61,10 +61,12 @@ def check_test(target, source, env):
     # Exclude m5stats.txt since we will use diff-out on that.
     Execute(env.subst('diff -ubr ${SOURCES[0].dir} ${SOURCES[1].dir} ' +
                       '-I "^command line:" ' +         # for stdout file
-                      '-I "^M5 compiled on" ' +                # for stderr file
-                      '-I "^M5 simulation started" ' + # for stderr file
+                      '-I "^M5 compiled " ' +          # for stderr file
+                      '-I "^M5 started " ' +           # for stderr file
+                      '-I "^M5 executing on " ' +      # for stderr file
                       '-I "^Simulation complete at" ' +        # for stderr file
                       '-I "^Listening for" ' +         # for stderr file
+                      '-I "listening for remote gdb" ' + # for stderr file
                       '--exclude=m5stats.txt --exclude=SCCS ' +
                       '--exclude=${TARGETS[0].file} ' +
                       '> ${TARGETS[0]}', target=target, source=source), None)
@@ -100,6 +102,19 @@ def print_test(target, source, env):
 
 printAction = env.Action(print_test, strfunction = None)
 
+# Static vars for update_test:
+# - long-winded message about ignored sources
+ignore_msg = '''
+Note: The following file(s) will not be copied.  New non-standard
+      output files must be copied manually once before update_ref will
+      recognize them as outputs.  Otherwise they are assumed to be
+      inputs and are ignored.
+'''
+# - reference files always needed
+needed_files = set(['stdout', 'stderr', 'm5stats.txt', 'config.ini'])
+# - source files we always want to ignore
+known_ignores = set(['status', 'outdiff', 'statsdiff'])
+
 def update_test(target, source, env):
     """Update reference test outputs.
 
@@ -110,13 +125,21 @@ def update_test(target, source, env):
     """
     dest_dir = str(source[0].get_dir())
     src_dir = str(source[1].get_dir())
-    dest_files = os.listdir(dest_dir)
-    src_files = os.listdir(src_dir)
-    # Exclude status & diff outputs
-    for f in ('outdiff', 'statsdiff', 'status'):
-        if f in src_files:
-            src_files.remove(f)
-    for f in src_files:
+    dest_files = set(os.listdir(dest_dir))
+    src_files = set(os.listdir(src_dir))
+    # Copy all of the required files plus any existing dest files.
+    wanted_files = needed_files | dest_files
+    missing_files = wanted_files - src_files
+    if len(missing_files) > 0:
+        print "  WARNING: the following file(s) are missing " \
+              "and will not be updated:"
+        print "    ", " ,".join(missing_files)
+    copy_files = wanted_files - missing_files
+    warn_ignored_files = (src_files - copy_files) - known_ignores
+    if len(warn_ignored_files) > 0:
+        print ignore_msg,
+        print "       ", ", ".join(warn_ignored_files)
+    for f in copy_files:
         if f in dest_files:
             print "  Replacing file", f
             dest_files.remove(f)
@@ -125,12 +148,6 @@ def update_test(target, source, env):
         copyAction = Copy(os.path.join(dest_dir, f), os.path.join(src_dir, f))
         copyAction.strfunction = None
         Execute(copyAction)
-    # warn about any files in dest not overwritten (other than SCCS dir)
-    if 'SCCS' in dest_files:
-        dest_files.remove('SCCS')
-    if dest_files:
-        print "Warning: file(s) in", dest_dir, "not updated:",
-        print ', '.join(dest_files)
     return 0
 
 def update_test_string(target, source, env):
@@ -169,12 +186,13 @@ def test_builder(env, ref_dir):
     # Prefix test run with batch job submission command if appropriate.
     # Output redirection is also different for batch runs.
     # Batch command also supports timeout arg (in seconds, not minutes).
+    timeout = 15 # used to be a param, probably should be again
     if env['BATCH']:
         cmd = [env['BATCH_CMD'], '-t', str(timeout * 60),
                '-o', cmd_stdout, '-e', cmd_stderr, base_cmd]
     else:
         cmd = [base_cmd, '>', cmd_stdout, '2>', cmd_stderr]
-            
+
     env.Command([tgt('stdout'), tgt('stderr'), new_stats],
                 [env.M5Binary, 'run.py'], ' '.join(cmd))
 
@@ -202,9 +220,14 @@ if env['FULL_SYSTEM']:
             configs += ['tsunami-simple-atomic',
                         'tsunami-simple-timing',
                         'tsunami-simple-atomic-dual',
-                        'tsunami-simple-timing-dual']
+                        'tsunami-simple-timing-dual',
+                        'twosys-tsunami-simple-atomic']
+    if env['TARGET_ISA'] == 'sparc':
+        configs += ['t1000-simple-atomic',
+                    't1000-simple-timing']
+
 else:
-    configs += ['simple-atomic', 'simple-timing']
+    configs += ['simple-atomic', 'simple-timing', 'o3-timing', 'memtest']
 
 cwd = os.getcwd()
 os.chdir(str(Dir('.').srcdir))