Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^9: 5.10 imminent?

by BrowserUk (Patriarch)
on Apr 12, 2007 at 21:20 UTC ( [id://609755]=note: print w/replies, xml ) Need Help??


in reply to Re^8: 5.10 imminent?
in thread 5.10 imminent?

Now I've got bleed downloaded, built and tested, I looked around the distribution for *smoke*, but there's nothing like that. So I googled for perl smoke test and I find lots of references to modules Test::Smoke and CPAN::Smoke etc. but when I look at those modules their synopsis suggest that I'm gonna have to read and understand these modules and then write scripts? And that means that I'm going to have to install this version of perl in preference to my current "production" version so that I can install the module(s)? I also see references to shell scripts and suggestions for adding this to my crontab, whatever that is.

Hmm. Like I said elsewhere, if there was a clear set of instructions and it didn't mean screwing up everything else on my system, I'd really like do stuff to help...but this?

Someone out there knows exactly how to do this, does it regularly perhaps. Does it need to be this hard?


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^10: 5.10 imminent?
by demerphq (Chancellor) on Apr 13, 2007 at 11:22 UTC

    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

      Ok, first off, no pretty much everything youve said here is not correct. Sorry.

      No need for apologies, I pretty much knew it would be when I posted it, hence the '?'s. But, with greatest of respect and thanks for your having posted this 'blow by blow on win32', without having done any further googles looking for specific keyphrases from the above, almost nothing of what you have posted relates to anything I have seen in any of the many, many online documents I have scanned looking for answers.

      So the question is, how could I (or any other potential Win32 smoketest neophyte), have discovered this information other than by asking? You are now a well seasoned perl source diver/builder/tester/developer, but it has taken you something like 2 years of your free time to reach you current level of knowledge? I assume that you have acquired the knowledge that allowed you to arrive at the above, over some considerable subset of that period. And maybe with some assistance from your forbears and peers on the p5p lists?

      Anyway, my greatest thanks for your having taken the time to write up the above. I will attempt to work my way through it this evening and record my progress and experiences. Assuming that I am able to achieve the desired result, I will write up a full step by step of the process and post it here in a new thread for others to see and perhaps use.


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

        Actually I only got smoke up and running over the last week. There were some issues with the smoke framework under win32 and I worked with Abe to get them resolved. Theres no question that getting smoking running on win32 is/was non-trivial and underdocumented. Since there are only two or three people doing it there hasnt been a lot of testing. However I now smoke daily on win32 so ill be keeping an eye on the process. And Abe is quite responsive to issues with smoke so if issues come up they are addressed fairly quickly.

        I agree with you btw, its not an easy process to do without somebody to hold your hand. It would be a real benefit to the community if you converted my quick review here into a proper pod document for doing smokes on win32. In fact the smoke documentation could do with a HOWTO or something that runs through the full process. Currently most of the explanations are scattered through various files and its not so clear how to procede.

        Please note I updated the first paragraph of my post, and added one to the bottom. If any issues come up with the process why not email me about it and ill see what i can do to help you out.

        ---
        $world=~s/war/peace/g

        w32config.cfg or something like that. Sorry not at my machine right now to check. And regarding your other question i bet the -w is the problem there. Although its an interesting question id have to follow up on.

        One of the config files will be smokecurrent_config thats the smoke config file. The other one will be the build config file. The last will be a batch file.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://609755]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others goofing around in the Monastery: (4)
As of 2025-05-21 15:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.