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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2860
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     1
#! /usr/bin/env python
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     2
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     3
"""Generic trace-comparison-type regression test."""
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     4
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     5
import os
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     6
import shutil
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     7
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     8
def run(verbose, generate):
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     9
    """Execute a test."""
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    10
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    11
    testName = "csma-multicast"
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    12
    repoName = "ns-3-ref-traces/"
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    13
    refDirName = testName + ".ref"
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    14
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    15
    if not os.path.exists(repoName):
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    16
        print"No reference trace repository"
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    17
        return 1
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    18
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    19
    if generate:
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    20
        if not os.path.exists(repoName + refDirName):
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    21
            print "creating new " + repoName + refDirName
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    22
            os.mkdir(repoName + refDirName)
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    23
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    24
        os.system("./waf --cwd regression/" + repoName + refDirName +
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    25
            " --run " + testName + " >& /dev/null")
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    26
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    27
        print "Remember to commit " + repoName + refDirName
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    28
        return 0
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    29
    else:
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    30
        if not os.path.exists(repoName + refDirName):
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    31
            print "Cannot locate reference traces"
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    32
            return 1
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    33
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    34
        shutil.rmtree("traces");
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    35
        os.mkdir("traces")
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    36
        
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    37
        os.system("./waf --cwd regression/traces --run " +
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    38
          testName + " >& /dev/null")
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    39
        
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    40
        return os.system("diff -q traces " + repoName + refDirName +
9105a5cf6535 use global seed in examples, new regression tests
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    41
         " >& /dev/null")