Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
michael@0 | 1 | The new QA wrapper consistst mainly of 2 scripts, nssqa and qa_stat, both |
michael@0 | 2 | include a common header (header) and a common environment (set_environment). |
michael@0 | 3 | Also used is mksymlinks and path_uniq. |
michael@0 | 4 | |
michael@0 | 5 | The scripts that are used on a daily basis are located in /u/sonmi/bin. |
michael@0 | 6 | |
michael@0 | 7 | Parameters and Options are the same for both scripts. |
michael@0 | 8 | |
michael@0 | 9 | Parameters |
michael@0 | 10 | ---------- |
michael@0 | 11 | nssversion (supported: 30b, 31, tip) |
michael@0 | 12 | builddate (default - today, format mmdd) |
michael@0 | 13 | |
michael@0 | 14 | Options |
michael@0 | 15 | ------- |
michael@0 | 16 | -y answer all questions with y - use at your own risk... ignores warnings |
michael@0 | 17 | -s silent (only usefull with -y) |
michael@0 | 18 | -h, -? -help you guessed right - displays the usage |
michael@0 | 19 | -d debug |
michael@0 | 20 | -f <filename> - write the (error)output to filename |
michael@0 | 21 | -m <mailinglist> - send filename to mailinglist (csl) only useful |
michael@0 | 22 | with -f on nssqa |
michael@0 | 23 | -l <mozroot> run on a local build - does not work at this time |
michael@0 | 24 | -cron equivalient to -y -s -d -f $RESULTDIR/$HOST.<scriptname> |
michael@0 | 25 | |
michael@0 | 26 | nssqa and qa_stat are Beta at the most |
michael@0 | 27 | -------------------------- |
michael@0 | 28 | Please be aware that |
michael@0 | 29 | |
michael@0 | 30 | -) machinenames are still hardcoded --FIXED |
michael@0 | 31 | -) other very iPlanet specific environments and features are being used. |
michael@0 | 32 | |
michael@0 | 33 | -d Debug option will be removed from cron in a few weeks - or maybe not |
michael@0 | 34 | -l QA on local build is not fully implemented yet |
michael@0 | 35 | |
michael@0 | 36 | Please do not use on Windows 95 and 98, ME platforms yet. |
michael@0 | 37 | |
michael@0 | 38 | use -d if script behaves strange or exits unexpectedly |
michael@0 | 39 | |
michael@0 | 40 | How to use QA |
michael@0 | 41 | ------------- |
michael@0 | 42 | To test a build, first run nssqa on the required QA platforms (some |
michael@0 | 43 | buildplatforms require QA to be run on additional platforms - for |
michael@0 | 44 | example Solaris 2.6 has to be tested on 2.8 32 and 64bit) If QA has |
michael@0 | 45 | been run on multiple or all required platforms it makes sense to run |
michael@0 | 46 | qa_stat on the output of nssqa as well. |
michael@0 | 47 | Before used on a new system (even if the same platform has been |
michael@0 | 48 | tested before) please use completely interactive, to see what the |
michael@0 | 49 | variables are being initialized to, and read the warnings. Same is |
michael@0 | 50 | true if being run from a different user account than svbld. |
michael@0 | 51 | |
michael@0 | 52 | In any case, if you are using it, please let me know the results. |
michael@0 | 53 | |
michael@0 | 54 | Pseudocode Description of nssqa: |
michael@0 | 55 | -------------------------------- |
michael@0 | 56 | not quite up to date |
michael@0 | 57 | |
michael@0 | 58 | header:init (global) |
michael@0 | 59 | set flags and variables to default values |
michael@0 | 60 | signal trap (for interupts and kills) |
michael@0 | 61 | set HOST and DOMSUF variables if running from cron |
michael@0 | 62 | parse parameters and options |
michael@0 | 63 | determine os and set up the environment (espec. PATH) |
michael@0 | 64 | set the directories to run in (influenced by parameters and -l option) |
michael@0 | 65 | set and initialize the tmp / debugging / output files |
michael@0 | 66 | |
michael@0 | 67 | nssqa:init (local) |
michael@0 | 68 | locking: if nssqa is already running on this systems (yes-exit, |
michael@0 | 69 | no-lockfile) |
michael@0 | 70 | set HOST and DOMSUF variables if running interavtively |
michael@0 | 71 | set flag to kill remaining selfserv processes during cleanup |
michael@0 | 72 | if QA platform different from build platform create neccessary |
michael@0 | 73 | symbolic links |
michael@0 | 74 | wait for the build to finish (max of 5h) |
michael@0 | 75 | |
michael@0 | 76 | main: |
michael@0 | 77 | repeated per test (optimized, debug, 32, 64 bit) |
michael@0 | 78 | set flags for this run of all.sh (optimized, debug, 32, 64 bit) |
michael@0 | 79 | set the DIST directory (where the binaries reside) |
michael@0 | 80 | kill running selfservers (sorry - just don't use the svbld |
michael@0 | 81 | account if you need to do your own testing... I will fix |
michael@0 | 82 | selfserv as soon as I can - but it hangs too often and |
michael@0 | 83 | disturbs all following QA) |
michael@0 | 84 | run all.sh |
michael@0 | 85 | |
michael@0 | 86 | header:exit (global) |
michael@0 | 87 | remove temporary files |
michael@0 | 88 | kill remaining selfservers |
michael@0 | 89 | send email to the list |
michael@0 | 90 | |
michael@0 | 91 | |
michael@0 | 92 | errorhandling |
michael@0 | 93 | Option / Parameter errors: Exit with usage information |
michael@0 | 94 | |
michael@0 | 95 | Severe errors: Exit wit errormessage |
michael@0 | 96 | example: directory in which all.sh resides does not exist |
michael@0 | 97 | can't create files or directories |
michael@0 | 98 | build not done after 5 hours |
michael@0 | 99 | is already running |
michael@0 | 100 | |
michael@0 | 101 | Other errors: User is prompted with the "errormessage - continue (y/n)?" |
michael@0 | 102 | example: local DIST dir does not exist (continues with next all.sh) |
michael@0 | 103 | outputdirectory does not exist (user can specify other) |
michael@0 | 104 | |
michael@0 | 105 | Signals 2, 3, 15 are treated as severe errors |
michael@0 | 106 | |
michael@0 | 107 | |
michael@0 | 108 |