wscript
changeset 3189 7ddf4ad61707
parent 3178 62e90655a935
child 3275 b0d91237f2ec
--- a/wscript	Fri May 30 11:11:00 2008 -0700
+++ b/wscript	Sat May 31 16:14:49 2008 +0100
@@ -217,6 +217,9 @@
         conf.env['NS3_ENABLED_MODULES'] = ['ns3-'+mod for mod in
                                            Params.g_options.enable_modules.split(',')]
 
+    ## we cannot run regression tests without diff
+    conf.find_program('diff', var='DIFF')
+
 
 def create_ns3_program(bld, name, dependencies=('simulator',)):
     program = bld.create_obj('cpp', 'program')
@@ -326,11 +329,14 @@
     #ut.want_to_see_test_error = True
     #ut.run()
     #ut.print_results()
+    env = Params.g_build.env_of_name('default')
 
     if Params.g_commands['check']:
         _run_waf_check()
 
     if Params.g_options.regression or Params.g_options.regression_generate:
+        if not env['DIFF']:
+            Params.fatal("Cannot run regression tests: the 'diff' program is not installed.")
         _dir = os.getcwd()
         os.chdir("regression")
         try:
@@ -657,6 +663,8 @@
 class Regression(object):
     def __init__(self, testdir):
         self.testdir = testdir
+        env = Params.g_build.env_of_name('default')
+        self.diff = env['DIFF']
 
     def run_test(self, verbose, generate, refDirName, testName):
         refTestDirName = os.path.join(refDirName, (testName + ".ref"))
@@ -692,7 +700,7 @@
 
             if verbose:
                 #diffCmd = "diff traces " + refTestDirName + " | head"
-                diffCmd = subprocess.Popen(["diff", "traces", refTestDirName],
+                diffCmd = subprocess.Popen([self.diff, "traces", refTestDirName],
                                            stderr=subprocess.PIPE, stdout=subprocess.PIPE)
                 headCmd = subprocess.Popen("head", stdin=diffCmd.stdout)
                 rc2 = headCmd.wait()
@@ -700,7 +708,7 @@
                 rc1 = diffCmd.wait()
                 rc = rc1 or rc2
             else:
-                diffCmd = "diff traces " + refTestDirName + \
+                diffCmd = self.diff +" traces " + refTestDirName + \
                     " > /dev/null 2>&1"
                 rc = os.system(diffCmd)
             if rc: