trace generation and comparison
authorCraig Dowell <craigdo@ee.washington.edu>
Wed, 26 Mar 2008 00:30:11 -0700
changeset 2847 f0aedbbb037b
parent 2846 7689461231ac
child 2848 a1e7347d31cc
trace generation and comparison
regression/regression.py
regression/tests/test_csma_one_subnet.py
--- a/regression/regression.py	Tue Mar 25 23:17:24 2008 -0700
+++ b/regression/regression.py	Wed Mar 26 00:30:11 2008 -0700
@@ -45,9 +45,6 @@
         if o == '-v': verbose = 1
         if o == '-g': generate = 1
 
-    if not os.path.exists('./traces'):
-        os.mkdir('./traces')
-    
     bad = []
 
     if not testdir:
@@ -77,7 +74,10 @@
             print "main(): running test", test
         result = runtest(test)
         if result == 0:
-            print "PASS ", test
+            if generate:
+                print "GENERATE ", test
+            else:
+                print "PASS ", test
         else:
             bad.append(test)
             print "FAIL ", test
@@ -114,6 +114,16 @@
     Arguments:
     test -- the name of the test
     """
+    if os.path.exists("traces"):
+        files = os.listdir("traces")
+        for file in files:
+            if file == '.' or file == '..':
+                continue
+            path = "traces" + os.sep + file
+            os.remove(path)
+    else:
+        os.mkdir("traces")
+    
     if verbose:
         print "runtest(): run ", test
     mod = __import__(test, globals(), locals(), [])
--- a/regression/tests/test_csma_one_subnet.py	Tue Mar 25 23:17:24 2008 -0700
+++ b/regression/tests/test_csma_one_subnet.py	Wed Mar 26 00:30:11 2008 -0700
@@ -4,7 +4,28 @@
 
 import os
 
+def rmdir(dir):
+    if os.path.exists(dir):
+        files = os.listdir(dir)
+        for file in files:
+            if file == '.' or file == '..':
+                continue
+            path = dir + os.sep + file
+            os.remove(path)
+        os.rmdir(dir)
+
 def run(verbose, generate):
     """Execute a test."""
+
     os.system("./waf --cwd regression/traces --run csma-one-subnet")
-    return 0
+
+    if generate:
+        rmdir("knowns")
+        os.rename("traces", "knowns")
+        os.system("tar -cjf tests/csma-one-subnet.bz2 knowns/")
+        rmdir("knowns")
+        return 0
+    else:
+        rmdir("knowns")
+        os.system("tar -xjf tests/csma-one-subnet.bz2 knowns/")
+        return os.system("diff knowns traces")