Source code

Revision control

Copy as Markdown

Other Tools

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