author J.C. Jones <jjones@mozilla.com>
Fri, 21 Jun 2019 14:39:01 -0700
changeset 15182 de60f2b7f0c3fac0537346f1077f03d6d849edc5
parent 10685 6c43fe3ab5dd41803bbd6705979f73275d7668f6
child 11765 653076b2a38b8260df4dad443e701559657c9043
permissions -rwxr-xr-x
Added tag NSS_3_36_8_RTM for changeset df8917878ea6

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.

	nssversion (supported: 30b, 31, tip)
	builddate (default - today, format mmdd)

	-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, 
		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)

		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
		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