Index: mozilla-tests/test.sh |
=================================================================== |
--- mozilla-tests/test.sh (revision 43940) |
+++ mozilla-tests/test.sh (working copy) |
@@ -41,7 +41,7 @@ |
cat <<EOF |
`basename $0`: error |
-TEST_DIR, the location of the Sisyphus framework, |
+TEST_DIR, the location of the Sisyphus framework, |
is required to be set prior to calling this script. |
EOF |
exit 2 |
@@ -80,41 +80,41 @@ |
variable description |
=============== ============================================================ |
--p product required. firefox|thunderbird|js |
--b branch required. 1.8.0|1.8.1|1.9.0|1.9.1 |
+-p product required. firefox|thunderbird|js|fennec |
+-b branch required. one of supported branches. see library.sh. |
-s jsshellsourcepath required for shell. path to js shell source directory mozilla/js/src |
-T buildtype required. one of opt debug |
-x executablepath required for browser. directory-tree containing executable 'product' |
--N profilename required for browser. profile name |
--X excludetests optional. By default the test will exclude the |
- tests listed in spidermonkey-n-\$branch.tests, |
+-N profilename required for browser. profile name |
+-X excludetests optional. By default the test will exclude the |
+ tests listed in spidermonkey-n-\$branch.tests, |
performance-\$branch.tests. excludetests is a list of either |
- individual tests, manifest files or sub-directories which |
+ individual tests, manifest files or sub-directories which |
will override the default exclusion list. |
--I includetests optional. By default the test will include the |
+-I includetests optional. By default the test will include the |
JavaScript tests appropriate for the branch. includetests is a |
- list of either individual tests, manifest files or |
- sub-directories which will override the default inclusion |
+ list of either individual tests, manifest files or |
+ sub-directories which will override the default inclusion |
list. |
--c optional. By default the test will exclude tests |
- which crash on this branch, test type, build type and |
- operating system. -c will include tests which crash. |
- Typically this should only be used in combination with -R. |
+-c optional. By default the test will exclude tests |
+ which crash on this branch, test type, build type and |
+ operating system. -c will include tests which crash. |
+ Typically this should only be used in combination with -R. |
This has no effect on shell based tests which execute crash |
tests regardless. |
--t optional. By default the test will exclude tests |
- which time out on this branch, test type, build type and |
+-t optional. By default the test will exclude tests |
+ which time out on this branch, test type, build type and |
operating system. -t will include tests which timeout. |
-J jsoptions optional. Set JavaScript options: |
- -Z n Set gczeal to n. Currently, only valid for |
+ -Z n Set gczeal to n. Currently, only valid for |
debug builds of Gecko 1.8.1.15, 1.9.0 and later. |
-z optional. use split objects in the shell. |
-j optional. use JIT in the shell. Only available on 1.9.1 and later |
-F optional. Just generate file lists without running any tests. |
--d datafiles optional. one or more filenames of files containing |
+-d datafiles optional. one or more filenames of files containing |
environment variable definitions to be included. |
- note that the environment variables should have the same |
+ note that the environment variables should have the same |
names as in the "variable" column. |
if an argument contains more than one value, it must be quoted. |
@@ -123,29 +123,29 @@ |
} |
while getopts "p:b:s:T:x:N:d:X:I:J:RctF" optname |
-do |
+do |
case $optname in |
- p) |
+ p) |
product=$OPTARG;; |
- b) |
+ b) |
branch=$OPTARG;; |
- T) |
+ T) |
buildtype=$OPTARG;; |
- s) |
+ s) |
jsshellsourcepath=$OPTARG;; |
- N) |
+ N) |
profilename=$OPTARG;; |
- x) |
+ x) |
executablepath=$OPTARG;; |
- X) |
+ X) |
excludetests=$OPTARG;; |
- I) |
+ I) |
includetests=$OPTARG;; |
- c) |
+ c) |
crashes=1;; |
- t) |
+ t) |
timeouts=1;; |
- F) |
+ F) |
filesonly=1;; |
J) |
javascriptoptions=$OPTARG |
@@ -158,7 +158,7 @@ |
unset OPTIND |
while getopts "Z:jz" optname $javascriptoptions; do |
case $optname in |
- Z) |
+ Z) |
gczealshell="-Z $OPTARG" |
gczealbrowser=";gczeal=$OPTARG" |
;; |
@@ -166,7 +166,8 @@ |
splitobjects="-z" |
;; |
j) |
- jit="-j" |
+ jitshell="-j" |
+ jitbrowser=";jit" |
;; |
esac |
done |
@@ -174,7 +175,7 @@ |
# include environment variables |
if [[ -n "$datafiles" ]]; then |
- for datafile in $datafiles; do |
+ for datafile in $datafiles; do |
source $datafile |
done |
fi |
@@ -197,7 +198,7 @@ |
executable="$jsshellsourcepath/$JS_OBJDIR/js$EXE_EXT" |
;; |
- firefox|thunderbird) |
+ firefox|thunderbird|fennec) |
if [[ -z "$branch" || -z "$buildtype" || -z "$executablepath" || -z "$profilename" ]]; then |
usage |
fi |
@@ -309,7 +310,7 @@ |
# by default include tests appropriate for the branch |
includetests="e4x ecma ecma_2 ecma_3 js1_1 js1_2 js1_3 js1_4 js1_5 js1_6" |
- case "$branch" in |
+ case "$branch" in |
1.8.0) |
;; |
1.8.1) |
@@ -321,6 +322,12 @@ |
1.9.1) |
includetests="$includetests js1_7 js1_8 ecma_3_1 js1_8_1" |
;; |
+ 1.9.2) |
+ includetests="$includetests js1_7 js1_8 ecma_3_1 js1_8_1" |
+ ;; |
+ 1.9.3) |
+ includetests="$includetests js1_7 js1_8 ecma_3_1 js1_8_1" |
+ ;; |
esac |
fi |
@@ -358,15 +365,6 @@ |
fi |
done |
-# convert the numeric speed rating to a prose value |
-if [[ $TEST_CPUSPEED -lt 4 ]]; then |
- TEST_CPUSPEED=slow |
-elif [[ $TEST_CPUSPEED -lt 9 ]]; then |
- TEST_CPUSPEED=medium |
-else |
- TEST_CPUSPEED=fast |
-fi |
- |
if [[ -z "$TEST_MOZILLA_HG" ]]; then |
repo=CVS |
else |
@@ -374,19 +372,17 @@ |
fi |
debug "repo=$repo" |
-pattern="TEST_BRANCH=($branch|[.][*]), TEST_REPO=($repo|[.][*]), TEST_BUILDTYPE=($buildtype|[.][*]), TEST_TYPE=($testtype|[.][*]), TEST_OS=($OSID|[.][*]), TEST_KERNEL=($TEST_KERNEL|[.][*]), TEST_PROCESSORTYPE=($TEST_PROCESSORTYPE|[.][*]), TEST_MEMORY=($TEST_MEMORY|[.][*]), TEST_CPUSPEED=($TEST_CPUSPEED|[.][*])," |
+pattern="TEST_BRANCH=($branch|[.][*]), TEST_REPO=($repo|[.][*]), TEST_BUILDTYPE=($buildtype|[.][*]), TEST_TYPE=($testtype|[.][*]), TEST_OS=($OSID|[.][*]), TEST_KERNEL=($TEST_KERNEL|[.][*]), TEST_PROCESSORTYPE=($TEST_PROCESSORTYPE|[.][*]), TEST_MEMORY=($TEST_MEMORY|[.][*])," |
if [[ -z "$timeouts" ]]; then |
echo "# exclude tests that time out" >> $excludetestsfile |
- echo "$pattern .*TEST_EXITSTATUS=TIMED OUT," >> $excludetestsfile |
- egrep "$pattern .*TEST_EXITSTATUS=TIMED OUT," failures.txt | \ |
+ egrep "$pattern .*TEST_EXITSTATUS=[^,]*TIMED OUT[^,]*," failures.txt | \ |
sed 's/.*TEST_ID=\([^,]*\),.*/\1/' | sort -u >> $excludetestsfile |
fi |
if [[ -z "$crashes" ]]; then |
echo "# exclude tests that crash" >> $excludetestsfile |
- echo "$pattern .*TEST_EXITSTATUS=(CRASHED|ABNORMAL)" >> $excludetestsfile |
- egrep "$pattern .*TEST_EXITSTATUS=(CRASHED|ABNORMAL)" failures.txt | \ |
+ egrep "$pattern .*TEST_EXITSTATUS=[^,]*(CRASHED|ABNORMAL)[^,]*" failures.txt | \ |
sed 's/.*TEST_ID=\([^,]*\),.*/\1/' | sort -u >> $excludetestsfile |
fi |
@@ -406,25 +402,45 @@ |
if ! grep -q $jsfile $excludetestsfile; then |
version=`shellfileversion $jsfile` |
- |
+ |
subsuitetestdir=`dirname $jsfile` |
suitetestdir=`dirname $subsuitetestdir` |
echo "JavaScriptTest: Begin Test $jsfile" |
- if eval $TIMECOMMAND timed_run.py $TEST_JSEACH_TIMEOUT \"$jsfile\" \ |
- $EXECUTABLE_DRIVER \ |
- $executable -v $version \ |
- -S 524288 \ |
- $gczealshell \ |
- $splitobjects \ |
- $jit \ |
- -f ./shell.js \ |
- -f $suitetestdir/shell.js \ |
- -f $subsuitetestdir/shell.js \ |
- -f ./$jsfile \ |
- -f ./js-test-driver-end.js; then |
- true |
+ if [[ -z "$NARCISSUS" ]]; then |
+ if eval $TIMECOMMAND timed_run.py $TEST_JSEACH_TIMEOUT \"$jsfile\" \ |
+ $EXECUTABLE_DRIVER \ |
+ $executable -v $version \ |
+ -S 524288 \ |
+ $gczealshell \ |
+ $splitobjects \ |
+ $jitshell \ |
+ -f ./shell.js \ |
+ -f $suitetestdir/shell.js \ |
+ -f $subsuitetestdir/shell.js \ |
+ -f ./$jsfile \ |
+ -f ./js-test-driver-end.js; then |
+ true |
+ else |
+ rc=$? |
+ fi |
else |
- rc=$? |
+ if eval $TIMECOMMAND timed_run.py $TEST_JSEACH_TIMEOUT \"$jsfile\" \ |
+ $EXECUTABLE_DRIVER \ |
+ $executable -v $version \ |
+ -S 524288 \ |
+ $gczealshell \ |
+ $splitobjects \ |
+ $jitshell \ |
+ -f $NARCISSUS \ |
+ -e "evaluate\(\'load\(\\\"./shell.js\\\"\)\'\)" \ |
+ -e "evaluate\(\'load\(\\\"$suitetestdir/shell.js\\\"\)\'\)" \ |
+ -e "evaluate\(\'load\(\\\"$subsuitetestdir/shell.js\\\"\)\'\)" \ |
+ -e "evaluate\(\'load\(\\\"./$jsfile\\\"\)\'\)" \ |
+ -e "evaluate\(\'load\(\\\"./js-test-driver-end.js\\\"\)\'\)"; then |
+ true |
+ else |
+ rc=$? |
+ fi |
fi |
if [[ $rc == 99 ]]; then |
# note that this loop is executing in a sub-process |
@@ -468,9 +484,9 @@ |
if ! grep -q $jsfile $excludetestsfile; then |
version=";version=`browserfileversion $jsfile`" |
- |
- echo "http://$TEST_HTTP/$TEST_WWW_JS/js-test-driver-standards.html?test=$jsfile;language=type;text/javascript$version$gczealbrowser" >> $urllist |
- echo "<li><a href='http://$TEST_HTTP/$TEST_WWW_JS/js-test-driver-standards.html?test=$jsfile;language=type;text/javascript$version$gczealbrowser'>$jsfile</a></li>" >> $urlhtml |
+ |
+ echo "http://$TEST_HTTP/$TEST_WWW_JS/js-test-driver-standards.html?test=$jsfile;language=type;text/javascript$version$gczealbrowser$jitbrowser" >> $urllist |
+ echo "<li><a href='http://$TEST_HTTP/$TEST_WWW_JS/js-test-driver-standards.html?test=$jsfile;language=type;text/javascript$version$gczealbrowser$jitbrowser'>$jsfile</a></li>" >> $urlhtml |
fi |
done |
@@ -484,8 +500,8 @@ |
if [[ -z "$filesonly" ]]; then |
echo "JavaScriptTest: Begin Run" |
- cat "$urllist" | while read url; |
- do |
+ cat "$urllist" | while read url; |
+ do |
edit-talkback.sh -p "$product" -b "$branch" -x "$executablepath" -i "$url" |
jsfile=`echo $url | sed "s|http://$TEST_HTTP/$TEST_WWW_JS/js-test-driver-standards.html?test=\([^;]*\);.*|\1|"` |
echo "JavaScriptTest: Begin Test $jsfile" |