Ok, first off, no pretty much everything youve said here is not correct. Sorry. Also, if you are going to smoke then get used to using rsync. Rsync would have been only marginally slower than wget to complete if you had done it properly and that would be a one time payment, wheras the cost of fetching from the snapshots will be fixed every time. Anyway, now that you have a snapshot rsyncing should be extremely easy. Just unpack the snapshot into a directory and rsync from there. Normally when i rsync its a matter of 60 seconds or less to get an updated version. Less if nothing has changed. (BTW, the 'z' option means to gzip any data being tranferred)
Note also you dont want to use -avz on a windows box, use -rtvz instead (or omit the 'v' to get less verbiage), and when you are first doing things DO include the --dryrun option and DO include --delete option, once you are happy things are working remove the --dryrun option. Without the delete option old files that are no longer used will not be removed.
Next, create a directory for your smoking. I use the following structure:
D:\smoke
D:\smoke\src
D:\smoke\run
#and hypothetically
D:\smoke\perl-current
D:\smoke\perl-5.8.x
I use this structure btw because the run directory will end up with various autogenerated batch files in it. And since I had to do some tweaking to get test smoke set up on Win32 I wanted all of its install and autogenerated batch files in a seperate path from the perl sources so i could do easy searches on the tree without also searching the perl sources.
CD into the src directory and run the following (note the dot at the end of the command).
rsync --delete -rtz source.Test-Smoke.org::ts-current .
Then do the normal mantra:
perl Makefile.PL && nmake && nmake test && nmake install
When the Makefile asks you where you want to install the smoke libraries tell it D:\smoke\run\lib. Once this is done you will have installed the latest version of Test::Smoke into that directory.
Next cd into D:\smoke\run and execute the batchfile via relative referencing accordingly:
lib\configsmoke
This will ask you a bunch of questions, for most of them you want to use the defaults. About the only ones you will need to hand edit will be the location of the build directory and the email addresses you want to CC your smoke reports to. For perl-current I use D:\smoke\perl-current once this is done you will find that you have three files in your run directory, one is a build config file, the other is a smoke config file and the last is a batchfile. Once all of this is done in order to run a smoke you simply execute this batch file.
And thats about it actually.
You may want to 'tail -f smokecurrent.log' from the run directory to whatch what is going on, or you can do a grep Configuration: smokecurrent.log and see how many different configurations have been completed. Out of the box a smoke run will build 8 different configurations.
Oh one thing you might want to do is edit the build config file and make sure that something like:
-DINST_DRV=D: -DINST_TOP=$(INST_DRV)\smoke\inst\current
Is specified, nothing will actually be installed in this location, and in fact the location should NOT exist, but it will help prevent the possibility of a header mismatch if you have a perl installed in the standard location. I actually got a patch applied recently that fixed the only example of this bug, but its better to be on the safe side.
Update: There is one annoyance that you should address, and that is that there are weird permission issues currently with some of the files in the bundle. Instead of letting smoke rsync directly I have it execute the following batch file:
rsync %*
echo y|cacls D:\smoke\perl-current\*.* /T /C /P Everyone:F >nul
attrib -r /s /d D:\smoke\perl-current\*.* >nul
This will ensure that all the files are writable and have the correct permissions after the rsync. Its possible that the cacls call is superfluous with '-rtz' (versus '-az') but i keep it in there anyway.
---
$world=~s/war/peace/g
|