regression/tests/test-csma-multicast.py
author Craig Dowell <craigdo@ee.washington.edu>
Mon, 31 Mar 2008 17:48:21 -0700
changeset 2860 9105a5cf6535
child 2863 0bcad16fc46b
permissions -rw-r--r--
use global seed in examples, new regression tests

#! /usr/bin/env python

"""Generic trace-comparison-type regression test."""

import os
import shutil

def run(verbose, generate):
    """Execute a test."""

    testName = "csma-multicast"
    repoName = "ns-3-ref-traces/"
    refDirName = testName + ".ref"

    if not os.path.exists(repoName):
        print"No reference trace repository"
        return 1

    if generate:
        if not os.path.exists(repoName + refDirName):
            print "creating new " + repoName + refDirName
            os.mkdir(repoName + refDirName)

        os.system("./waf --cwd regression/" + repoName + refDirName +
            " --run " + testName + " >& /dev/null")

        print "Remember to commit " + repoName + refDirName
        return 0
    else:
        if not os.path.exists(repoName + refDirName):
            print "Cannot locate reference traces"
            return 1

        shutil.rmtree("traces");
        os.mkdir("traces")
        
        os.system("./waf --cwd regression/traces --run " +
          testName + " >& /dev/null")
        
        return os.system("diff -q traces " + repoName + refDirName +
         " >& /dev/null")