michael@0: The new QA wrapper consistst mainly of 2 scripts, nssqa and qa_stat, both michael@0: include a common header (header) and a common environment (set_environment). michael@0: Also used is mksymlinks and path_uniq. michael@0: michael@0: The scripts that are used on a daily basis are located in /u/sonmi/bin. michael@0: michael@0: Parameters and Options are the same for both scripts. michael@0: michael@0: Parameters michael@0: ---------- michael@0: nssversion (supported: 30b, 31, tip) michael@0: builddate (default - today, format mmdd) michael@0: michael@0: Options michael@0: ------- michael@0: -y answer all questions with y - use at your own risk... ignores warnings michael@0: -s silent (only usefull with -y) michael@0: -h, -? -help you guessed right - displays the usage michael@0: -d debug michael@0: -f - write the (error)output to filename michael@0: -m - send filename to mailinglist (csl) only useful michael@0: with -f on nssqa michael@0: -l run on a local build - does not work at this time michael@0: -cron equivalient to -y -s -d -f $RESULTDIR/$HOST. michael@0: michael@0: nssqa and qa_stat are Beta at the most michael@0: -------------------------- michael@0: Please be aware that michael@0: michael@0: -) machinenames are still hardcoded --FIXED michael@0: -) other very iPlanet specific environments and features are being used. michael@0: michael@0: -d Debug option will be removed from cron in a few weeks - or maybe not michael@0: -l QA on local build is not fully implemented yet michael@0: michael@0: Please do not use on Windows 95 and 98, ME platforms yet. michael@0: michael@0: use -d if script behaves strange or exits unexpectedly michael@0: michael@0: How to use QA michael@0: ------------- michael@0: To test a build, first run nssqa on the required QA platforms (some michael@0: buildplatforms require QA to be run on additional platforms - for michael@0: example Solaris 2.6 has to be tested on 2.8 32 and 64bit) If QA has michael@0: been run on multiple or all required platforms it makes sense to run michael@0: qa_stat on the output of nssqa as well. michael@0: Before used on a new system (even if the same platform has been michael@0: tested before) please use completely interactive, to see what the michael@0: variables are being initialized to, and read the warnings. Same is michael@0: true if being run from a different user account than svbld. michael@0: michael@0: In any case, if you are using it, please let me know the results. michael@0: michael@0: Pseudocode Description of nssqa: michael@0: -------------------------------- michael@0: not quite up to date michael@0: michael@0: header:init (global) michael@0: set flags and variables to default values michael@0: signal trap (for interupts and kills) michael@0: set HOST and DOMSUF variables if running from cron michael@0: parse parameters and options michael@0: determine os and set up the environment (espec. PATH) michael@0: set the directories to run in (influenced by parameters and -l option) michael@0: set and initialize the tmp / debugging / output files michael@0: michael@0: nssqa:init (local) michael@0: locking: if nssqa is already running on this systems (yes-exit, michael@0: no-lockfile) michael@0: set HOST and DOMSUF variables if running interavtively michael@0: set flag to kill remaining selfserv processes during cleanup michael@0: if QA platform different from build platform create neccessary michael@0: symbolic links michael@0: wait for the build to finish (max of 5h) michael@0: michael@0: main: michael@0: repeated per test (optimized, debug, 32, 64 bit) michael@0: set flags for this run of all.sh (optimized, debug, 32, 64 bit) michael@0: set the DIST directory (where the binaries reside) michael@0: kill running selfservers (sorry - just don't use the svbld michael@0: account if you need to do your own testing... I will fix michael@0: selfserv as soon as I can - but it hangs too often and michael@0: disturbs all following QA) michael@0: run all.sh michael@0: michael@0: header:exit (global) michael@0: remove temporary files michael@0: kill remaining selfservers michael@0: send email to the list michael@0: michael@0: michael@0: errorhandling michael@0: Option / Parameter errors: Exit with usage information michael@0: michael@0: Severe errors: Exit wit errormessage michael@0: example: directory in which all.sh resides does not exist michael@0: can't create files or directories michael@0: build not done after 5 hours michael@0: is already running michael@0: michael@0: Other errors: User is prompted with the "errormessage - continue (y/n)?" michael@0: example: local DIST dir does not exist (continues with next all.sh) michael@0: outputdirectory does not exist (user can specify other) michael@0: michael@0: Signals 2, 3, 15 are treated as severe errors michael@0: michael@0: michael@0: