Sisyphus - adapt to build and test Mozilla2, bug 422942

This commit is contained in:
Bob Clary 2008-06-25 17:51:22 -04:00
parent 514b09816f
commit 74cae524b2
86 changed files with 1084 additions and 357 deletions

View File

@ -80,16 +80,12 @@ case $product in
;; ;;
esac esac
if [[ "$OSID" != "win32" ]]; then if [[ "$OSID" != "nt" ]]; then
# #
# patch unix-like startup scripts to exec instead of # patch unix-like startup scripts to exec instead of
# forking new processes # forking new processes
# #
executable=`get_executable $product $branch $executablepath` executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
error "get_executable $product $branch $executablepath returned empty path" $LINENO
fi
executabledir=`dirname $executable` executabledir=`dirname $executable`

View File

@ -54,7 +54,7 @@ $SCRIPT -p products -b branches -B buildcommands -T buildtypes [-e extra] [-v]
variable description variable description
=============== =========================================================== =============== ===========================================================
-p products required. one or more of firefox thunderbird -p products required. one or more of firefox thunderbird
-b branches required. one or more of 1.8.0 1.8.1 1.9.0 -b branches required. one or more of 1.8.0 1.8.1 1.9.0 1.9.1
-B buildcommands required. one or more of clean checkout build -B buildcommands required. one or more of clean checkout build
-T buildtypes required. one or more of opt debug -T buildtypes required. one or more of opt debug
-e extra optional. extra qualifier to pick build tree and mozconfig. -e extra optional. extra qualifier to pick build tree and mozconfig.
@ -86,12 +86,7 @@ while getopts $options optname ;
done done
# include environment variables # include environment variables
if [[ -n "$datafiles" ]]; then loaddata $datafiles
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$products" || -z "$branches" || -z "$buildcommands" || \ if [[ -z "$products" || -z "$branches" || -z "$buildcommands" || \
-z "$buildtypes" ]]; then -z "$buildtypes" ]]; then

View File

@ -55,7 +55,7 @@ $SCRIPT -p product -b branch -x executablepath -N profilename
variable description variable description
=============== ============================================================ =============== ============================================================
-p product required. firefox|thunderbird -p product required. firefox|thunderbird
-b branch required. 1.8.0|1.8.1|1.9.0 -b branch required. 1.8.0|1.8.1|1.9.0|1.9.1
-x executablepath required. directory-tree containing executable named -x executablepath required. directory-tree containing executable named
'product' 'product'
-N profilename required. name of profile to be used -N profilename required. name of profile to be used
@ -88,12 +88,7 @@ while getopts $options optname ;
done done
# include environment variables # include environment variables
if [[ -n "$datafiles" ]]; then loaddata $datafiles
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$product" || -z "$branch" || -z "$executablepath" || -z "$profilename" ]]; if [[ -z "$product" || -z "$branch" || -z "$executablepath" || -z "$profilename" ]];
then then
@ -104,21 +99,13 @@ if [[ "$product" != "firefox" && "$product" != "thunderbird" ]]; then
error "product \"$product\" must be one of firefox or thunderbird" $LINENO error "product \"$product\" must be one of firefox or thunderbird" $LINENO
fi fi
if [[ "$branch" != "1.8.0" && "$branch" != "1.8.1" && "$branch" != "1.9.0" ]]; if [[ "$branch" != "1.8.0" && "$branch" != "1.8.1" && "$branch" != "1.9.0" && "$branch" != "1.9.1" ]];
then then
error "branch \"$branch\" must be one of 1.8.0, 1.8.1, 1.9.0" $LINENO error "branch \"$branch\" must be one of 1.8.0, 1.8.1, 1.9.0 1.9.1" $LINENO
fi fi
executable=`get_executable $product $branch $executablepath` executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
error "get_executable $product $branch $executablepath returned empty path" $LINENO
fi
if [[ ! -x "$executable" ]]; then
error "executable \"$executable\" is not executable" $LINENO
fi
if echo "$profilename" | egrep -qiv '[a-z0-9_]'; then if echo "$profilename" | egrep -qiv '[a-z0-9_]'; then
error "profile name must consist of letters, digits or _" $LINENO error "profile name must consist of letters, digits or _" $LINENO
fi fi
@ -127,6 +114,7 @@ echo # attempt to force Spider to load
tries=1 tries=1
while ! $TEST_DIR/bin/timed_run.py ${TEST_STARTUP_TIMEOUT} "Start Spider: try $tries" \ while ! $TEST_DIR/bin/timed_run.py ${TEST_STARTUP_TIMEOUT} "Start Spider: try $tries" \
$EXECUTABLE_DRIVER \
"$executable" -P "$profilename" \ "$executable" -P "$profilename" \
-spider -start -quit \ -spider -start -quit \
-uri "http://${TEST_HTTP}/bin/start-spider.html" \ -uri "http://${TEST_HTTP}/bin/start-spider.html" \

View File

@ -44,69 +44,174 @@ if [[ -z "$TREE" ]]; then
error "source tree not specified!" $LINENO error "source tree not specified!" $LINENO
fi fi
if [[ "$branch" == "1.9.1" ]]; then
if [[ -z "$TEST_MOZILLA_HG" ]]; then
error "environment variable TEST_MOZILLA_HG must be set to the hg repository for branch 1.9.1"
fi
# maintain a local copy of the hg repository
# clone specific trees from it.
TEST_MOZILLA_HG_LOCAL=$BUILDDIR/hg.mozilla.org/`basename $TEST_MOZILLA_HG`
if [[ ! -d $BUILDDIR/hg.mozilla.org ]]; then
mkdir $BUILDDIR/hg.mozilla.org
fi
if [[ ! -d $TEST_MOZILLA_HG_LOCAL ]]; then
if ! hg clone -r $TEST_MOZILLA_HG_REV $TEST_MOZILLA_HG $TEST_MOZILLA_HG_LOCAL; then
error "during hg clone of $TEST_MOZILLA_HG" $LINENO
fi
fi
cd $TEST_MOZILLA_HG_LOCAL
hg pull
fi
cd $TREE cd $TREE
case $product in case $product in
firefox) firefox)
if [[ ! ( -d mozilla && \ case $branch in
-e mozilla/client.mk && \ 1.8.*|1.9.0)
-e "mozilla/$project/config/mozconfig" ) ]]; then if [[ ! ( -d mozilla && \
if ! eval cvs -z3 -q co $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS \ -e mozilla/client.mk && \
mozilla/client.mk mozilla/$project/config/mozconfig; then -e "mozilla/$project/config/mozconfig" ) ]]; then
error "during checkout of $project mozconfig" $LINENO if ! eval cvs -z3 -q co $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS \
fi mozilla/client.mk mozilla/$project/config/mozconfig; then
fi error "during checkout of $project mozconfig" $LINENO
fi
fi
if ! $buildbash $bashlogin -c "cd $TREE/mozilla; make -f client.mk checkout" 2>&1; then
error "during checkout of $project tree" $LINENO
fi
;;
# cd mozilla 1.9.1)
if ! $buildbash $bashlogin -c "cd $TREE/mozilla; make -f client.mk checkout" 2>&1; then if [[ ! -e mozilla/client.py ]]; then
error "during checkout of $project tree" $LINENO if ! hg clone $TEST_MOZILLA_HG_LOCAL $TREE/mozilla; then
fi error "during hg clone of $TEST_MOZILLA_HG_LOCAL" $LINENO
fi
fi
cd mozilla
hg pull -r $TEST_MOZILLA_HG_REV
# do not use mozilla-build on windows systems as we
# must use the cygwin python with the cygwin mercurial.
if ! python client.py checkout; then
error "during checkout of $project tree" $LINENO
fi
;;
*)
error "branch $branch not yet supported"
;;
esac
;; ;;
thunderbird) thunderbird)
if [[ ! ( -d mozilla && \
-e mozilla/client.mk && \
-e "mozilla/$project/config/mozconfig" ) ]]; then
if ! eval cvs -z3 -q co $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS \
mozilla/client.mk mozilla/$project/config/mozconfig; then
error "during checkout of $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS $project mozconfig" $LINENO
fi
fi
if [[ ! ( -d mozilla && \
-e mozilla/client.mk && \
-e "mozilla/browser/config/mozconfig" ) ]]; then
if ! eval cvs -z3 -q co $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS \
mozilla/client.mk mozilla/browser/config/mozconfig; then
error "during checkout of $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS browser mozconfig" $LINENO
fi
fi
# cd mozilla case $branch in
1.8.*|1.9.0)
if [[ ! ( -d mozilla && \
-e mozilla/client.mk && \
-e "mozilla/$project/config/mozconfig" ) ]]; then
if ! eval cvs -z3 -q co $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS \
mozilla/client.mk mozilla/$project/config/mozconfig; then
error "during checkout of $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS $project mozconfig" $LINENO
fi
fi
if ! $buildbash $bashlogin -c "cd $TREE/mozilla; make -f client.mk checkout" 2>&1; then if [[ ! ( -d mozilla && \
error "during checkout of $project tree" $LINENO -e mozilla/client.mk && \
fi -e "mozilla/browser/config/mozconfig" ) ]]; then
if ! eval cvs -z3 -q co $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS \
mozilla/client.mk mozilla/browser/config/mozconfig; then
error "during checkout of $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS browser mozconfig" $LINENO
fi
fi
if ! $buildbash $bashlogin -c "cd $TREE/mozilla; make -f client.mk checkout" 2>&1; then
error "during checkout of $project tree" $LINENO
fi
;;
1.9.1)
if [[ ! -e mozilla/client.py ]]; then
if ! hg clone $TEST_MOZILLA_HG_LOCAL $TREE/mozilla; then
error "during hg clone of $TEST_MOZILLA_HG_LOCAL" $LINENO
fi
fi
cd mozilla
hg pull -r $TEST_MOZILLA_HG_REV
# do not use mozilla-build on windows systems as we
# must use the cygwin python with the cygwin mercurial.
if ! python client.py checkout; then
error "during checkout of $project tree" $LINENO
fi
;;
*)
error "branch $branch not yet supported"
;;
esac
;; ;;
js) js)
if [[ ! ( -d mozilla && \
-e mozilla/js && \
-e mozilla/js/src ) ]]; then
if ! eval cvs -z3 -q co $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS mozilla/js; then
error "during initial co $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS mozilla/js"
fi
fi
cd mozilla/js/src case $branch in
1.8.*|1.9.0)
if [[ ! ( -d mozilla && \
-e mozilla/js && \
-e mozilla/js/src ) ]]; then
if ! eval cvs -z3 -q co $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS mozilla/js; then
error "during initial co $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS mozilla/js"
fi
fi
if ! eval cvs -z3 -q update $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS -d -P 2>&1; then cd mozilla/js/src
error "during update $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS js/src" $LINENO
fi
if ! cvs -z3 -q update -d -P -A editline config 2>&1; then if ! eval cvs -z3 -q update $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS -d -P 2>&1; then
error "during checkout of js/src" $LINENO error "during update $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS js/src" $LINENO
fi fi
if ! cvs -z3 -q update -d -P -A editline config 2>&1; then
error "during checkout of js/src" $LINENO
fi
;;
1.9.1)
if [[ ! -e mozilla/client.py ]]; then
if ! hg clone $TEST_MOZILLA_HG_LOCAL $TREE/mozilla; then
error "during hg clone of $TEST_MOZILLA_HG_LOCAL" $LINENO
fi
fi
cd mozilla
hg pull -r $TEST_MOZILLA_HG_REV
# do not use mozilla-build on windows systems as we
# must use the cygwin python with the cygwin mercurial.
if ! python client.py checkout; then
error "during checkout of $project tree" $LINENO
fi
cd js/src
;;
*)
error "branch $branch not yet supported"
;;
esac
# end for js shell # end for js shell
;; ;;
*) *)

View File

@ -53,7 +53,7 @@ $SCRIPT -p product -b branch -x executablepath -D directory -N profilename
variable description variable description
=============== ============================================================ =============== ============================================================
-p product required. firefox|thunderbird -p product required. firefox|thunderbird
-b branch required. 1.8.0|1.8.1|1.9.0 -b branch required. 1.8.0|1.8.1|1.9.0|1.9.1
-x executablepath required. directory-tree containing executable 'product' -x executablepath required. directory-tree containing executable 'product'
-D directory required. directory where profile is to be created. -D directory required. directory where profile is to be created.
-N profilename required. profile name -N profilename required. profile name
@ -86,44 +86,31 @@ while getopts $options optname ;
done done
# include environment variables # include environment variables
if [[ -n "$datafiles" ]]; then loaddata $datafiles
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$product" || -z "$branch" || -z "$executablepath" || \ if [[ -z "$product" || -z "$branch" || -z "$executablepath" || \
-z "$directory" || -z "$profilename" ]]; then -z "$directory" || -z "$profilename" ]]; then
usage usage
fi fi
if [[ "$product" != "firefox" && "$product" != "thunderbird" ]]; then if [[ "$product" != "firefox" && "$product" != "thunderbird" && "$product" ]]; then
error "product \"$product\" must be one of firefox or thunderbird" $LINENO error "product \"$product\" must be one of firefox or thunderbird" $LINENO
fi fi
if [[ "$branch" != "1.8.0" && "$branch" != "1.8.1" && "$branch" != "1.9.0" ]]; if [[ "$branch" != "1.8.0" && "$branch" != "1.8.1" && "$branch" != "1.9.0" && "$branch" != "1.9.1" ]];
then then
error "branch \"$branch\" must be one of 1.8.0, 1.8.1, 1.9.0" $LINENO error "branch \"$branch\" must be one of 1.8.0, 1.8.1, 1.9.0 1.9.1" $LINENO
fi fi
executable=`get_executable $product $branch $executablepath` executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
error "get_executable $product $branch $executablepath returned empty path" $LINENO
fi
if [[ ! -x "$executable" ]]; then
error "executable \"$executable\" is not executable" $LINENO
fi
$TEST_DIR/bin/create-directory.sh -d "$directory" -n $TEST_DIR/bin/create-directory.sh -d "$directory" -n
if echo "$profilename" | egrep -qiv '[a-z0-9_]'; then if echo "$profilename" | egrep -qiv '[a-z0-9_]'; then
error "profile name \"$profilename\" must consist of letters, digits or _" $LINENO error "profile name \"$profilename\" must consist of letters, digits or _" $LINENO
fi fi
if [ $OSID == "win32" ]; then if [ $OSID == "nt" ]; then
directoryospath=`cygpath -a -w $directory` directoryospath=`cygpath -a -w $directory`
if [[ -z "$directoryospath" ]]; then if [[ -z "$directoryospath" ]]; then
error "unable to convert unix path to windows path" $LINENO error "unable to convert unix path to windows path" $LINENO
@ -134,7 +121,9 @@ fi
echo "creating profile $profilename in directory $directory" echo "creating profile $profilename in directory $directory"
if ! $TEST_DIR/bin/timed_run.py ${TEST_STARTUP_TIMEOUT} "-" $executable -CreateProfile "$profilename $directoryospath"; then if ! $TEST_DIR/bin/timed_run.py ${TEST_STARTUP_TIMEOUT} "-" \
$EXECUTABLE_DRIVER \
$executable -CreateProfile "$profilename $directoryospath"; then
error "creating profile $directory" $LINENO error "creating profile $directory" $LINENO
fi fi

View File

@ -88,12 +88,7 @@ while getopts $options optname ;
done done
# include environment variables # include environment variables
if [[ -n "$datafiles" ]]; then loaddata $datafiles
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z $url || -z $filepath ]] if [[ -z $url || -z $filepath ]]
then then

View File

@ -71,7 +71,7 @@ sub editTalkback
if ($ostype =~ /cygwin/i) if ($ostype =~ /cygwin/i)
{ {
$os = "win32"; $os = "nt";
} }
elsif ($ostype =~ /linux/i) elsif ($ostype =~ /linux/i)
{ {
@ -79,7 +79,7 @@ sub editTalkback
} }
elsif ($ostype =~ /darwin/) elsif ($ostype =~ /darwin/)
{ {
$os = "mac"; $os = "darwin";
} }
else else
{ {
@ -187,7 +187,7 @@ sub editTalkback
my $appdata; my $appdata;
if ($os eq "win32") if ($os eq "nt")
{ {
# get application data directory in windows format # get application data directory in windows format
$appdata = $ENV{APPDATA}; $appdata = $ENV{APPDATA};
@ -230,7 +230,7 @@ sub editTalkback
{ {
$talkbackdir="$home/.fullcircle"; $talkbackdir="$home/.fullcircle";
} }
elsif ($os eq "mac") elsif ($os eq "darwin")
{ {
$talkbackdir="$home/Library/Application\ Support/FullCircle"; $talkbackdir="$home/Library/Application\ Support/FullCircle";
} }
@ -250,7 +250,7 @@ sub editTalkback
my $talkbackinidir; my $talkbackinidir;
if ($os eq "win32") if ($os eq "nt")
{ {
$talkbackinidir="$talkbackdir/$vendorid/$productid/$platformid/$buildid/"; $talkbackinidir="$talkbackdir/$vendorid/$productid/$platformid/$buildid/";
@ -307,7 +307,7 @@ sub editTalkback
} }
} }
} }
elsif ($os eq "mac") elsif ($os eq "darwin")
{ {
$talkbackinidir="$talkbackdir/$vendorid$productid$platformid$buildid"; $talkbackinidir="$talkbackdir/$vendorid$productid$platformid$buildid";
if (! -e "$talkbackdir/$vendorid$productid$platformid$buildid" ) if (! -e "$talkbackdir/$vendorid$productid$platformid$buildid" )
@ -335,7 +335,7 @@ sub editTalkback
} }
#print "patching Talkback.ini\n"; #print "patching Talkback.ini\n";
if ($os eq "win32") if ($os eq "nt")
{ {
$rc = system(("sed", $rc = system(("sed",
"-ibak", "-ibak",
@ -359,7 +359,7 @@ sub editTalkback
die "unable to edit Talkback.ini: $!"; die "unable to edit Talkback.ini: $!";
} }
} }
elsif ($os eq "mac") elsif ($os eq "darwin")
{ {
$rc = system(("sed", $rc = system(("sed",
"-ibak", "-ibak",

View File

@ -52,7 +52,7 @@ $SCRIPT -p product -b branch -x executablepath -i talkbackid [-d datafiles]
variable description variable description
=============== ============================================================ =============== ============================================================
-p product required. firefox|thunderbird -p product required. firefox|thunderbird
-b branch required. 1.8.0|1.8.1|1.9.0 -b branch required. 1.8.0|1.8.1|1.9.0|1.9.1
-x executablepath required. directory-tree containing executable named -x executablepath required. directory-tree containing executable named
'product' 'product'
-i talkbackid required. identifier to add to talkback url -i talkbackid required. identifier to add to talkback url
@ -80,12 +80,7 @@ while getopts $options optname ;
done done
# include environment variables # include environment variables
if [[ -n "$datafiles" ]]; then loaddata $datafiles
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$product" || -z "$branch" || \ if [[ -z "$product" || -z "$branch" || \
-z "$executablepath" || -z "$talkbackid" ]]; then -z "$executablepath" || -z "$talkbackid" ]]; then
@ -94,14 +89,6 @@ fi
executable=`get_executable $product $branch $executablepath` executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
error "get_executable $product $branch $executablepath returned empty path" $LINENO
fi
if [[ ! -x "$executable" ]]; then
error "executable \"$executable\" is not executable" $LINENO
fi
executablepath=`dirname $executable` executablepath=`dirname $executable`
# escape & in talkback id to prevent replacements # escape & in talkback id to prevent replacements
@ -132,7 +119,7 @@ if [[ $talkback -eq 1 ]]; then
fi fi
case $OSID in case $OSID in
win32) nt)
vendorid=`dos2unix < master.ini | grep '^VendorID = "' | sed 's@VendorID = "\([^"]*\)"@\1@'` vendorid=`dos2unix < master.ini | grep '^VendorID = "' | sed 's@VendorID = "\([^"]*\)"@\1@'`
productid=`dos2unix < master.ini | grep '^ProductID = "' | sed 's@ProductID = "\([^"]*\)"@\1@'` productid=`dos2unix < master.ini | grep '^ProductID = "' | sed 's@ProductID = "\([^"]*\)"@\1@'`
platformid=`dos2unix < master.ini | grep '^PlatformID = "' | sed 's@PlatformID = "\([^"]*\)"@\1@'` platformid=`dos2unix < master.ini | grep '^PlatformID = "' | sed 's@PlatformID = "\([^"]*\)"@\1@'`
@ -147,7 +134,7 @@ if [[ $talkback -eq 1 ]]; then
buildid=`dos2unix < master.ini | grep '^BuildID = "' | sed 's@BuildID = "\([^"]*\)"@\1@'` buildid=`dos2unix < master.ini | grep '^BuildID = "' | sed 's@BuildID = "\([^"]*\)"@\1@'`
talkbackdir="$HOME/.fullcircle" talkbackdir="$HOME/.fullcircle"
;; ;;
mac) darwin)
# hack around Mac's use of spaces in directory names # hack around Mac's use of spaces in directory names
vendorid=`grep '^VendorID = "' master.ini | sed 's@VendorID = "\([^"]*\)"@\1@'` vendorid=`grep '^VendorID = "' master.ini | sed 's@VendorID = "\([^"]*\)"@\1@'`
productid=`grep '^ProductID = "' master.ini | sed 's@ProductID = "\([^"]*\)"@\1@'` productid=`grep '^ProductID = "' master.ini | sed 's@ProductID = "\([^"]*\)"@\1@'`
@ -168,10 +155,10 @@ if [[ $talkback -eq 1 ]]; then
mkdir -p "$talkbackdir" mkdir -p "$talkbackdir"
case $OSID in case $OSID in
win32) nt)
talkbackinidir="$talkbackdir/$vendorid/$productid/$platformid/$buildid" talkbackinidir="$talkbackdir/$vendorid/$productid/$platformid/$buildid"
;; ;;
linux | mac ) linux | darwin )
talkbackinidir="$talkbackdir/$vendorid$productid$platformid$buildid" talkbackinidir="$talkbackdir/$vendorid$productid$platformid$buildid"
;; ;;
esac esac
@ -185,13 +172,13 @@ if [[ $talkback -eq 1 ]]; then
cp ${TEST_DIR}/talkback/$OSID/Talkback.ini . cp ${TEST_DIR}/talkback/$OSID/Talkback.ini .
case "$OSID" in case "$OSID" in
win32) nt)
sed -i.bak "s@URLEdit .*@URLEdit = \"mozqa:$talkbackid\"@" Talkback.ini sed -i.bak "s@URLEdit .*@URLEdit = \"mozqa:$talkbackid\"@" Talkback.ini
;; ;;
linux ) linux)
sed -i.bak "s@URLEditControl .*@URLEditControl = \"mozqa:$talkbackid\"@" Talkback.ini sed -i.bak "s@URLEditControl .*@URLEditControl = \"mozqa:$talkbackid\"@" Talkback.ini
;; ;;
mac ) darwin)
sed -i.bak "s@URLEditControl .*@URLEditControl = \"mozqa:$talkbackid\"@" Talkback.ini sed -i.bak "s@URLEditControl .*@URLEditControl = \"mozqa:$talkbackid\"@" Talkback.ini
;; ;;
*) *)

View File

@ -52,7 +52,7 @@ $SCRIPT -p product -b branch -x executablepath -f filename [-d datafiles]
variable description variable description
=============== ============================================================ =============== ============================================================
-p product required. firefox|thunderbird -p product required. firefox|thunderbird
-b branch required. 1.8.0|1.8.1|1.9.0 -b branch required. 1.8.0|1.8.1|1.9.0|1.9.1
-x executablepath required. directory where to install build -x executablepath required. directory where to install build
-f filename required. path to filename where installer is stored -f filename required. path to filename where installer is stored
-d datafiles optional. one or more filenames of files containing -d datafiles optional. one or more filenames of files containing
@ -79,12 +79,7 @@ while getopts $options optname ;
done done
# include environment variables # include environment variables
if [[ -n "$datafiles" ]]; then loaddata $datafiles
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$product" || -z "$branch" || -z "$executablepath" || -z "$filename" ]] if [[ -z "$product" || -z "$branch" || -z "$executablepath" || -z "$filename" ]]
then then
@ -97,7 +92,7 @@ $TEST_DIR/bin/create-directory.sh -d "$executablepath" -n
filetype=`file $filename` filetype=`file $filename`
if [[ $OSID == "win32" ]]; then if [[ $OSID == "nt" ]]; then
if echo $filetype | grep -iq windows; then if echo $filetype | grep -iq windows; then
chmod u+x "$filename" chmod u+x "$filename"
@ -108,6 +103,8 @@ if [[ $OSID == "win32" ]]; then
fi fi
elif echo $filetype | grep -iq 'zip archive'; then elif echo $filetype | grep -iq 'zip archive'; then
unzip -o -d "$executablepath" "$filename" unzip -o -d "$executablepath" "$filename"
find $executablepath -name '*.exe' | xargs chmod u+x
find $executablepath -name '*.dll' | xargs chmod u+x
else else
error "$unknown file type $filetype" $LINENO error "$unknown file type $filetype" $LINENO
fi fi
@ -152,9 +149,7 @@ else
# forking new processes # forking new processes
# #
executable=`get_executable $product $branch $executablepath` executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
error "get_executable $product $branch $executablepath returned empty directory" $LINENO
fi
executabledir=`dirname $executable` executabledir=`dirname $executable`
# patch to use exec to prevent forked processes # patch to use exec to prevent forked processes

View File

@ -39,7 +39,7 @@
source $TEST_DIR/bin/library.sh source $TEST_DIR/bin/library.sh
echo "$SCRIPT $@" TEST_STARTUP_TRIES=${TEST_STARTUP_TRIES:-3}
# #
# options processing # options processing
@ -55,7 +55,7 @@ $SCRIPT -p product -b branch -x executablepath -N profilename -E extensions
variable description variable description
=============== ============================================================ =============== ============================================================
-p product required. firefox|thunderbird -p product required. firefox|thunderbird
-b branch required. 1.8.0|1.8.1|1.9.0 -b branch required. 1.8.0|1.8.1|1.9.0|1.9.1
-x executablepath required. directory-tree containing executable named -x executablepath required. directory-tree containing executable named
'product' 'product'
-N profilename required. profile name -N profilename required. profile name
@ -85,12 +85,7 @@ while getopts $options optname ;
done done
# include environment variables # include environment variables
if [[ -n "$datafiles" ]]; then loaddata $datafiles
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$product" || -z "$branch" || \ if [[ -z "$product" || -z "$branch" || \
-z "$executablepath" || -z "$profilename" || -z "$extensions" ]]; then -z "$executablepath" || -z "$profilename" || -z "$extensions" ]]; then
@ -101,21 +96,13 @@ if [[ "$product" != "firefox" && "$product" != "thunderbird" ]]; then
error "product \"$product\" must be one of firefox or thunderbird" $LINENO error "product \"$product\" must be one of firefox or thunderbird" $LINENO
fi fi
if [[ "$branch" != "1.8.0" && "$branch" != "1.8.1" && "$branch" != "1.9.0" ]]; if [[ "$branch" != "1.8.0" && "$branch" != "1.8.1" && "$branch" != "1.9.0" && "$branch" != "1.9.1" ]];
then then
error "branch \"$branch\" must be one of 1.8.0, 1.8.1, 1.9.0" $LINENO error "branch \"$branch\" must be one of 1.8.0, 1.8.1, 1.9.0 1.9.1" $LINENO
fi fi
executable=`get_executable $product $branch $executablepath` executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
error "get_executable $product $branch $executablepath returned empty path" $LINENO
fi
if [[ ! -x "$executable" ]]; then
error "executable \"$executable\" is not executable" $LINENO
fi
if echo $profilename | egrep -qiv '[a-z0-9_]'; then if echo $profilename | egrep -qiv '[a-z0-9_]'; then
error "profile name must consist of letters, digits or _" $LINENO error "profile name must consist of letters, digits or _" $LINENO
fi fi
@ -124,14 +111,23 @@ for extension in $extensions/all/*.xpi; do
if [[ $extension == "$extensions/all/*.xpi" ]]; then if [[ $extension == "$extensions/all/*.xpi" ]]; then
break break
fi fi
if [[ "$OSID" == "win32" ]]; then if [[ "$OSID" == "nt" ]]; then
extensionos=`cygpath -a -w $extension` extensionos=`cygpath -a -w $extension`
else else
extensionos="$extension" extensionos="$extension"
fi fi
echo installing $extension echo installing $extension
$TEST_DIR/bin/timed_run.py ${TEST_STARTUP_TIMEOUT} "-" $executable -P $profilename -install-global-extension "$extensionos" let tries=1
while ! $TEST_DIR/bin/timed_run.py ${TEST_STARTUP_TIMEOUT} "Install extension $extension: try $tries" \
$EXECUTABLE_DRIVER \
$executable -P $profilename -install-global-extension "$extensionos"; do
let tries=tries+1
if [[ "$tries" -gt $TEST_STARTUP_TRIES ]]; then
error "Failed to install extension $extension. Exiting..." $LINENO
fi
sleep 30
done
# there is no reliable method of determining if the install worked # there is no reliable method of determining if the install worked
# from the output or from the exit code. # from the output or from the exit code.
done done
@ -140,17 +136,22 @@ for extension in $extensions/$OSID/*; do
if [[ $extension == "$extensions/$OSID/*" ]]; then if [[ $extension == "$extensions/$OSID/*" ]]; then
break break
fi fi
if [[ "$OSID" == "win32" ]]; then if [[ "$OSID" == "nt" ]]; then
extensionos=`cygpath -a -w $extension` extensionos=`cygpath -a -w $extension`
else else
extensionos="$extension" extensionos="$extension"
fi fi
echo installing $extension echo installing $extension
if ! $TEST_DIR/bin/timed_run.py ${TEST_STARTUP_TIMEOUT} "-" $executable -P $profilename -install-global-extension "$extensionos"; then let tries=1
error "Failed to install $extensionos" $LINENO while ! $TEST_DIR/bin/timed_run.py ${TEST_STARTUP_TIMEOUT} "Install extension $extension: try $tries" \
fi $executable -P $profilename -install-global-extension "$extensionos"; do
let tries=tries+1
if [[ "$tries" -gt $TEST_STARTUP_TRIES ]]; then
error "Failed to install extension $extension. Exiting..." $LINENO
fi
sleep 30
done
done done
# restart twice to make extension manager happy # restart twice to make extension manager happy

View File

@ -52,7 +52,7 @@ $SCRIPT -p product -b branch -x executablepath -D directory [-d datafiles]
variable description variable description
=============== ============================================================ =============== ============================================================
-p product required. firefox|thunderbird -p product required. firefox|thunderbird
-b branch required. 1.8.0|1.8.1|1.9.0 -b branch required. 1.8.0|1.8.1|1.9.0|1.9.1
-x executablepath required. path to browser executable -x executablepath required. path to browser executable
-D directory required. path to location of plugins/components -D directory required. path to location of plugins/components
-d datafiles optional. one or more filenames of files containing -d datafiles optional. one or more filenames of files containing
@ -80,12 +80,7 @@ while getopts $options optname ;
done done
# include environment variables # include environment variables
if [[ -n "$datafiles" ]]; then loadata $datafiles
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$product" || -z "$branch" || \ if [[ -z "$product" || -z "$branch" || \
-z "$executablepath" || -z "$directory" ]]; then -z "$executablepath" || -z "$directory" ]]; then
@ -98,14 +93,6 @@ fi
executable=`get_executable $product $branch $executablepath` executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
error "get_executable $product $branch $executablepath returned empty path" $LINENO
fi
if [[ ! -x "$executable" ]]; then
error "executable \"$executable\" is not executable" $LINENO
fi
executablepath=`dirname $executable` executablepath=`dirname $executable`
# #

View File

@ -85,42 +85,27 @@ function _exit()
trap "_exit" EXIT trap "_exit" EXIT
# error message # error message
# output error message end exit 2 # output error message end exit 2
error() error()
{ {
local message=$1 local message=$1
local lineno=$2 local lineno=$2
debug "error: $0:$LINENO" debug "error: $0:$LINENO"
echo -e "FATAL ERROR in script $0:$lineno $message\n" 1>&2 echo -e "FATAL ERROR in script $0:$lineno $message\n" 1>&2
if [[ "$0" == "-bash" || "$0" == "bash" ]]; then if [[ "$0" == "-bash" || "$0" == "bash" ]]; then
return 0 return 0
fi fi
exit 2 exit 2
} }
if [[ -z "$LIBRARYSH" ]]; then if [[ -z "$LIBRARYSH" ]]; then
# skip remainder of script if it has already included # skip remainder of script if it has already included
LIBRARYSH=1
# set time format for pipeline timing reports
TIMEFORMAT="Elapsed time %0R seconds, User %0U seconds, System %0S seconds, CPU %P%%"
MALLOC_CHECK_=2
ulimit -c 0
# debug msg
#
# output debugging message to stdout if $DEBUG is set
DEBUG=${DEBUG:-""}
debug() debug()
{ {
if [[ -n "$DEBUG" ]]; then if [[ -n "$DEBUG" ]]; then
@ -137,6 +122,25 @@ if [[ -z "$LIBRARYSH" ]]; then
echo -e "$@" 1>&2 echo -e "$@" 1>&2
} }
# loaddata
#
# load data files into environment
loaddata()
{
local datafiles="$@"
local datafile
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
if [[ ! -e "$datafile" ]]; then
error "datafile $datafile does not exist"
fi
cat $datafile | sed 's|^|data: |'
if ! source $datafile; then
error "Unable to load data file $datafile"
fi
done
fi
}
# dumpenvironment # dumpenvironment
# #
@ -147,6 +151,33 @@ if [[ -z "$LIBRARYSH" ]]; then
set | grep '^[A-Z]' | sed 's|^|environment: |' set | grep '^[A-Z]' | sed 's|^|environment: |'
} }
dumphardware()
{
echo "uname -a:`uname -a`"
echo "uname -s:`uname -s`"
echo "uname -n:`uname -n`"
echo "uname -r:`uname -r`"
echo "uname -v:`uname -v`"
echo "uname -m:`uname -m`"
echo "uname -p:`uname -p`"
if [[ "$OSID" != "darwin" ]]; then
echo "uname -i:`uname -i`"
echo "uname -o:`uname -o`"
fi
ulimit -a | sed 's|^|ulimit:|'
if [[ -e /proc/cpuinfo ]]; then
cat /proc/cpuinfo | sed 's|^|cpuinfo:|'
fi
if [[ -e /proc/meminfo ]]; then
cat /proc/meminfo | sed 's|^|meminfo:|'
fi
if which system_profiler 2> /dev/null; then
system_profiler | sed 's|^|system_profiler:|'
fi
}
# dumpvars varname1, ... # dumpvars varname1, ...
# #
# dumps name=value pairs to stdout for each variable named # dumps name=value pairs to stdout for each variable named
@ -170,9 +201,9 @@ if [[ -z "$LIBRARYSH" ]]; then
get_executable() get_executable()
{ {
get_executable_product="$1" local get_executable_product="$1"
get_executable_branch="$2" local get_executable_branch="$2"
get_executable_directory="$3" local get_executable_directory="$3"
if [[ -z "$get_executable_product" || \ if [[ -z "$get_executable_product" || \
-z "$get_executable_branch" || \ -z "$get_executable_branch" || \
@ -184,22 +215,35 @@ if [[ -z "$LIBRARYSH" ]]; then
# should use /u+x,g+x,a+x but mac os x uses an obsolete find # should use /u+x,g+x,a+x but mac os x uses an obsolete find
# filter the output to remove extraneous file in dist/bin for # filter the output to remove extraneous file in dist/bin for
# cvs builds on mac os x. # cvs builds on mac os x.
get_executable_name="$get_executable_product${EXE_EXT}" local executable=`(
case "$OSID" in get_executable_name="$get_executable_product${EXE_EXT}"
mac) case "$OSID" in
get_executable_filter="Contents/MacOS/$get_executable_product" darwin)
if [[ "$get_executable_product" == "thunderbird" ]]; then get_executable_filter="Contents/MacOS/$get_executable_product"
get_executable_name="$get_executable_product-bin" if [[ "$get_executable_product" == "thunderbird" ]]; then
fi get_executable_name="$get_executable_product-bin"
;; fi
*) ;;
get_executable_filter="$get_executable_product" *)
esac get_executable_filter="$get_executable_product"
if find "$get_executable_directory" -perm +111 -type f \ ;;
-name "$get_executable_name" | \ esac
grep "$get_executable_filter"; then if find "$get_executable_directory" -perm +111 -type f \
true -name "$get_executable_name" | \
grep "$get_executable_filter"; then
true
fi
)`
if [[ -z "$executable" ]]; then
error "get_executable $product $branch $executablepath returned empty path" $LINENO
fi fi
if [[ ! -x "$executable" ]]; then
error "executable \"$executable\" is not executable" $LINENO
fi
echo $executable
fi fi
} }
@ -216,48 +260,26 @@ if [[ -z "$LIBRARYSH" ]]; then
echo $script echo $script
} }
SCRIPT=`get_scriptname $0` LIBRARYSH=1
if [[ -z "$TEST_DIR" ]]; then MALLOC_CHECK_=2
# get the "bin" directory
TEST_DIR=`dirname $0`
# get the "bin" directory parent
TEST_DIR=`dirname $TEST_DIR`
if [[ ! -e "${TEST_DIR}/bin/library.sh" ]]; then
error "BAD TEST_DIR $TEST_DIR"
fi
fi
TEST_HTTP=${TEST_HTTP:-test.mozilla.com}
TEST_STARTUP_TIMEOUT=${TEST_STARTUP_TIMEOUT:-30}
TEST_MACHINE=`uname -n` ulimit -c 0
TEST_KERNEL=`uname -r`
TEST_PROCESSORTYPE=`uname -p`
# set path to make life easier # set path to make life easier
if ! echo ${PATH} | grep -q $TEST_DIR/bin; then if ! echo ${PATH} | grep -q $TEST_DIR/bin; then
PATH=$TEST_DIR/bin:$PATH PATH=$TEST_DIR/bin:$PATH
fi fi
if echo $OSTYPE | grep -iq cygwin; then
OSID=win32
EXE_EXT=".exe"
elif echo $OSTYPE | grep -iq Linux; then
OSID=linux
EXE_EXT=
elif echo $OSTYPE | grep -iq darwin; then
OSID=mac
EXE_EXT=
else
error "Unknown OS $OSTYPE"
fi
# force en_US locale # force en_US locale
if ! echo "$LANG" | grep -q en_US; then if ! echo "$LANG" | grep -q en_US; then
LANG=en_US LANG=en_US
LC_TIME=en_US LC_TIME=en_US
fi fi
# handle sorting non-ascii logs on mac os x 10.5.3
LC_ALL=C
TEST_TIMEZONE=`date +%z` TEST_TIMEZONE=`date +%z`
# save starting directory # save starting directory
@ -278,17 +300,109 @@ if [[ -z "$LIBRARYSH" ]]; then
# ah crap handler timeout # ah crap handler timeout
MOZ_GDB_SLEEP=${MOZ_GDB_SLEEP:-10} MOZ_GDB_SLEEP=${MOZ_GDB_SLEEP:-10}
# no dialogs on asserts
XPCOM_DEBUG_BREAK=${XPCOM_DEBUG_BREAK:-warn}
# no airbag # no airbag
unset MOZ_AIRBAG unset MOZ_AIRBAG
MOZ_CRASHREPORTER_DISABLE=${MOZ_CRASHREPORTER_DISABLE:-1} #MOZ_CRASHREPORTER_DISABLE=${MOZ_CRASHREPORTER_DISABLE:-1}
MOZ_CRASHREPORTER_NO_REPORT=${MOZ_CRASHREPORTER_NO_REPORT:-1} MOZ_CRASHREPORTER_NO_REPORT=${MOZ_CRASHREPORTER_NO_REPORT:-1}
#leak gauge #leak gauge
#NSPR_LOG_MODULES=DOMLeak:5,DocumentLeak:5,nsDocShellLeak:5 #NSPR_LOG_MODULES=DOMLeak:5,DocumentLeak:5,nsDocShellLeak:5
TEST_CPUSPEED="`mips.pl`"
TEST_MEMORY="`memory.pl`"
# debug msg
#
# output debugging message to stdout if $DEBUG is set
DEBUG=${DEBUG:-""}
SCRIPT=`get_scriptname $0`
if [[ -z "$TEST_DIR" ]]; then
# get the "bin" directory
TEST_DIR=`dirname $0`
# get the "bin" directory parent
TEST_DIR=`dirname $TEST_DIR`
if [[ ! -e "${TEST_DIR}/bin/library.sh" ]]; then
error "BAD TEST_DIR $TEST_DIR"
fi
fi
TEST_HTTP=${TEST_HTTP:-test.mozilla.com}
TEST_STARTUP_TIMEOUT=${TEST_STARTUP_TIMEOUT:-30}
TEST_MACHINE=`uname -n`
kernel_name=`uname -s`
if [[ $kernel_name == 'Linux' ]]; then
OSID=linux
EXE_EXT=
TEST_KERNEL=`uname -r | sed 's|\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)[-.0-9]*\.\([a-zA-Z0-9]*\)|\1.\2.\3|'`
TEST_PROCESSORTYPE=`cat /proc/cpuinfo | grep vendor | uniq | sed 's|vendor.* : \(.*\)|\1|'`
TIMECOMMAND='/usr/bin/time -f "Elapsed time %e seconds, User %U seconds, System %S seconds, CPU %P, Memory: %M"'
if echo $TEST_PROCESSORTYPE | grep -q 'Intel'; then
TEST_PROCESSORTYPE=intel
elif echo $TEST_PROCESSORTYPE | grep -q 'AMD'; then
TEST_PROCESSORTYPE=amd
fi
if uname -p | grep -q '64$'; then
TEST_PROCESSORTYPE=${TEST_PROCESSORTYPE}64
else
TEST_PROCESSORTYPE=${TEST_PROCESSORTYPE}32
fi
elif [[ $kernel_name == 'Darwin' ]]; then
OSID=darwin
EXE_EXT=
TEST_KERNEL=`uname -r`
TEST_PROCESSORTYPE=`uname -p`
TIMEFORMAT="Elapsed time %E seconds, User %U seconds, System %S seconds, CPU %P%"
TIMECOMMAND=time
if [[ $TEST_PROCESSORTYPE == "i386" ]]; then
TEST_PROCESSORTYPE=intel
fi
# assume 32bit for now...
TEST_PROCESSORTYPE=${TEST_PROCESSORTYPE}32
elif echo $kernel_name | grep -q CYGWIN; then
OSID=nt
EXE_EXT=".exe"
TEST_KERNEL=`echo $kernel_name | sed 's|[^.0-9]*\([.0-9]*\).*|\1|'`
TEST_PROCESSORTYPE=`cat /proc/cpuinfo | grep vendor | uniq | sed 's|vendor.* : \(.*\)|\1|'`
TIMECOMMAND='/usr/bin/time -f "Elapsed time %e seconds, User %U seconds, System %S seconds, CPU %P, Memory: %M"'
if echo $TEST_PROCESSORTYPE | grep -q 'Intel'; then
TEST_PROCESSORTYPE=intel
elif echo $TEST_PROCESSORTYPE | grep -q 'AMD'; then
TEST_PROCESSORTYPE=amd
fi
if uname -p | grep -q '64$'; then
TEST_PROCESSORTYPE=${TEST_PROCESSORTYPE}64
else
TEST_PROCESSORTYPE=${TEST_PROCESSORTYPE}32
fi
else
error "Unknown OS $kernel_name" $LINENO
fi
case $TEST_PROCESSORTYPE in
*32)
if [[ $TEST_MEMORY -gt 4 ]]; then
TEST_MEMORY=4
fi
;;
esac
# no dialogs on asserts
XPCOM_DEBUG_BREAK=${XPCOM_DEBUG_BREAK:-warn}
if [[ -z "$BUILDDIR" ]]; then if [[ -z "$BUILDDIR" ]]; then
case `uname -s` in case `uname -s` in
MINGW*) MINGW*)

View File

@ -0,0 +1,180 @@
#!/usr/bin/perl -w
# -*- Mode: Perl; tab-width: 4; indent-tabs-mode: nil; -*-
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is Mozilla Automated Testing Code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2008
# the Initial Developer. All Rights Reserved.
#
# Contributor(s): Bob Clary <bob@bclary.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
my $K = 1024;
my $M = 1024 * $K;
my $G = 1024 * $M;
my $tmpmemory;
my $unitmemory;
my $raw_memory = 0;
my $swap_memory = 0;
my $ulimit_maxmemory = 0;
my $ulimit_virtualmemory = 0;
my $test_memory = 0;
# hack around lack of available environment entries in both
# cygwin perl and redhat perl
open OSTYPE, "set | grep OSTYPE |" || die "Unable to open OSTYPE: $!";
while (<OSTYPE>)
{
chomp;
$ostype .= $_;
}
close OSTYPE;
die "Unable to determine OSTYPE" if (!$ostype);
if ($ostype =~ /linux/i || $ostype =~ /cygwin/i)
{
open MEMINFO, "/proc/meminfo" or die "Unable to open /proc/meminfo";
while (<MEMINFO>)
{
if ( ($tmpmemory, $unitmemory) = $_ =~ /MemTotal:\s*([0-9]*) (kB)/)
{
die "Unknown memory unit meminfo MemTotal $unitmemory" if $unitmemory ne "kB";
$tmpmemory *= 1024;
$raw_memory = int($tmpmemory / $G + .5);
}
elsif ( ($tmpmemory, $unitmemory) = $_ =~ /SwapTotal:\s*([0-9]*) (kB)/)
{
die "Unknown memory unit meminfo SwapTotal $unitmemory" if $unitmemory ne "kB";
$tmpmemory *= 1024;
$swap_memory = int($tmpmemory / $G + .5);
}
}
close MEMINFO;
}
elsif ($ostype =~ /darwin/i)
{
open SYSTEMPROFILER, "system_profiler|" or die "Unable to open system_profiler";
while (<SYSTEMPROFILER>)
{
if ( ($tmpmemory, $unitmemory) = $_ =~ /\s*Memory:\s*([0-9]*) ([a-zA-Z]*)/)
{
if ($unitmemory =~ /KB/)
{
$tmpmemory *= $K;
}
elsif ($unitmemory =~ /MB/)
{
$tmpmemory *= $M;
}
elsif ($unitmemory =~ /GB/)
{
$tmpmemory *= $G;
}
else
{
die "Unknown memory unit system_profiler $unitmemory";
}
$raw_memory = int($tmpmemory / $G + .5);
}
}
close SYSTEMPROFILER;
}
else
{
die "Unknown Operating System: $ostype";
}
open ULIMIT, 'bash -c "ulimit -a"|' or die "Unable to open ulimit -a";
while (<ULIMIT>)
{
if ( ($unitmemory, $tmpmemory) = $_ =~ /max memory size + \(([a-zA-Z]*), \-m\) ([0-9]*)/)
{
if ($tmpmemory eq "")
{
$tmpmemory = 0;
}
if ($unitmemory =~ /kbytes/i)
{
$tmpmemory *= $K;
}
elsif ($unitmemory =~ /mbytes/i)
{
$tmpmemory *= $M;
}
elsif ($unitmemory =~ /gbytes/i)
{
$tmpmemory *= $G;
}
else
{
die "Unknown memory unit ulimit $unitmemory";
}
$ulimit_maxmemory = int($tmpmemory / $G + .5);
}
elsif ( ($unitmemory, $tmpmemory) = $_ =~ /virtual memory + \(([a-zA-Z]*), \-v\) ([0-9]*)/)
{
if ($tmpmemory eq "")
{
$tmpmemory = 0;
}
if ($unitmemory =~ /kbytes/i)
{
$tmpmemory *= $K;
}
elsif ($unitmemory =~ /mbytes/i)
{
$tmpmemory *= $M;
}
elsif ($unitmemory =~ /gbytes/i)
{
$tmpmemory *= $G;
}
else
{
die "Unknown virtual memory unit ulimit $unitmemory";
}
$ulimit_virtualmemory = int($tmpmemory / $G + .5);
}
}
close ULIMIT;
$test_memory = $ulimit_virtualmemory > 0 ? $ulimit_virtualmemory : ($raw_memory + $swap_memory);
print "$test_memory";

View File

@ -0,0 +1,72 @@
#!/usr/bin/perl -w
# -*- Mode: Perl; tab-width: 4; indent-tabs-mode: nil; -*-
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is Mozilla Automated Testing Code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2008
# the Initial Developer. All Rights Reserved.
#
# Contributor(s): Bob Clary <bob@bclary.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
# Calculate a relative speed measurement based on
# iterating over a simple loop in perl. Print the
# result as millions of iterations per cpu second.
sub mips
{
my $tries = 3; # repeat count to get average
my $m = 1000000; # scale to million iterations/second
my $l = 10000000; # number of iterations to time
my $cpu = 0; # cpu time accumlator
my $dummy = 0; # dummy variable to prevent optimizations
my $i;
my $start;
my $stop;
my $a;
for ($a = 0; $a < $tries; ++$a)
{
$start = (times)[0];
for ($i = 0; $i < $l; ++$i)
{
$dummy += $i;
}
$stop = (times)[0];
$cpu += $stop - $start;
}
$cpu /= $tries;
print "" . int($l/($cpu*$m)) . "\n";
return $dummy; # reuse dummy variable
}
mips;

View File

@ -37,12 +37,16 @@
# #
# ***** END LICENSE BLOCK ***** # ***** END LICENSE BLOCK *****
if [[ -z "$LIBRARYSH" ]]; then
source $TEST_DIR/bin/library.sh
fi
export MOZ_CVS_FLAGS="-z3 -q" export MOZ_CVS_FLAGS="-z3 -q"
export MOZILLA_OFFICIAL=1 export MOZILLA_OFFICIAL=1
export BUILD_OFFICIAL=1 export BUILD_OFFICIAL=1
if [[ -z "$CVSROOT" ]]; then if [[ -z "$CVSROOT" ]]; then
if grep -q mozqa@qm-mini-ubuntu01 ~/.ssh/id_dsa.pub; then if grep -q buildbot@qm ~/.ssh/id_dsa.pub; then
export CVSROOT=:ext:unittest@cvs.mozilla.org:/cvsroot export CVSROOT=:ext:unittest@cvs.mozilla.org:/cvsroot
else else
export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
@ -60,7 +64,7 @@ usage()
usage: set-build-env.sh -p product -b branch -T buildtype [-e extra] usage: set-build-env.sh -p product -b branch -T buildtype [-e extra]
-p product [firefox|thunderbird] -p product [firefox|thunderbird]
-b branch [1.8.0|1.8.1|1.9.0] -b branch [1.8.0|1.8.1|1.9.0|1.9.1]
-T buildtype [opt|debug] -T buildtype [opt|debug]
-e extra extra qualifier to pick mozconfig and tree -e extra extra qualifier to pick mozconfig and tree
@ -91,10 +95,14 @@ for step in step1; do # dummy loop for handling exits
p) product=$OPTARG;; p) product=$OPTARG;;
b) branch=$OPTARG;; b) branch=$OPTARG;;
T) buildtype=$OPTARG;; T) buildtype=$OPTARG;;
e) extra=$OPTARG;; e) extra="-$OPTARG";;
esac esac
done done
# include environment variables
datafiles=$TEST_DIR/data/$product,$branch$extra,$buildtype.data
loaddata $datafiles
# echo product=$product, branch=$branch, buildtype=$buildtype, extra=$extra # echo product=$product, branch=$branch, buildtype=$buildtype, extra=$extra
if [[ -z "$product" || -z "$branch" || -z "$buildtype" ]]; then if [[ -z "$product" || -z "$branch" || -z "$buildtype" ]]; then
@ -113,11 +121,14 @@ for step in step1; do # dummy loop for handling exits
fi fi
if [[ $branch == "1.8.0" ]]; then if [[ $branch == "1.8.0" ]]; then
export BRANCH_CO_FLAGS="-r MOZILLA_1_8_0_BRANCH" export BRANCH_CO_FLAGS=${BRANCH_CO_FLAGS:--r MOZILLA_1_8_0_BRANCH}
elif [[ $branch == "1.8.1" ]]; then elif [[ $branch == "1.8.1" ]]; then
export BRANCH_CO_FLAGS="-r MOZILLA_1_8_BRANCH" export BRANCH_CO_FLAGS=${BRANCH_CO_FLAGS:--r MOZILLA_1_8_BRANCH}
elif [[ $branch == "1.9.0" ]]; then elif [[ $branch == "1.9.0" ]]; then
export BRANCH_CO_FLAGS=""; export BRANCH_CO_FLAGS="";
elif [[ $branch == "1.9.1" ]]; then
# XXX: mozilla-central
export BRANCH_CO_FLAGS="";
else else
echo "Unknown branch: $branch" echo "Unknown branch: $branch"
myexit 1 myexit 1
@ -127,8 +138,8 @@ for step in step1; do # dummy loop for handling exits
export DATE_CO_FLAGS="-D \"$MOZ_CO_DATE\"" export DATE_CO_FLAGS="-D \"$MOZ_CO_DATE\""
fi fi
case `uname -s` in case $OSID in
CYGWIN*) nt)
# On Windows, Sisyphus is run under Cygwin, so the OS will be CYGWIN # On Windows, Sisyphus is run under Cygwin, so the OS will be CYGWIN
# regardless. Check if mozilla-build has been installed to the default # regardless. Check if mozilla-build has been installed to the default
@ -147,10 +158,8 @@ for step in step1; do # dummy loop for handling exits
# directory to the home directory prior to executing the command. # directory to the home directory prior to executing the command.
if [[ -e "/c/mozilla-build" ]]; then if [[ -e "/c/mozilla-build" ]]; then
OSID=win32
export BUILDDIR=${BUILDDIR:-/c/work/mozilla/builds} export BUILDDIR=${BUILDDIR:-/c/work/mozilla/builds}
export buildbash="/c/mozilla-build/msys/bin/bash" export buildbash="/c/mozilla-build/msys/bin/bash"
export platform=i686
export bashlogin=--login # this is for msys' bash. export bashlogin=--login # this is for msys' bash.
if echo $branch | egrep -q '^1\.8'; then if echo $branch | egrep -q '^1\.8'; then
@ -163,10 +172,8 @@ for step in step1; do # dummy loop for handling exits
echo moztools Location: $MOZ_TOOLS echo moztools Location: $MOZ_TOOLS
else else
OSID=win32
export BUILDDIR=${BUILDDIR:-/work/mozilla/builds} export BUILDDIR=${BUILDDIR:-/work/mozilla/builds}
export buildbash="/bin/bash" export buildbash="/bin/bash"
export platform=i686
export bashlogin=-l export bashlogin=-l
if echo $branch | egrep -q '^1\.8'; then if echo $branch | egrep -q '^1\.8'; then
@ -188,29 +195,24 @@ for step in step1; do # dummy loop for handling exits
BUILDDIR=`cygpath -u $BUILDDIR_WIN` BUILDDIR=`cygpath -u $BUILDDIR_WIN`
;; ;;
Linux) linux)
OSID=linux
export BUILDDIR=${BUILDDIR:-/work/mozilla/builds} export BUILDDIR=${BUILDDIR:-/work/mozilla/builds}
export buildbash="/bin/bash" export buildbash="/bin/bash"
export platform=`uname -p`
export bashlogin=-l export bashlogin=-l
# if a 64 bit linux system, assume the # if a 64 bit linux system, assume the
# compiler is in the standard reference # compiler is in the standard reference
# location /tools/gcc/bin/ # location /tools/gcc/bin/
case "$platform" in case "$TEST_PROCESSORTYPE" in
x86_64) *64)
export PATH=/tools/gcc/bin:$PATH export PATH=/tools/gcc/bin:$PATH
;; ;;
esac esac
;; ;;
Darwin) darwin)
OSID=mac
export BUILDDIR=${BUILDDIR:-/work/mozilla/builds} export BUILDDIR=${BUILDDIR:-/work/mozilla/builds}
export buildbash="/bin/bash" export buildbash="/bin/bash"
export platform=`uname -p`
export bashlogin=-l export bashlogin=-l
;; ;;
*) *)
@ -221,10 +223,14 @@ for step in step1; do # dummy loop for handling exits
export CONFIG_SHELL=$buildbash export CONFIG_SHELL=$buildbash
export CONFIGURE_ENV_ARGS=$buildbash export CONFIGURE_ENV_ARGS=$buildbash
export TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/mozilla-central/}
export TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
if [[ -z $extra ]]; then if [[ -z $extra ]]; then
export TREE="$BUILDDIR/$branch" export TREE="$BUILDDIR/$branch"
else else
export TREE="$BUILDDIR/$branch-$extra" export TREE="$BUILDDIR/$branch$extra"
# #
# extras can't be placed in mozconfigs since not all parts # extras can't be placed in mozconfigs since not all parts
@ -234,15 +240,15 @@ for step in step1; do # dummy loop for handling exits
# #
case "$extra" in case "$extra" in
too-much-gc) -too-much-gc)
export XCFLAGS="-DWAY_TOO_MUCH_GC=1" export XCFLAGS="-DWAY_TOO_MUCH_GC=1"
export CFLAGS="-DWAY_TOO_MUCH_GC=1" export CFLAGS="-DWAY_TOO_MUCH_GC=1"
export CXXFLAGS="-DWAY_TOO_MUCH_GC=1" export CXXFLAGS="-DWAY_TOO_MUCH_GC=1"
;; ;;
gcov) -gcov)
if [[ "$OSID" == "win32" ]]; then if [[ "$OSID" == "nt" ]]; then
echo "win32 does not support gcov" echo "NT does not support gcov"
myexit 1 myexit 1
fi fi
export CFLAGS="--coverage" export CFLAGS="--coverage"
@ -252,7 +258,7 @@ for step in step1; do # dummy loop for handling exits
export LDFLAGS="--coverage" export LDFLAGS="--coverage"
export XLDOPTS="--coverage" export XLDOPTS="--coverage"
;; ;;
jprof) -jprof)
;; ;;
esac esac
fi fi
@ -266,14 +272,14 @@ for step in step1; do # dummy loop for handling exits
# and is used to find mozilla/(browser|mail)/config/mozconfig # and is used to find mozilla/(browser|mail)/config/mozconfig
if [[ $product == "firefox" ]]; then if [[ $product == "firefox" ]]; then
project=browser project=browser
export MOZCONFIG="$TREE/mozconfig-firefox-$OSID-$platform-$buildtype" export MOZCONFIG="$TREE/mozconfig-firefox-$OSID-$TEST_PROCESSORTYPE-$buildtype"
elif [[ $product == "thunderbird" ]]; then elif [[ $product == "thunderbird" ]]; then
project=mail project=mail
export MOZCONFIG="$TREE/mozconfig-thunderbird-$OSID-$platform-$buildtype" export MOZCONFIG="$TREE/mozconfig-thunderbird-$OSID-$TEST_PROCESSORTYPE-$buildtype"
else else
echo "Assuming project=browser for product: $product" echo "Assuming project=browser for product: $product"
project=browser project=browser
export MOZCONFIG="$TREE/mozconfig-firefox-$OSID-$platform-$buildtype" export MOZCONFIG="$TREE/mozconfig-firefox-$OSID-$TEST_PROCESSORTYPE-$buildtype"
fi fi
# js shell builds # js shell builds
@ -284,7 +290,7 @@ for step in step1; do # dummy loop for handling exits
fi fi
case "$OSID" in case "$OSID" in
mac) darwin)
export JS_EDITLINE=1 # required for mac export JS_EDITLINE=1 # required for mac
;; ;;
esac esac

View File

@ -59,7 +59,7 @@ $SCRIPT -p product -b branch
variable description variable description
=============== =========================================================== =============== ===========================================================
-p product required. one of firefox thunderbird -p product required. one of firefox thunderbird
-b branch required. one of 1.8.0 1.8.1 1.9.0 -b branch required. one of 1.8.0 1.8.1 1.9.0 1.9.1
-u url optional. url where to download build -u url optional. url where to download build
-f filepath optional. location to save downloaded build or to find -f filepath optional. location to save downloaded build or to find
previously downloaded build. If not specified, the previously downloaded build. If not specified, the
@ -129,12 +129,7 @@ while getopts $options optname ;
done done
# include environment variables # include environment variables
if [[ -n "$datafiles" ]]; then loaddata $datafiles
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
TEST_PRODUCT=$product TEST_PRODUCT=$product
TEST_BRANCH=$branch TEST_BRANCH=$branch
@ -148,6 +143,7 @@ TEST_EXTENSIONDIR=$extensiondir
TEST_DATAFILES=$datafiles TEST_DATAFILES=$datafiles
dumpenvironment dumpenvironment
dumphardware
if [[ -z "$product" || -z "$branch" ]]; then if [[ -z "$product" || -z "$branch" ]]; then
echo "product and branch are required" echo "product and branch are required"

View File

@ -112,4 +112,27 @@ for data in $datalist; do
$testscript $testargs -d $TEST_DIR/data/$data.data >> $TEST_LOG 2>&1 $testscript $testargs -d $TEST_DIR/data/$data.data >> $TEST_LOG 2>&1
fi fi
if [[ "$XPCOM_DEBUG_BREAK" == "stack" ]]; then
case $OSID in
nt)
;;
linux)
if which fix-linux-stack.pl > /dev/null; then
fix-linux-stack.pl < $TEST_LOG > $TEST_LOG.tmp
mv $TEST_LOG.tmp $TEST_LOG
else
error "XPCOM_DEBUG_BREAK=stack specified but fix-linux-stack.pl is not available"
fi
;;
darwin)
if which fix-macosx-stack.pl > /dev/null; then
fix-macosx-stack.pl < $TEST_LOG > $TEST_LOG.tmp
mv $TEST_LOG.tmp $TEST_LOG
else
error "XPCOM_DEBUG_BREAK=stack specified but fix-macosx-stack.pl is not available"
fi
;;
esac
fi
done done

View File

@ -20,6 +20,7 @@
# the Initial Developer. All Rights Reserved. # the Initial Developer. All Rights Reserved.
# #
# Contributor(s): Chris Cooper # Contributor(s): Chris Cooper
# Jesse Ruderman
# #
# Alternatively, the contents of this file may be used under the terms of # Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or # either the GNU General Public License Version 2 or later (the "GPL"), or
@ -55,14 +56,23 @@ if prefix == "-":
else: else:
prefix = prefix + ':' prefix = prefix + ':'
def getSignalName(num):
for p in dir(signal):
if p.startswith("SIG") and not p.startswith("SIG_"):
if getattr(signal, p) == num:
return p
return "UNKNOWN"
def alarm_handler(signum, frame): def alarm_handler(signum, frame):
global pid global pid
global prefix global prefix
try: try:
print "%s EXIT STATUS: TIMED OUT (%s seconds)" % (prefix, sys.argv[1]) stoptime = time.time()
elapsedtime = stoptime - starttime
print "\n%s EXIT STATUS: TIMED OUT (%s seconds)\n" % (prefix, elapsedtime)
flushkill(pid, signal.SIGKILL) flushkill(pid, signal.SIGKILL)
except OSError, e: except OSError, e:
print "timed_run.py: exception trying to kill process: %d (%s)" % (e.errno, e.strerror) print "\ntimed_run.py: exception trying to kill process: %d (%s)\n" % (e.errno, e.strerror)
pass pass
flushexit(exitTimeout) flushexit(exitTimeout)
@ -79,7 +89,7 @@ def forkexec(command, args):
else: # Parent else: # Parent
return pid return pid
except OSError, e: except OSError, e:
print "%s ERROR: %s %s failed: %d (%s) (%f seconds)" % (prefix, command, args, e.errno, e.strerror, elapsedtime) print "\n%s ERROR: %s %s failed: %d (%s) (%f seconds)\n" % (prefix, command, args, e.errno, e.strerror, elapsedtime)
flushexit(exitOSError) flushexit(exitOSError)
def flushbuffers(): def flushbuffers():
@ -106,24 +116,30 @@ try:
# it appears that linux at least will on "occasion" return a status # it appears that linux at least will on "occasion" return a status
# when the process was terminated by a signal, so test signal first. # when the process was terminated by a signal, so test signal first.
if os.WIFSIGNALED(status): if os.WIFSIGNALED(status):
print "%s EXIT STATUS: CRASHED signal %d (%f seconds)" % (prefix, os.WTERMSIG(status), elapsedtime) signum = os.WTERMSIG(status)
flushexit(exitSignal) if signum == 2:
msg = 'INTERRUPT'
rc = exitInterrupt
else:
msg = 'CRASHED'
rc = exitSignal
print "\n%s EXIT STATUS: %s signal %d %s (%f seconds)\n" % (prefix, msg, signum, getSignalName(signum), elapsedtime)
flushexit(rc)
elif os.WIFEXITED(status): elif os.WIFEXITED(status):
rc = os.WEXITSTATUS(status) rc = os.WEXITSTATUS(status)
msg = '' msg = ''
if rc == 0: if rc == 0:
msg = 'NORMAL' msg = 'NORMAL'
elif rc < 3: else:
msg = 'ABNORMAL ' + str(rc) msg = 'ABNORMAL ' + str(rc)
rc = exitSignal rc = exitSignal
else:
msg = 'CRASHED ' + str(rc)
rc = exitSignal
print "%s EXIT STATUS: %s (%f seconds)" % (prefix, msg, elapsedtime) print "\n%s EXIT STATUS: %s (%f seconds)\n" % (prefix, msg, elapsedtime)
flushexit(rc) flushexit(rc)
else: else:
print "%s EXIT STATUS: NONE (%f seconds)" % (prefix, elapsedtime) print "\n%s EXIT STATUS: NONE (%f seconds)\n" % (prefix, elapsedtime)
flushexit(0) flushexit(0)
except KeyboardInterrupt: except KeyboardInterrupt:
flushkill(pid, 9) flushkill(pid, 9)

View File

@ -52,7 +52,7 @@ $SCRIPT -p product -b branch -x executablepath [-d datafiles]
variable description variable description
=============== ============================================================ =============== ============================================================
-p product required. firefox|thunderbird -p product required. firefox|thunderbird
-b branch required. 1.8.0|1.8.1|1.9.0 -b branch required. 1.8.0|1.8.1|1.9.0|1.9.1
-x executablepath required. directory where build is installed -x executablepath required. directory where build is installed
-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. environment variable definitions to be included.
@ -80,12 +80,7 @@ while getopts $options optname ;
done done
# include environment variables # include environment variables
if [[ -n "$datafiles" ]]; then loaddata $datafiles
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$product" || -z "$branch" || -z "$executablepath" ]] if [[ -z "$product" || -z "$branch" || -z "$executablepath" ]]
then then
@ -99,13 +94,9 @@ fi
executable=`get_executable $product $branch $executablepath` executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
exit 0
fi
executabledir=`dirname $executable` executabledir=`dirname $executable`
if [[ $OSID == "win32" ]]; then if [[ $OSID == "nt" ]]; then
# see http://nsis.sourceforge.net/Docs/Chapter3.html # see http://nsis.sourceforge.net/Docs/Chapter3.html
# if the directory already exists, attempt to uninstall # if the directory already exists, attempt to uninstall
@ -113,7 +104,7 @@ if [[ $OSID == "win32" ]]; then
if [[ -d "$executabledir/uninstall" ]]; then if [[ -d "$executabledir/uninstall" ]]; then
if [[ $branch == "1.8.0" ]]; then if [[ "$branch" == "1.8.0" ]]; then
uninstallexe="$executabledir/uninstall/uninstall.exe" uninstallexe="$executabledir/uninstall/uninstall.exe"
uninstallini="$executabledir/uninstall/uninstall.ini" uninstallini="$executabledir/uninstall/uninstall.ini"
if [[ -n "$uninstallexe" && -e "$uninstallexe" ]]; then if [[ -n "$uninstallexe" && -e "$uninstallexe" ]]; then
@ -126,7 +117,7 @@ if [[ $OSID == "win32" ]]; then
fi fi
fi fi
fi fi
elif [[ $branch == "1.8.1" || $branch == "1.9.0" ]]; then elif [[ "$branch" == "1.8.1" || "$branch" == "1.9.0" || "$branch" == "1.9.1" ]]; then
uninstalloldexe="$executabledir/uninstall/uninst.exe" uninstalloldexe="$executabledir/uninstall/uninst.exe"
uninstallnewexe="$executabledir/uninstall/helper.exe" uninstallnewexe="$executabledir/uninstall/helper.exe"
if [[ -n "$uninstallnewexe" && -e "$uninstallnewexe" ]]; then if [[ -n "$uninstallnewexe" && -e "$uninstallnewexe" ]]; then

View File

@ -50,9 +50,39 @@ function userOnBeforePage()
function userOnAfterPage() function userOnAfterPage()
{ {
var win = gSpider.mDocument.defaultView;
if (win.wrappedJSObject)
{
win = win.wrappedJSObject;
}
dumpObject('navigator', win.navigator);
for (var i = 0; i < win.navigator.mimeTypes.length; i++)
{
dumpObject('navigator.mimeTypes[' + i + ']', win.navigator.mimeTypes[i]);
}
for (var i = 0; i < win.navigator.plugins.length; i++)
{
dumpObject('navigator.plugins[' + i + ']', win.navigator.plugins[i]);
}
gPageCompleted = true; gPageCompleted = true;
} }
function dumpObject(name, object)
{
for (var p in object)
{
if (/(string|number)/.test(typeof object[p]))
{
cdump(name + '.' + p + ':' + object[p]);
}
}
}
function userOnStop() function userOnStop()
{ {
} }

View File

@ -1,7 +1,7 @@
allurl=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/1.5.0.12-candidates/rc2/ allurl=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/1.5.0.12-candidates/rc2/
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/mac/en-US/Firefox%202.0.0.13.dmg url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/mac/en-US/Firefox%202.0.0.14.dmg
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/1.5.0.12-candidates/rc2/ allurl=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/1.5.0.12-candidates/rc2/
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/linux-i686/en-US/firefox-2.0.0.13.tar.gz url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/linux-i686/en-US/firefox-2.0.0.14.tar.gz
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/1.5.0.12-candidates/rc2/ allurl=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/1.5.0.12-candidates/rc2/
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/win32/en-US/Firefox%20Setup%202.0.0.13.exe url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/win32/en-US/Firefox%20Setup%202.0.0.14.exe
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2.0.0.13-candidates/rc2/ allurl=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2.0.0.14-candidates/rc2/
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/mac/en-US/Firefox%202.0.0.13.dmg url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/mac/en-US/Firefox%202.0.0.14.dmg
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2.0.0.13-candidates/rc2/ allurl=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2.0.0.14-candidates/rc2/
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/linux-i686/en-US/firefox-2.0.0.13.tar.gz url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/linux-i686/en-US/firefox-2.0.0.14.tar.gz
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,4 +1,4 @@
allurl=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2.0.0.13-candidates/rc2/ allurl=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2.0.0.14-candidates/rc2/
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.0pre.en-US.win32.zip url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.0pre.en-US.win32.zip

View File

@ -1,7 +1,7 @@
allurl=http://www.mozilla.com/en-US/firefox/all.html allurl=http://www.mozilla.com/en-US/firefox/all.html
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/mac/en-US/Firefox%202.0.0.13.dmg url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/mac/en-US/Firefox%202.0.0.14.dmg
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://www.mozilla.com/en-US/firefox/all.html allurl=http://www.mozilla.com/en-US/firefox/all.html
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/linux-i686/en-US/firefox-2.0.0.13.tar.gz url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/linux-i686/en-US/firefox-2.0.0.14.tar.gz
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://www.mozilla.com/en-US/firefox/all.html allurl=http://www.mozilla.com/en-US/firefox/all.html
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/win32/en-US/Firefox%20Setup%202.0.0.13.exe url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/win32/en-US/Firefox%20Setup%202.0.0.14.exe
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://khan.landfill.bugzilla.org/en-US/firefox/all-older.html allurl=http://khan.landfill.bugzilla.org/en-US/firefox/all-older.html
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/mac/en-US/Firefox%202.0.0.13.dmg url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/mac/en-US/Firefox%202.0.0.14.dmg
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://khan.landfill.bugzilla.org/en-US/firefox/all-older.html allurl=http://khan.landfill.bugzilla.org/en-US/firefox/all-older.html
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/linux-i686/en-US/firefox-2.0.0.13.tar.gz url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/linux-i686/en-US/firefox-2.0.0.14.tar.gz
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://khan.landfill.bugzilla.org/en-US/firefox/all-older.html allurl=http://khan.landfill.bugzilla.org/en-US/firefox/all-older.html
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/win32/en-US/Firefox%20Setup%202.0.0.13.exe url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/win32/en-US/Firefox%20Setup%202.0.0.14.exe
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/1.5.0.14/ allurl=http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/1.5.0.14/
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/mac/en-US/Firefox%202.0.0.13.dmg url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/mac/en-US/Firefox%202.0.0.14.dmg
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/1.5.0.14/ allurl=http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/1.5.0.14/
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/linux-i686/en-US/firefox-2.0.0.13.tar.gz url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/linux-i686/en-US/firefox-2.0.0.14.tar.gz
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/1.5.0.14/ allurl=http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/1.5.0.14/
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/win32/en-US/Firefox%20Setup%202.0.0.13.exe url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/win32/en-US/Firefox%20Setup%202.0.0.14.exe
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/2.0.0.12/ allurl=http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/2.0.0.14/
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/mac/en-US/Firefox%202.0.0.13.dmg url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/mac/en-US/Firefox%202.0.0.14.dmg
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/2.0.0.12/ allurl=http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/2.0.0.14/
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/linux-i686/en-US/firefox-2.0.0.13.tar.gz url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/linux-i686/en-US/firefox-2.0.0.14.tar.gz
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/2.0.0.12/ allurl=http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/2.0.0.14/
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/win32/en-US/Firefox%20Setup%202.0.0.13.exe url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/win32/en-US/Firefox%20Setup%202.0.0.14.exe
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://www.mozilla.com/en-US/thunderbird/all.html allurl=http://www.mozilla.com/en-US/thunderbird/all.html
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/mac/en-US/Firefox%202.0.0.13.dmg url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/mac/en-US/Firefox%202.0.0.14.dmg
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://www.mozilla.com/en-US/thunderbird/all.html allurl=http://www.mozilla.com/en-US/thunderbird/all.html
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/linux-i686/en-US/firefox-2.0.0.13.tar.gz url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/linux-i686/en-US/firefox-2.0.0.14.tar.gz
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://www.mozilla.com/en-US/thunderbird/all.html allurl=http://www.mozilla.com/en-US/thunderbird/all.html
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/win32/en-US/Firefox%20Setup%202.0.0.13.exe url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/win32/en-US/Firefox%20Setup%202.0.0.14.exe
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://khan.landfill.bugzilla.org/en-US/thunderbird/all-older.html allurl=http://khan.landfill.bugzilla.org/en-US/thunderbird/all-older.html
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/mac/en-US/Firefox%202.0.0.13.dmg url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/mac/en-US/Firefox%202.0.0.14.dmg
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://khan.landfill.bugzilla.org/en-US/thunderbird/all-older.html allurl=http://khan.landfill.bugzilla.org/en-US/thunderbird/all-older.html
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/linux-i686/en-US/firefox-2.0.0.13.tar.gz url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/linux-i686/en-US/firefox-2.0.0.14.tar.gz
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://khan.landfill.bugzilla.org/en-US/thunderbird/all-older.html allurl=http://khan.landfill.bugzilla.org/en-US/thunderbird/all-older.html
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.13/win32/en-US/Firefox%20Setup%202.0.0.13.exe url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.14/win32/en-US/Firefox%20Setup%202.0.0.14.exe
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,6 +1,6 @@
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla1.8/firefox-2.0.0.14pre.en-US.mac.dmg url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla1.8/firefox-2.0.0.15pre.en-US.mac.dmg
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,6 +1,6 @@
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla1.8/firefox-2.0.0.14pre.en-US.linux-i686.tar.gz url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla1.8/firefox-2.0.0.15pre.en-US.linux-i686.tar.gz
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -1,6 +1,6 @@
product=firefox product=firefox
branch=1.8.1 branch=1.8.1
url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla1.8/firefox-2.0.0.14pre.en-US.win32.zip url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla1.8/firefox-2.0.0.15pre.en-US.win32.zip
profilename=firefox-1.8.1-profile profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1 executablepath=/tmp/firefox-1.8.1

View File

@ -0,0 +1,8 @@
product=firefox
branch=1.9.0
profilename=firefox-1.9.0-gcov-profile
profiledirectory=/tmp/firefox-1.9.0-gcov-profile
executablepath=${BUILDDIR}/1.9.0-gcov/mozilla/firefox-debug/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=debug

View File

@ -0,0 +1,8 @@
product=firefox
branch=1.9.0
profilename=firefox-1.9.0-gcov-profile
profiledirectory=/tmp/firefox-1.9.0-gcov-profile
executablepath=${BUILDDIR}/1.9.0-gcov/mozilla/firefox-opt/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=opt

View File

@ -0,0 +1,8 @@
product=firefox
branch=1.9.0
profilename=firefox-1.9.0-jemalloc-profile
profiledirectory=/tmp/firefox-1.9.0-jemalloc-profile
executablepath=${BUILDDIR}/1.9.0-jemalloc/mozilla/firefox-debug/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=debug

View File

@ -0,0 +1,8 @@
product=firefox
branch=1.9.0
profilename=firefox-1.9.0-jemalloc-profile
profiledirectory=/tmp/firefox-1.9.0-jemalloc-profile
executablepath=${BUILDDIR}/1.9.0-jemalloc/mozilla/firefox-opt/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=opt

View File

@ -0,0 +1,8 @@
product=firefox
branch=1.9.0
profilename=firefox-1.9.0-jemalloc-test-profile
profiledirectory=/tmp/firefox-1.9.0-jemalloc-test-profile
executablepath=${BUILDDIR}/1.9.0-jemalloc-test/mozilla/firefox-debug/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=debug

View File

@ -0,0 +1,8 @@
product=firefox
branch=1.9.0
profilename=firefox-1.9.0-jemalloc-test-profile
profiledirectory=/tmp/firefox-1.9.0-jemalloc-test-profile
executablepath=${BUILDDIR}/1.9.0-jemalloc-test/mozilla/firefox-opt/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=opt

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
profilename=firefox-1.9.1-profile
profiledirectory=/tmp/firefox-1.9.1-profile
executablepath=${BUILDDIR}/1.9.1/mozilla/firefox-debug/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=debug
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.0pre.en-US.mac.dmg
profilename=firefox-1.9.1-profile
profiledirectory=/tmp/firefox-1.9.1-profile
executablepath=/tmp/firefox-1.9.1
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=nightly

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.0pre.en-US.linux-i686.tar.bz2
profilename=firefox-1.9.1-profile
profiledirectory=/tmp/firefox-1.9.1-profile
executablepath=/tmp/firefox-1.9.1
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=nightly

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.0pre.en-US.win32.zip
profilename=firefox-1.9.1-profile
profiledirectory=/tmp/firefox-1.9.1-profile
executablepath=/tmp/firefox-1.9.1
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=nightly

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
profilename=firefox-1.9.1-profile
profiledirectory=/tmp/firefox-1.9.1-profile
executablepath=${BUILDDIR}/1.9.1/mozilla/firefox-opt/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=opt
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
profilename=firefox-1.9.1-too-much-gc-profile
profiledirectory=/tmp/firefox-1.9.1-too-much-gc-profile
executablepath=${BUILDDIR}/1.9.1-too-much-gc/mozilla/firefox-debug/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=debug
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
profilename=firefox-1.9.1-test-profile
profiledirectory=/tmp/firefox-1.9.1-test-profile
executablepath=${BUILDDIR}/1.9.1-test/mozilla/firefox-debug/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=debug
TEST_MOZILLA_HG=http://hg.mozilla.org/actionmonkey

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
profilename=firefox-1.9.1-test-profile
profiledirectory=/tmp/firefox-1.9.1-test-profile
executablepath=${BUILDDIR}/1.9.1-test/mozilla/firefox-opt/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=opt
TEST_MOZILLA_HG=http://hg.mozilla.org/actionmonkey

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
profilename=firefox-1.9.1-jemalloc-profile
profiledirectory=/tmp/firefox-1.9.1-jemalloc-profile
executablepath=${BUILDDIR}/1.9.1-jemalloc/mozilla/firefox-debug/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=debug
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
profilename=firefox-1.9.1-jemalloc-profile
profiledirectory=/tmp/firefox-1.9.1-jemalloc-profile
executablepath=${BUILDDIR}/1.9.1-jemalloc/mozilla/firefox-opt/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=opt
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
profilename=firefox-1.9.1-jemalloc-test-profile
profiledirectory=/tmp/firefox-1.9.1-jemalloc-test-profile
executablepath=${BUILDDIR}/1.9.1-jemalloc-test/mozilla/firefox-debug/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=debug
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
profilename=firefox-1.9.1-jemalloc-test-profile
profiledirectory=/tmp/firefox-1.9.1-jemalloc-test-profile
executablepath=${BUILDDIR}/1.9.1-jemalloc-test/mozilla/firefox-opt/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=opt
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
profilename=firefox-1.9.1-jprof-profile
profiledirectory=/tmp/firefox-1.9.1-jprof-profile
executablepath=${BUILDDIR}/1.9.1-jprof/mozilla/firefox-debug/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=debug
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
profilename=firefox-1.9.1-jprof-profile
profiledirectory=/tmp/firefox-1.9.1-jprof-profile
executablepath=${BUILDDIR}/1.9.1-jprof/mozilla/firefox-opt/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=opt
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
profilename=firefox-1.9.1-test-profile
profiledirectory=/tmp/firefox-1.9.1-test-profile
executablepath=${BUILDDIR}/1.9.1-test/mozilla/firefox-debug/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=debug
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.1
profilename=firefox-1.9.1-test-profile
profiledirectory=/tmp/firefox-1.9.1-test-profile
executablepath=${BUILDDIR}/1.9.1-test/mozilla/firefox-opt/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
buildtype=opt
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,4 @@
product=js
branch=1.9.0
sourcepath=${BUILDDIR}/1.9.0-gcov/mozilla/js/src
buildtype=debug

View File

@ -0,0 +1,4 @@
product=js
branch=1.9.0
sourcepath=${BUILDDIR}/1.9.0-gcov/mozilla/js/src
buildtype=opt

View File

@ -0,0 +1,5 @@
product=js
branch=1.9.1
sourcepath=${BUILDDIR}/1.9.1/mozilla/js/src
buildtype=debug
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,5 @@
product=js
branch=1.9.1
sourcepath=${BUILDDIR}/1.9.1/mozilla/js/src
buildtype=opt
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,5 @@
product=js
branch=1.9.1
sourcepath=${BUILDDIR}/1.9.1-too-much-gc/mozilla/js/src
buildtype=debug
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,5 @@
product=js
branch=1.9.1
sourcepath=${BUILDDIR}/1.9.1/mozilla/js/src
buildtype=debug
TEST_MOZILLA_HG=http://hg.mozilla.org/actionmonkey

View File

@ -0,0 +1,5 @@
product=js
branch=1.9.1
sourcepath=${BUILDDIR}/1.9.1/mozilla/js/src
buildtype=opt
TEST_MOZILLA_HG=http://hg.mozilla.org/actionmonkey

View File

@ -0,0 +1,5 @@
product=js
branch=1.9.1
sourcepath=${BUILDDIR}/1.9.1-test/mozilla/js/src
buildtype=debug
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,5 @@
product=js
branch=1.9.1
sourcepath=${BUILDDIR}/1.9.1-test/mozilla/js/src
buildtype=opt
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,10 @@
product=thunderbird
branch=1.9.1
profilename=thunderbird-1.9.1-profile
profiledirectory=/tmp/thunderbird-1.9.1-profile
executablepath=${BUILDDIR}/1.9.1/mozilla/thunderbird-debug/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
profiletemplate=${TEST_DIR}/profiles/imap
buildtype=debug
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -0,0 +1,13 @@
product=thunderbird
branch=1.9.1
profilename=thunderbird-1.9.1-test-profile
profiledirectory=/tmp/thunderbird-1.9.1-test-profile
executablepath=${BUILDDIR}/1.9.1-test/mozilla/thunderbird-debug/dist
userpreferences=${TEST_DIR}/prefs/test-user.js
extensiondir=${TEST_DIR}/xpi
profiletemplate=${TEST_DIR}/profiles/imap
buildtype=debug
TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central

View File

@ -43,7 +43,7 @@ function collectLinks()
case 'MacIntel': case 'MacIntel':
os = 'osx'; os = 'osx';
break; break;
case 'Linux i686': case 'Linux*':
os = 'linux'; os = 'linux';
break; break;
default: default:
@ -57,10 +57,10 @@ function collectLinks()
for (var ilink = 0; ilink < links.length; ilink++) for (var ilink = 0; ilink < links.length; ilink++)
{ {
var link = links[ilink]; var link = links[ilink];
if (link.href.indexOf('download.html') != -1 && if (link.href.indexOf('http://download.mozilla.org') != -1 &&
link.href.indexOf('os=' + os) != -1) link.href.indexOf('os=' + os) != -1)
{ {
var href = 'http://download.mozilla.org/?' + link.href.split('?')[1]; var href = link.href;
cdump('href: ' + href); cdump('href: ' + href);
} }
} }

View File

@ -90,12 +90,14 @@ urlfile=`mktemp /tmp/URLS.XXXX`
if [[ "$test" == "all" ]]; then if [[ "$test" == "all" ]]; then
$TEST_DIR/bin/timed_run.py $TEST_DOWNLOAD_PAGE_TIMEOUT "test download" \ $TEST_DIR/bin/timed_run.py $TEST_DOWNLOAD_PAGE_TIMEOUT "test download" \
$EXECUTABLE_DRIVER \
"$executable" -P "$profilename" -spider -start -quit \ "$executable" -P "$profilename" -spider -start -quit \
-uri "$allurl" -timeout=$TEST_DOWNLOAD_PAGE_TIMEOUT \ -uri "$allurl" -timeout=$TEST_DOWNLOAD_PAGE_TIMEOUT \
-hook "http://$TEST_HTTP/tests/mozilla.org/download-page/collect-urls-userhook.js" | \ -hook "http://$TEST_HTTP/tests/mozilla.org/download-page/collect-urls-userhook.js" | \
grep 'href: ' | sed 's/^href: //' > $urlfile grep 'href: ' | sed 's/^href: //' > $urlfile
elif [[ "$test" == "ftp" ]]; then elif [[ "$test" == "ftp" ]]; then
$TEST_DIR/bin/timed_run.py $TEST_DOWNLOAD_PAGE_TIMEOUT "test download" \ $TEST_DIR/bin/timed_run.py $TEST_DOWNLOAD_PAGE_TIMEOUT "test download" \
$EXECUTABLE_DRIVER \
"$executable" -P "$profilename" -spider -start -quit \ "$executable" -P "$profilename" -spider -start -quit \
-uri "$allurl" -timeout=$TEST_DOWNLOAD_PAGE_TIMEOUT \ -uri "$allurl" -timeout=$TEST_DOWNLOAD_PAGE_TIMEOUT \
-hook "http://$TEST_HTTP/tests/mozilla.org/download-page/userhook-ftp.js" | \ -hook "http://$TEST_HTTP/tests/mozilla.org/download-page/userhook-ftp.js" | \
@ -182,6 +184,7 @@ cat $urlfile | while read url; do
downloadexecutable=`get_executable $downloadproduct $downloadbranch $downloadexecutablepath` downloadexecutable=`get_executable $downloadproduct $downloadbranch $downloadexecutablepath`
$TEST_DIR/bin/timed_run.py $TEST_DOWNLOAD_BUILD_TIMEOUT "..." \ $TEST_DIR/bin/timed_run.py $TEST_DOWNLOAD_BUILD_TIMEOUT "..." \
$EXECUTABLE_DRIVER \
"$downloadexecutable" \ "$downloadexecutable" \
-spider -P $downloadprofilename \ -spider -P $downloadprofilename \
-uri "http://$TEST_HTTP/bin/buildinfo.html" \ -uri "http://$TEST_HTTP/bin/buildinfo.html" \