Bugzilla – Full Text Bug Listing |
Summary: | regression tests do not work in private or disconnected networks | ||
---|---|---|---|
Product: | ns-3 | Reporter: | Tom Henderson <tomh> |
Component: | regression | Assignee: | Gustavo J. A. M. Carneiro <gjcarneiro> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | craigdo, ns-bugs |
Priority: | P2 | ||
Version: | ns-3.2 | ||
Hardware: | All | ||
OS: | All |
Description
Tom Henderson
2008-09-14 14:18:45 EDT
changeset fc078b692b68 Does not work for me (OS X, ppc); I still cannot run regression when disconnected from the network. I still get: powerbook:/scratch/hg/ns-3-dev% ./waf --regression Entering directory `/scratch/hg/ns-3-dev/build' Compilation finished successfully ========== Running Regression Tests ========== Synchronizing reference traces using Mercurial. Pulling http://code.nsnam.org/ns-3.2-RC2-bis-ref-traces from repo. abort: error: No address associated with nodename Synchronizing reference traces using Mercurial failed. I do not see from the changeset how waf is detecting that I am offline. Also, I don't understand why you changed the VERSION flag on ns-3-dev repo. (In reply to comment #2) > Does not work for me (OS X, ppc); I still cannot run regression when > disconnected from the network. I still get: > > powerbook:/scratch/hg/ns-3-dev% ./waf --regression > Entering directory `/scratch/hg/ns-3-dev/build' > Compilation finished successfully > ========== Running Regression Tests ========== > Synchronizing reference traces using Mercurial. > Pulling http://code.nsnam.org/ns-3.2-RC2-bis-ref-traces from repo. > abort: error: No address associated with nodename > Synchronizing reference traces using Mercurial failed. > > I do not see from the changeset how waf is detecting that I am offline. It does not but, if you uncompress the regression tarballs, it won't try to fetch them again now which I consider is a fix for your problem good enough for the release. Please mark bug fixed if this is ok. If this is not ok, you will have to fix it yourself: it's just a python script after all. > > Also, I don't understand why you changed the VERSION flag on ns-3-dev repo. ha, I screwed up that part. reverted. sorry about that. > I should point out that I disagree that the solution is to add yet another flag to our waf scripts. The real solution is to clealy split all this crap network access from the main waf scripts but you already refused to do this so I can't do much more. We've been pulled in a lot of different directions regarding various options, platforms, regression tests, networks, no networks, etc. I think we need to take some time after ns-3.2 and figure out what ecactly we want this stuff to do and actually design a solution. I saw an email about ns-3.3 priorities fly by. I think that a build system evaluation and cleanup is in order for that release.
> >
> > I do not see from the changeset how waf is detecting that I am offline.
>
> It does not but, if you uncompress the regression tarballs, it won't try to
> fetch them again now which I consider is a fix for your problem good enough for
> the release. Please mark bug fixed if this is ok. If this is not ok, you will
> have to fix it yourself: it's just a python script after all.
Not working for me still. We can chat about it tomorrow AM.
>
> Not working for me still. We can chat about it tomorrow AM.
>
Deferred until post-3.2 release.
In the NS-3.3 plan I see: # Build System Refactoring -- Dropped from ns-3.3 However, isn't this part of the build system refactoring? Yes, this was originally part of the build system refactoring work; but it bothers one of us sufficiently that he wants it broken out and implemented separately -- as a blocker for ns-3.3. Could the person that is most bothered care to explain with more clarity what he wants to see implemented? I must say I that I am confused after reading this bug report and could use a concise and clear summary of what we want to accomplish. In parallel I am trying now to give a go at a 'download.py' script for the build system refactoring. I probably won't finish build system refactoring in time for 3.3, but at least it's a start. Well, I'm not "the guy," but we've talked about it sufficiently that I think I can at least try and speak for him. The essential use case is a developer using a laptop with intermittent network connectivity. The user wants to be able download our code and the regression traces while a network connection is available -- either by tarball or by Mercurial. He then wants to take his laptop to an area in which networking is not available and do development locally. He wants to be able to run the regression tests without having to return to a net connection. The simplest thing seems to be to add an option to run regression without checking for or downloading new trace files; something along the lines of, ./waf --regression-static # run tests without checking for new bits Then, the user in question, who's name rhymes remarkably well with Henderson, could download the ns-3 bits and run the regression tests once while connected. He could then run the above command whenever he is not connected. Did this cover the issue, Tom? (In reply to comment #11) > Well, I'm not "the guy," but we've talked about it sufficiently that I think I > can at least try and speak for him. > > The essential use case is a developer using a laptop with intermittent network > connectivity. The user wants to be able download our code and the regression > traces while a network connection is available -- either by tarball or by > Mercurial. He then wants to take his laptop to an area in which networking is > not available and do development locally. He wants to be able to run the > regression tests without having to return to a net connection. > > The simplest thing seems to be to add an option to run regression without > checking for or downloading new trace files; something along the lines of, > > ./waf --regression-static # run tests without checking for new bits > > Then, the user in question, who's name rhymes remarkably well with Henderson, > could download the ns-3 bits and run the regression tests once while connected. > He could then run the above command whenever he is not connected. > > Did this cover the issue, Tom? > Yes. I suggest that we just add a workaround for ns-3.3 while the build system refactoring is being worked on. Here are the two problems I'd like to solve ASAP: 1) I cannot run ./waf --regression when I am offline, even if I have traces in the directory 2) I may want to suppress the downloading of regression traces even when on line. For instance, when I am working in a private repo that was forked from ns-3-dev, and I'd like to keep the regression traces frozen to avoid having to merge with ns-3-dev at inopportune times. ./waf --regression-static as Craig suggested would seem to handle both problems. Or else if we could leave some lint file in the directory that would suppress downloads (e.g. a ".regression-static" file). Since I have to think of the future 'allinone' build system some people wanted, and to avoid explosion of options, instead I added just a --with-reference-traces option, e.g.: ./waf configure --with-reference-traces=regression/ns-3-dev-my-traces This has two effects folded into one: 1. allows using custom traces, possibly from outside the ns-3 tree, 2. when this option is given, network access is disabled in the future for updating traces. |