--- a/bindings/python/wscript Thu Nov 20 16:48:21 2008 -0800
+++ b/bindings/python/wscript Thu Nov 20 19:44:19 2008 -0800
@@ -16,16 +16,25 @@
LOCAL_PYBINDGEN_PATH = os.path.join(os.getcwd(), "bindings", "python", "pybindgen")
#PYBINDGEN_BRANCH = 'lp:pybindgen'
PYBINDGEN_BRANCH = 'https://launchpad.net/pybindgen'
-if os.environ.get('PYTHONPATH', ''):
- os.environ['PYTHONPATH'] = LOCAL_PYBINDGEN_PATH + os.pathsep + os.environ.get('PYTHONPATH')
-else:
- os.environ['PYTHONPATH'] = LOCAL_PYBINDGEN_PATH
## https://launchpad.net/pybindgen/
REQUIRED_PYBINDGEN_VERSION = (0, 9, 0, 605)
REQUIRED_PYGCCXML_VERSION = (0, 9, 5)
+def add_to_python_path(path):
+ if os.environ.get('PYTHONPATH', ''):
+ os.environ['PYTHONPATH'] = path + os.pathsep + os.environ.get('PYTHONPATH')
+ else:
+ os.environ['PYTHONPATH'] = path
+
+def set_pybindgen_pythonpath(env):
+ if env['WITH_PYBINDGEN']:
+ add_to_python_path(env['WITH_PYBINDGEN'])
+ else:
+ add_to_python_path(LOCAL_PYBINDGEN_PATH)
+
+
def set_options(opt):
opt.tool_options('python')
opt.add_option('--disable-python',
@@ -41,6 +50,10 @@
"instead of using the system installed version."),
action="store_true", default=False,
dest='pybindgen_checkout')
+ opt.add_option('--with-pybindgen',
+ help=('Path to an existing pybindgen source tree to use.'),
+ default=None,
+ dest='with_pybindgen', type="string")
def fetch_pybindgen(conf):
"""
@@ -127,14 +140,22 @@
conf.env.append_value('CXXFLAGS_PYEXT','-fno-strict-aliasing')
## Check for pybindgen
+
+ no_net = False
+ if Params.g_options.with_pybindgen:
+ conf.env['WITH_PYBINDGEN'] = os.path.abspath(Params.g_options.with_pybindgen)
+ no_net = True
+
if Params.g_options.pybindgen_checkout:
fetch_pybindgen(conf)
+ set_pybindgen_pythonpath(conf.env)
+
try:
conf.check_python_module('pybindgen')
except Configure.ConfigurationError:
warning("pybindgen missing")
- if not fetch_pybindgen(conf):
+ if no_net or not fetch_pybindgen(conf):
conf.report_optional_feature("python", "Python Bindings", False,
"PyBindGen missing and could not be retrieved")
return
@@ -152,7 +173,7 @@
warning("pybindgen (found %s) is too old (need %s)" %
(pybindgen_version_str,
'.'.join([str(x) for x in REQUIRED_PYBINDGEN_VERSION])))
- if not fetch_pybindgen(conf):
+ if no_net or not fetch_pybindgen(conf):
conf.report_optional_feature("python", "Python Bindings", False,
"PyBindGen too old and newer version could not be retrieved")
return
@@ -391,6 +412,8 @@
env = bld.env_of_name('default')
curdir = bld.m_curdirnode.abspath()
+ set_pybindgen_pythonpath(env)
+
#Object.register('all-ns3-headers', AllNs3Headers)
Action.Action('gen-ns3-metaheader', func=gen_ns3_metaheader, color='BLUE')
--- a/regression.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression.py Thu Nov 20 19:44:19 2008 -0800
@@ -42,18 +42,17 @@
### Regression testing
class Regression(object):
- def __init__(self, testdir):
+ def __init__(self, testdir, reference_traces):
self.testdir = testdir
+ self.reference_traces = reference_traces
self.env = Params.g_build.env_of_name('default')
- def run_test(self, verbose, generate, refDirName, testName, arguments=[], pyscript=None, refTestName=None):
+ def run_test(self, verbose, generate, testName, arguments=[], pyscript=None, refTestName=None):
"""
@param verbose: enable verbose execution
@param generate: generate new traces instead of comparing with the reference
- @param refDirName: name of the base directory containing reference traces
-
@param testName: name of the test
@arguments: list of extra parameters to pass to the program to be tested
@@ -70,11 +69,11 @@
raise TypeError
if refTestName is None:
- refTestDirName = os.path.join(refDirName, (testName + ".ref"))
+ refTestDirName = os.path.join(self.reference_traces, (testName + ".ref"))
else:
- refTestDirName = os.path.join(refDirName, refTestName)
+ refTestDirName = os.path.join(self.reference_traces, refTestName)
- if not os.path.exists(refDirName):
+ if not os.path.exists(self.reference_traces):
print"No reference trace repository"
return 1
@@ -90,7 +89,7 @@
tmpl = tmpl + " " + arg
wutils.run_program(testName, tmpl)
else:
- argv = [self.env['PYTHON'], os.path.join('..', '..', '..', *os.path.split(pyscript))] + arguments
+ argv = [self.env['PYTHON'], os.path.join(Params.g_cwd_launch, *os.path.split(pyscript))] + arguments
before = os.getcwd()
os.chdir(refTestDirName)
try:
@@ -170,16 +169,27 @@
tests.sort()
return tests
-def run_regression():
- """Execute regression tests."""
+def run_regression(reference_traces):
+ """Execute regression tests. Called with cwd set to the 'regression' subdir of ns-3.
+
+ @param reference_traces: reference traces directory, or None for default.
+
+ """
testdir = "tests"
if not os.path.exists(testdir):
print "Tests directory does not exist"
sys.exit(3)
+
+ dir_name = (wutils.APPNAME + '-' + wutils.VERSION + REGRESSION_SUFFIX)
+ if reference_traces is None:
+ reference_traces = dir_name
+ no_net = False
+ else:
+ no_net = True
sys.path.append(testdir)
- sys.modules['tracediff'] = Regression(testdir)
+ sys.modules['tracediff'] = Regression(testdir, reference_traces)
if Params.g_options.regression_tests:
tests = Params.g_options.regression_tests.split(',')
@@ -187,36 +197,36 @@
tests = _find_tests(testdir)
print "========== Running Regression Tests =========="
- dir_name = wutils.APPNAME + '-' + wutils.VERSION + REGRESSION_SUFFIX
env = Params.g_build.env_of_name('default')
- if env['MERCURIAL']:
- print "Synchronizing reference traces using Mercurial."
- if not os.path.exists(dir_name):
- print "Cloning " + REGRESSION_TRACES_REPO + dir_name + " from repo."
- argv = ["hg", "clone", REGRESSION_TRACES_REPO + dir_name, dir_name]
- rv = subprocess.Popen(argv).wait()
+ if not no_net:
+ if env['MERCURIAL']:
+ print "Synchronizing reference traces using Mercurial."
+ if not os.path.exists(reference_traces):
+ print "Cloning " + REGRESSION_TRACES_REPO + dir_name + " from repo."
+ argv = ["hg", "clone", REGRESSION_TRACES_REPO + dir_name, reference_traces]
+ rv = subprocess.Popen(argv).wait()
+ else:
+ _dir = os.getcwd()
+ os.chdir(reference_traces)
+ try:
+ print "Pulling " + REGRESSION_TRACES_REPO + dir_name + " from repo."
+ result = subprocess.Popen(["hg", "-q", "pull", REGRESSION_TRACES_REPO + dir_name]).wait()
+ if not result:
+ result = subprocess.Popen(["hg", "-q", "update"]).wait()
+ finally:
+ os.chdir("..")
+ if result:
+ Params.fatal("Synchronizing reference traces using Mercurial failed.")
else:
- _dir = os.getcwd()
- os.chdir(dir_name)
- try:
- print "Pulling " + REGRESSION_TRACES_REPO + dir_name + " from repo."
- result = subprocess.Popen(["hg", "-q", "pull", REGRESSION_TRACES_REPO + dir_name]).wait()
- if not result:
- result = subprocess.Popen(["hg", "-q", "update"]).wait()
- finally:
- os.chdir("..")
- if result:
- Params.fatal("Synchronizing reference traces using Mercurial failed.")
- else:
- if not os.path.exists(dir_name):
- traceball = dir_name + wutils.TRACEBALL_SUFFIX
- print "Retrieving " + traceball + " from web."
- urllib.urlretrieve(REGRESSION_TRACES_URL + traceball, traceball)
- os.system("tar -xjf %s -C .." % (traceball))
- print "Done."
+ if not os.path.exists(reference_traces):
+ traceball = dir_name + wutils.TRACEBALL_SUFFIX
+ print "Retrieving " + traceball + " from web."
+ urllib.urlretrieve(REGRESSION_TRACES_URL + traceball, traceball)
+ os.system("tar -xjf %s -C .." % (traceball))
+ print "Done."
- if not os.path.exists(dir_name):
- print "Reference traces directory (%s) does not exist" % dir_name
+ if not os.path.exists(reference_traces):
+ print "Reference traces directory (%s) does not exist" % reference_traces
return 3
bad = []
@@ -254,9 +264,7 @@
else:
os.mkdir("traces")
- dir_name = wutils.APPNAME + '-' + wutils.VERSION + REGRESSION_SUFFIX
-
mod = __import__(test, globals(), locals(), [])
return mod.run(verbose=(Params.g_options.verbose > 0),
- generate=Params.g_options.regression_generate,
- refDirName=dir_name)
+ generate=Params.g_options.regression_generate)
+
--- a/regression/tests/test-csma-bridge.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-csma-bridge.py Thu Nov 20 19:44:19 2008 -0800
@@ -6,10 +6,10 @@
import sys
import tracediff
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Execute a test."""
if tracediff.env['ENABLE_PYTHON_BINDINGS']:
- return tracediff.run_test(verbose, generate, refDirName,
+ return tracediff.run_test(verbose, generate,
"csma-bridge", pyscript=os.path.join('examples', 'csma-bridge.py'))
else:
print >> sys.stderr, "Skipping csma-bridge: Python bindings not available."
--- a/regression/tests/test-csma-broadcast.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-csma-broadcast.py Thu Nov 20 19:44:19 2008 -0800
@@ -6,7 +6,7 @@
import shutil
import tracediff
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Execute a test."""
- return tracediff.run_test(verbose, generate, refDirName, "csma-broadcast")
+ return tracediff.run_test(verbose, generate, "csma-broadcast")
--- a/regression/tests/test-csma-multicast.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-csma-multicast.py Thu Nov 20 19:44:19 2008 -0800
@@ -6,7 +6,7 @@
import shutil
import tracediff
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Execute a test."""
- return tracediff.run_test(verbose, generate, refDirName, "csma-multicast")
+ return tracediff.run_test(verbose, generate, "csma-multicast")
--- a/regression/tests/test-csma-one-subnet.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-csma-one-subnet.py Thu Nov 20 19:44:19 2008 -0800
@@ -6,7 +6,7 @@
import shutil
import tracediff
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Execute a test."""
- return tracediff.run_test(verbose, generate, refDirName, "csma-one-subnet")
+ return tracediff.run_test(verbose, generate, "csma-one-subnet")
--- a/regression/tests/test-csma-packet-socket.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-csma-packet-socket.py Thu Nov 20 19:44:19 2008 -0800
@@ -6,8 +6,8 @@
import shutil
import tracediff
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Execute a test."""
- return tracediff.run_test(verbose, generate, refDirName,
+ return tracediff.run_test(verbose, generate,
"csma-packet-socket")
--- a/regression/tests/test-csma-ping.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-csma-ping.py Thu Nov 20 19:44:19 2008 -0800
@@ -6,7 +6,7 @@
import shutil
import tracediff
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Execute a test."""
- return tracediff.run_test(verbose, generate, refDirName, "csma-ping")
+ return tracediff.run_test(verbose, generate, "csma-ping")
--- a/regression/tests/test-csma-raw-ip-socket.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-csma-raw-ip-socket.py Thu Nov 20 19:44:19 2008 -0800
@@ -6,7 +6,7 @@
import shutil
import tracediff
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Execute a test."""
- return tracediff.run_test(verbose, generate, refDirName, "csma-raw-ip-socket")
+ return tracediff.run_test(verbose, generate, "csma-raw-ip-socket")
--- a/regression/tests/test-csma-star.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-csma-star.py Thu Nov 20 19:44:19 2008 -0800
@@ -6,7 +6,7 @@
import shutil
import tracediff
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Execute a test."""
- return tracediff.run_test(verbose, generate, refDirName, "csma-star")
+ return tracediff.run_test(verbose, generate, "csma-star")
--- a/regression/tests/test-realtime-udp-echo.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-realtime-udp-echo.py Thu Nov 20 19:44:19 2008 -0800
@@ -6,7 +6,7 @@
import shutil
import tracediff
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Execute a test."""
- return tracediff.run_test(verbose, generate, refDirName, "realtime-udp-echo")
+ return tracediff.run_test(verbose, generate, "realtime-udp-echo")
--- a/regression/tests/test-simple-error-model.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-simple-error-model.py Thu Nov 20 19:44:19 2008 -0800
@@ -6,8 +6,8 @@
import shutil
import tracediff
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Execute a test."""
- return tracediff.run_test(verbose, generate, refDirName,
+ return tracediff.run_test(verbose, generate,
"simple-error-model")
--- a/regression/tests/test-simple-global-routing.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-simple-global-routing.py Thu Nov 20 19:44:19 2008 -0800
@@ -6,8 +6,8 @@
import shutil
import tracediff
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Execute a test."""
- return tracediff.run_test(verbose, generate, refDirName,
+ return tracediff.run_test(verbose, generate,
"simple-global-routing")
--- a/regression/tests/test-simple-point-to-point-olsr.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-simple-point-to-point-olsr.py Thu Nov 20 19:44:19 2008 -0800
@@ -6,8 +6,8 @@
import shutil
import tracediff
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Execute a test."""
- return tracediff.run_test(verbose, generate, refDirName,
+ return tracediff.run_test(verbose, generate,
"simple-point-to-point-olsr")
--- a/regression/tests/test-tcp-large-transfer.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-tcp-large-transfer.py Thu Nov 20 19:44:19 2008 -0800
@@ -6,8 +6,8 @@
import shutil
import tracediff
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Execute a test."""
- return tracediff.run_test(verbose, generate, refDirName,
+ return tracediff.run_test(verbose, generate,
"tcp-large-transfer")
--- a/regression/tests/test-tcp-nsc-lfn.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-tcp-nsc-lfn.py Thu Nov 20 19:44:19 2008 -0800
@@ -9,7 +9,7 @@
import platform
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Run a Network Simulation Cradle test involving two TCP streams."""
if not tracediff.env['ENABLE_NSC']:
@@ -29,5 +29,5 @@
# string might not be the best idea?
raise "Unknown architecture, not 64 or 32 bit?"
- return tracediff.run_test(verbose, generate, refDirName,
+ return tracediff.run_test(verbose, generate,
testName, arguments=arguments, refTestName=traceDirName)
--- a/regression/tests/test-udp-echo.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-udp-echo.py Thu Nov 20 19:44:19 2008 -0800
@@ -6,7 +6,7 @@
import shutil
import tracediff
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Execute a test."""
#print tracediff.env
- return tracediff.run_test(verbose, generate, refDirName, "udp-echo")
+ return tracediff.run_test(verbose, generate, "udp-echo")
--- a/regression/tests/test-wifi-wired-bridging.py Thu Nov 20 16:48:21 2008 -0800
+++ b/regression/tests/test-wifi-wired-bridging.py Thu Nov 20 19:44:19 2008 -0800
@@ -6,7 +6,7 @@
import shutil
import tracediff
-def run(verbose, generate, refDirName):
+def run(verbose, generate):
"""Execute a test."""
- return tracediff.run_test(verbose, generate, refDirName, "wifi-wired-bridging", ["--SendIp=0"])
+ return tracediff.run_test(verbose, generate, "wifi-wired-bridging", ["--SendIp=0"])
--- a/src/core/object.cc Thu Nov 20 16:48:21 2008 -0800
+++ b/src/core/object.cc Thu Nov 20 19:44:19 2008 -0800
@@ -111,10 +111,11 @@
{
NS_ASSERT (CheckLoose ());
const Object *currentObject = this;
+ TypeId objectTid = Object::GetTypeId ();
do {
NS_ASSERT (currentObject != 0);
TypeId cur = currentObject->GetInstanceTypeId ();
- while (cur != tid && cur != Object::GetTypeId ())
+ while (cur != tid && cur != objectTid)
{
cur = cur.GetParent ();
}
--- a/src/core/type-id.cc Thu Nov 20 16:48:21 2008 -0800
+++ b/src/core/type-id.cc Thu Nov 20 19:44:19 2008 -0800
@@ -365,10 +365,6 @@
* The TypeId class
*********************************************************************/
-TypeId::TypeId ()
- : m_tid (0)
-{}
-
TypeId::TypeId (const char *name)
{
uint16_t uid = Singleton<IidManager>::Get ()->AllocateUid (name);
@@ -380,8 +376,6 @@
TypeId::TypeId (uint16_t tid)
: m_tid (tid)
{}
-TypeId::~TypeId ()
-{}
TypeId
TypeId::LookupByName (std::string name)
{
@@ -692,16 +686,6 @@
ATTRIBUTE_HELPER_CPP (TypeId);
-bool operator == (TypeId a, TypeId b)
-{
- return a.m_tid == b.m_tid;
-}
-
-bool operator != (TypeId a, TypeId b)
-{
- return a.m_tid != b.m_tid;
-}
-
bool operator < (TypeId a, TypeId b)
{
return a.m_tid < b.m_tid;
--- a/src/core/type-id.h Thu Nov 20 16:48:21 2008 -0800
+++ b/src/core/type-id.h Thu Nov 20 19:44:19 2008 -0800
@@ -351,8 +351,10 @@
void SetUid (uint16_t tid);
// construct an invalid TypeId.
- TypeId ();
- ~TypeId ();
+ inline TypeId ();
+ inline TypeId (const TypeId &o);
+ inline TypeId &operator = (const TypeId &o);
+ inline ~TypeId ();
private:
friend class AttributeList;
@@ -377,8 +379,8 @@
std::ostream & operator << (std::ostream &os, TypeId tid);
std::istream & operator >> (std::istream &is, TypeId &tid);
-bool operator == (TypeId a, TypeId b);
-bool operator != (TypeId a, TypeId b);
+inline bool operator == (TypeId a, TypeId b);
+inline bool operator != (TypeId a, TypeId b);
bool operator < (TypeId a, TypeId b);
/**
@@ -393,6 +395,28 @@
namespace ns3 {
+TypeId::TypeId ()
+ : m_tid (0) {}
+TypeId::TypeId (const TypeId &o)
+ : m_tid (o.m_tid) {}
+TypeId &TypeId::operator = (const TypeId &o)
+{
+ m_tid = o.m_tid;
+ return *this;
+}
+TypeId::~TypeId ()
+{}
+inline bool operator == (TypeId a, TypeId b)
+{
+ return a.m_tid == b.m_tid;
+}
+
+inline bool operator != (TypeId a, TypeId b)
+{
+ return a.m_tid != b.m_tid;
+}
+
+
/*************************************************************************
* The TypeId implementation which depends on templates
*************************************************************************/
--- a/src/internet-stack/ipv4-l3-protocol.cc Thu Nov 20 16:48:21 2008 -0800
+++ b/src/internet-stack/ipv4-l3-protocol.cc Thu Nov 20 19:44:19 2008 -0800
@@ -669,8 +669,15 @@
else
{
NS_ASSERT (packetCopy->GetSize () <= outInterface->GetMtu ());
- m_txTrace (packetCopy, ifaceIndex);
- outInterface->Send (packetCopy, destination);
+ if (outInterface->IsUp ())
+ {
+ m_txTrace (packetCopy, ifaceIndex);
+ outInterface->Send (packetCopy, destination);
+ }
+ else
+ {
+ m_dropTrace (packetCopy);
+ }
}
}
}
@@ -732,13 +739,31 @@
m_txTrace (packet, route.GetInterface ());
if (route.IsGateway ())
{
- NS_LOG_LOGIC ("Send to gateway " << route.GetGateway ());
- outInterface->Send (packet, route.GetGateway ());
+ if (outInterface->IsUp ())
+ {
+ NS_LOG_LOGIC ("Send to gateway " << route.GetGateway ());
+ m_txTrace (packet, route.GetInterface ());
+ outInterface->Send (packet, route.GetGateway ());
+ }
+ else
+ {
+ NS_LOG_LOGIC ("Dropping-- outgoing interface is down: " << route.GetGateway ());
+ m_dropTrace (packet);
+ }
}
else
{
- NS_LOG_LOGIC ("Send to destination " << ipHeader.GetDestination ());
- outInterface->Send (packet, ipHeader.GetDestination ());
+ if (outInterface->IsUp ())
+ {
+ NS_LOG_LOGIC ("Send to destination " << ipHeader.GetDestination ());
+ m_txTrace (packet, route.GetInterface ());
+ outInterface->Send (packet, ipHeader.GetDestination ());
+ }
+ else
+ {
+ NS_LOG_LOGIC ("Dropping-- outgoing interface is down: " << route.GetGateway ());
+ m_dropTrace (packet);
+ }
}
}
}
--- a/src/internet-stack/wscript Thu Nov 20 16:48:21 2008 -0800
+++ b/src/internet-stack/wscript Thu Nov 20 19:44:19 2008 -0800
@@ -7,7 +7,7 @@
# Mercurial repository of the network simulation cradle
NSC_REPO = "https://secure.wand.net.nz/mercurial/nsc"
NSC_RELEASE_URL = "http://research.wand.net.nz/software/nsc"
-NSC_RELEASE_NAME = "nsc-0.4.0"
+NSC_RELEASE_NAME = "nsc-0.5.0"
# directory that contains network simulation cradle source
# note, this path is relative to the project root
--- a/wscript Thu Nov 20 16:48:21 2008 -0800
+++ b/wscript Thu Nov 20 19:44:19 2008 -0800
@@ -143,6 +143,10 @@
help=('Use sudo to setup suid bits on ns3 executables.'),
dest='enable_sudo', action='store_true',
default=False)
+ opt.add_option('--with-regression-traces',
+ help=('Path to the regression reference traces directory'),
+ default=None,
+ dest='regression_traces', type="string")
# options provided in a script in a subdirectory named "src"
opt.sub_options('src')
@@ -193,6 +197,11 @@
variant_env['INCLUDEDIR'] = os.path.join(variant_env['PREFIX'], 'include')
+ if Params.g_options.regression_traces is not None:
+ variant_env['REGRESSION_TRACES'] = os.path.join("..", Params.g_options.regression_traces)
+ else:
+ variant_env['REGRESSION_TRACES'] = None
+
if Params.g_options.enable_gcov:
variant_name += '-gcov'
variant_env.append_value('CCFLAGS', '-fprofile-arcs')
@@ -463,10 +472,14 @@
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")
+ regression_traces = env['REGRESSION_TRACES']
+ if not regression_traces:
+ regression_traces = None
try:
- regression.run_regression()
+ regression.run_regression(regression_traces)
finally:
os.chdir(_dir)