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
if [[ "$OSID" != "win32" ]]; then
if [[ "$OSID" != "nt" ]]; then
#
# patch unix-like startup scripts to exec instead of
# forking new processes
#
executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
error "get_executable $product $branch $executablepath returned empty path" $LINENO
fi
executabledir=`dirname $executable`

View File

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

View File

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

View File

@ -44,69 +44,174 @@ if [[ -z "$TREE" ]]; then
error "source tree not specified!" $LINENO
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
case $product in
firefox)
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 $project mozconfig" $LINENO
fi
fi
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 $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
error "during checkout of $project tree" $LINENO
fi
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
;;
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
error "during checkout of $project tree" $LINENO
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
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)
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
error "during update $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS js/src" $LINENO
fi
cd mozilla/js/src
if ! cvs -z3 -q update -d -P -A editline config 2>&1; then
error "during checkout of js/src" $LINENO
fi
if ! eval cvs -z3 -q update $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS -d -P 2>&1; then
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
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
;;
*)

View File

@ -53,7 +53,7 @@ $SCRIPT -p product -b branch -x executablepath -D directory -N profilename
variable description
=============== ============================================================
-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'
-D directory required. directory where profile is to be created.
-N profilename required. profile name
@ -86,44 +86,31 @@ while getopts $options optname ;
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
loaddata $datafiles
if [[ -z "$product" || -z "$branch" || -z "$executablepath" || \
-z "$directory" || -z "$profilename" ]]; then
usage
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
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
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
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
if echo "$profilename" | egrep -qiv '[a-z0-9_]'; then
error "profile name \"$profilename\" must consist of letters, digits or _" $LINENO
fi
if [ $OSID == "win32" ]; then
if [ $OSID == "nt" ]; then
directoryospath=`cygpath -a -w $directory`
if [[ -z "$directoryospath" ]]; then
error "unable to convert unix path to windows path" $LINENO
@ -134,7 +121,9 @@ fi
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
fi

View File

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

View File

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

View File

@ -52,7 +52,7 @@ $SCRIPT -p product -b branch -x executablepath -i talkbackid [-d datafiles]
variable description
=============== ============================================================
-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
'product'
-i talkbackid required. identifier to add to talkback url
@ -80,12 +80,7 @@ while getopts $options optname ;
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
loaddata $datafiles
if [[ -z "$product" || -z "$branch" || \
-z "$executablepath" || -z "$talkbackid" ]]; then
@ -94,14 +89,6 @@ fi
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`
# escape & in talkback id to prevent replacements
@ -132,7 +119,7 @@ if [[ $talkback -eq 1 ]]; then
fi
case $OSID in
win32)
nt)
vendorid=`dos2unix < master.ini | grep '^VendorID = "' | sed 's@VendorID = "\([^"]*\)"@\1@'`
productid=`dos2unix < master.ini | grep '^ProductID = "' | sed 's@ProductID = "\([^"]*\)"@\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@'`
talkbackdir="$HOME/.fullcircle"
;;
mac)
darwin)
# hack around Mac's use of spaces in directory names
vendorid=`grep '^VendorID = "' master.ini | sed 's@VendorID = "\([^"]*\)"@\1@'`
productid=`grep '^ProductID = "' master.ini | sed 's@ProductID = "\([^"]*\)"@\1@'`
@ -168,10 +155,10 @@ if [[ $talkback -eq 1 ]]; then
mkdir -p "$talkbackdir"
case $OSID in
win32)
nt)
talkbackinidir="$talkbackdir/$vendorid/$productid/$platformid/$buildid"
;;
linux | mac )
linux | darwin )
talkbackinidir="$talkbackdir/$vendorid$productid$platformid$buildid"
;;
esac
@ -185,13 +172,13 @@ if [[ $talkback -eq 1 ]]; then
cp ${TEST_DIR}/talkback/$OSID/Talkback.ini .
case "$OSID" in
win32)
nt)
sed -i.bak "s@URLEdit .*@URLEdit = \"mozqa:$talkbackid\"@" Talkback.ini
;;
linux )
linux)
sed -i.bak "s@URLEditControl .*@URLEditControl = \"mozqa:$talkbackid\"@" Talkback.ini
;;
mac )
darwin)
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
=============== ============================================================
-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
-f filename required. path to filename where installer is stored
-d datafiles optional. one or more filenames of files containing
@ -79,12 +79,7 @@ while getopts $options optname ;
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
loaddata $datafiles
if [[ -z "$product" || -z "$branch" || -z "$executablepath" || -z "$filename" ]]
then
@ -97,7 +92,7 @@ $TEST_DIR/bin/create-directory.sh -d "$executablepath" -n
filetype=`file $filename`
if [[ $OSID == "win32" ]]; then
if [[ $OSID == "nt" ]]; then
if echo $filetype | grep -iq windows; then
chmod u+x "$filename"
@ -108,6 +103,8 @@ if [[ $OSID == "win32" ]]; then
fi
elif echo $filetype | grep -iq 'zip archive'; then
unzip -o -d "$executablepath" "$filename"
find $executablepath -name '*.exe' | xargs chmod u+x
find $executablepath -name '*.dll' | xargs chmod u+x
else
error "$unknown file type $filetype" $LINENO
fi
@ -152,9 +149,7 @@ else
# forking new processes
#
executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
error "get_executable $product $branch $executablepath returned empty directory" $LINENO
fi
executabledir=`dirname $executable`
# patch to use exec to prevent forked processes

View File

@ -39,7 +39,7 @@
source $TEST_DIR/bin/library.sh
echo "$SCRIPT $@"
TEST_STARTUP_TRIES=${TEST_STARTUP_TRIES:-3}
#
# options processing
@ -55,7 +55,7 @@ $SCRIPT -p product -b branch -x executablepath -N profilename -E extensions
variable description
=============== ============================================================
-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
'product'
-N profilename required. profile name
@ -85,12 +85,7 @@ while getopts $options optname ;
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
loaddata $datafiles
if [[ -z "$product" || -z "$branch" || \
-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
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
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
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
error "profile name must consist of letters, digits or _" $LINENO
fi
@ -124,14 +111,23 @@ for extension in $extensions/all/*.xpi; do
if [[ $extension == "$extensions/all/*.xpi" ]]; then
break
fi
if [[ "$OSID" == "win32" ]]; then
if [[ "$OSID" == "nt" ]]; then
extensionos=`cygpath -a -w $extension`
else
extensionos="$extension"
fi
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
# from the output or from the exit code.
done
@ -140,17 +136,22 @@ for extension in $extensions/$OSID/*; do
if [[ $extension == "$extensions/$OSID/*" ]]; then
break
fi
if [[ "$OSID" == "win32" ]]; then
if [[ "$OSID" == "nt" ]]; then
extensionos=`cygpath -a -w $extension`
else
extensionos="$extension"
fi
echo installing $extension
if ! $TEST_DIR/bin/timed_run.py ${TEST_STARTUP_TIMEOUT} "-" $executable -P $profilename -install-global-extension "$extensionos"; then
error "Failed to install $extensionos" $LINENO
fi
let tries=1
while ! $TEST_DIR/bin/timed_run.py ${TEST_STARTUP_TIMEOUT} "Install extension $extension: try $tries" \
$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
# 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
=============== ============================================================
-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
-D directory required. path to location of plugins/components
-d datafiles optional. one or more filenames of files containing
@ -80,12 +80,7 @@ while getopts $options optname ;
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
loadata $datafiles
if [[ -z "$product" || -z "$branch" || \
-z "$executablepath" || -z "$directory" ]]; then
@ -98,14 +93,6 @@ fi
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`
#

View File

@ -85,42 +85,27 @@ function _exit()
trap "_exit" EXIT
# error message
# output error message end exit 2
# error message
# output error message end exit 2
error()
{
local message=$1
local lineno=$2
error()
{
local message=$1
local lineno=$2
debug "error: $0:$LINENO"
debug "error: $0:$LINENO"
echo -e "FATAL ERROR in script $0:$lineno $message\n" 1>&2
if [[ "$0" == "-bash" || "$0" == "bash" ]]; then
return 0
fi
exit 2
}
echo -e "FATAL ERROR in script $0:$lineno $message\n" 1>&2
if [[ "$0" == "-bash" || "$0" == "bash" ]]; then
return 0
fi
exit 2
}
if [[ -z "$LIBRARYSH" ]]; then
# 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()
{
if [[ -n "$DEBUG" ]]; then
@ -137,6 +122,25 @@ if [[ -z "$LIBRARYSH" ]]; then
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
#
@ -147,6 +151,33 @@ if [[ -z "$LIBRARYSH" ]]; then
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, ...
#
# dumps name=value pairs to stdout for each variable named
@ -170,9 +201,9 @@ if [[ -z "$LIBRARYSH" ]]; then
get_executable()
{
get_executable_product="$1"
get_executable_branch="$2"
get_executable_directory="$3"
local get_executable_product="$1"
local get_executable_branch="$2"
local get_executable_directory="$3"
if [[ -z "$get_executable_product" || \
-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
# filter the output to remove extraneous file in dist/bin for
# cvs builds on mac os x.
get_executable_name="$get_executable_product${EXE_EXT}"
case "$OSID" in
mac)
get_executable_filter="Contents/MacOS/$get_executable_product"
if [[ "$get_executable_product" == "thunderbird" ]]; then
get_executable_name="$get_executable_product-bin"
fi
;;
*)
get_executable_filter="$get_executable_product"
esac
if find "$get_executable_directory" -perm +111 -type f \
-name "$get_executable_name" | \
grep "$get_executable_filter"; then
true
local executable=`(
get_executable_name="$get_executable_product${EXE_EXT}"
case "$OSID" in
darwin)
get_executable_filter="Contents/MacOS/$get_executable_product"
if [[ "$get_executable_product" == "thunderbird" ]]; then
get_executable_name="$get_executable_product-bin"
fi
;;
*)
get_executable_filter="$get_executable_product"
;;
esac
if find "$get_executable_directory" -perm +111 -type f \
-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
if [[ ! -x "$executable" ]]; then
error "executable \"$executable\" is not executable" $LINENO
fi
echo $executable
fi
}
@ -216,48 +260,26 @@ if [[ -z "$LIBRARYSH" ]]; then
echo $script
}
SCRIPT=`get_scriptname $0`
LIBRARYSH=1
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}
MALLOC_CHECK_=2
TEST_MACHINE=`uname -n`
TEST_KERNEL=`uname -r`
TEST_PROCESSORTYPE=`uname -p`
ulimit -c 0
# set path to make life easier
if ! echo ${PATH} | grep -q $TEST_DIR/bin; then
PATH=$TEST_DIR/bin:$PATH
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
if ! echo "$LANG" | grep -q en_US; then
LANG=en_US
LC_TIME=en_US
fi
# handle sorting non-ascii logs on mac os x 10.5.3
LC_ALL=C
TEST_TIMEZONE=`date +%z`
# save starting directory
@ -278,17 +300,109 @@ if [[ -z "$LIBRARYSH" ]]; then
# ah crap handler timeout
MOZ_GDB_SLEEP=${MOZ_GDB_SLEEP:-10}
# no dialogs on asserts
XPCOM_DEBUG_BREAK=${XPCOM_DEBUG_BREAK:-warn}
# no 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}
#leak gauge
#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
case `uname -s` in
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 *****
if [[ -z "$LIBRARYSH" ]]; then
source $TEST_DIR/bin/library.sh
fi
export MOZ_CVS_FLAGS="-z3 -q"
export MOZILLA_OFFICIAL=1
export BUILD_OFFICIAL=1
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
else
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]
-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]
-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;;
b) branch=$OPTARG;;
T) buildtype=$OPTARG;;
e) extra=$OPTARG;;
e) extra="-$OPTARG";;
esac
done
# include environment variables
datafiles=$TEST_DIR/data/$product,$branch$extra,$buildtype.data
loaddata $datafiles
# echo product=$product, branch=$branch, buildtype=$buildtype, extra=$extra
if [[ -z "$product" || -z "$branch" || -z "$buildtype" ]]; then
@ -113,11 +121,14 @@ for step in step1; do # dummy loop for handling exits
fi
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
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
export BRANCH_CO_FLAGS="";
elif [[ $branch == "1.9.1" ]]; then
# XXX: mozilla-central
export BRANCH_CO_FLAGS="";
else
echo "Unknown branch: $branch"
myexit 1
@ -127,8 +138,8 @@ for step in step1; do # dummy loop for handling exits
export DATE_CO_FLAGS="-D \"$MOZ_CO_DATE\""
fi
case `uname -s` in
CYGWIN*)
case $OSID in
nt)
# On Windows, Sisyphus is run under Cygwin, so the OS will be CYGWIN
# 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.
if [[ -e "/c/mozilla-build" ]]; then
OSID=win32
export BUILDDIR=${BUILDDIR:-/c/work/mozilla/builds}
export buildbash="/c/mozilla-build/msys/bin/bash"
export platform=i686
export bashlogin=--login # this is for msys' bash.
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
else
OSID=win32
export BUILDDIR=${BUILDDIR:-/work/mozilla/builds}
export buildbash="/bin/bash"
export platform=i686
export bashlogin=-l
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`
;;
Linux)
OSID=linux
linux)
export BUILDDIR=${BUILDDIR:-/work/mozilla/builds}
export buildbash="/bin/bash"
export platform=`uname -p`
export bashlogin=-l
# if a 64 bit linux system, assume the
# compiler is in the standard reference
# location /tools/gcc/bin/
case "$platform" in
x86_64)
case "$TEST_PROCESSORTYPE" in
*64)
export PATH=/tools/gcc/bin:$PATH
;;
esac
;;
Darwin)
OSID=mac
darwin)
export BUILDDIR=${BUILDDIR:-/work/mozilla/builds}
export buildbash="/bin/bash"
export platform=`uname -p`
export bashlogin=-l
;;
*)
@ -221,10 +223,14 @@ for step in step1; do # dummy loop for handling exits
export CONFIG_SHELL=$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
export TREE="$BUILDDIR/$branch"
else
export TREE="$BUILDDIR/$branch-$extra"
export TREE="$BUILDDIR/$branch$extra"
#
# 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
too-much-gc)
-too-much-gc)
export XCFLAGS="-DWAY_TOO_MUCH_GC=1"
export CFLAGS="-DWAY_TOO_MUCH_GC=1"
export CXXFLAGS="-DWAY_TOO_MUCH_GC=1"
;;
gcov)
-gcov)
if [[ "$OSID" == "win32" ]]; then
echo "win32 does not support gcov"
if [[ "$OSID" == "nt" ]]; then
echo "NT does not support gcov"
myexit 1
fi
export CFLAGS="--coverage"
@ -252,7 +258,7 @@ for step in step1; do # dummy loop for handling exits
export LDFLAGS="--coverage"
export XLDOPTS="--coverage"
;;
jprof)
-jprof)
;;
esac
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
if [[ $product == "firefox" ]]; then
project=browser
export MOZCONFIG="$TREE/mozconfig-firefox-$OSID-$platform-$buildtype"
export MOZCONFIG="$TREE/mozconfig-firefox-$OSID-$TEST_PROCESSORTYPE-$buildtype"
elif [[ $product == "thunderbird" ]]; then
project=mail
export MOZCONFIG="$TREE/mozconfig-thunderbird-$OSID-$platform-$buildtype"
export MOZCONFIG="$TREE/mozconfig-thunderbird-$OSID-$TEST_PROCESSORTYPE-$buildtype"
else
echo "Assuming project=browser for product: $product"
project=browser
export MOZCONFIG="$TREE/mozconfig-firefox-$OSID-$platform-$buildtype"
export MOZCONFIG="$TREE/mozconfig-firefox-$OSID-$TEST_PROCESSORTYPE-$buildtype"
fi
# js shell builds
@ -284,7 +290,7 @@ for step in step1; do # dummy loop for handling exits
fi
case "$OSID" in
mac)
darwin)
export JS_EDITLINE=1 # required for mac
;;
esac

View File

@ -59,7 +59,7 @@ $SCRIPT -p product -b branch
variable description
=============== ===========================================================
-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
-f filepath optional. location to save downloaded build or to find
previously downloaded build. If not specified, the
@ -129,12 +129,7 @@ while getopts $options optname ;
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
loaddata $datafiles
TEST_PRODUCT=$product
TEST_BRANCH=$branch
@ -148,6 +143,7 @@ TEST_EXTENSIONDIR=$extensiondir
TEST_DATAFILES=$datafiles
dumpenvironment
dumphardware
if [[ -z "$product" || -z "$branch" ]]; then
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
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

View File

@ -20,6 +20,7 @@
# the Initial Developer. All Rights Reserved.
#
# Contributor(s): Chris Cooper
# Jesse Ruderman
#
# 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
@ -55,14 +56,23 @@ if prefix == "-":
else:
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):
global pid
global prefix
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)
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
flushexit(exitTimeout)
@ -79,7 +89,7 @@ def forkexec(command, args):
else: # Parent
return pid
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)
def flushbuffers():
@ -106,24 +116,30 @@ try:
# it appears that linux at least will on "occasion" return a status
# when the process was terminated by a signal, so test signal first.
if os.WIFSIGNALED(status):
print "%s EXIT STATUS: CRASHED signal %d (%f seconds)" % (prefix, os.WTERMSIG(status), elapsedtime)
flushexit(exitSignal)
signum = os.WTERMSIG(status)
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):
rc = os.WEXITSTATUS(status)
msg = ''
if rc == 0:
msg = 'NORMAL'
elif rc < 3:
else:
msg = 'ABNORMAL ' + str(rc)
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)
else:
print "%s EXIT STATUS: NONE (%f seconds)" % (prefix, elapsedtime)
print "\n%s EXIT STATUS: NONE (%f seconds)\n" % (prefix, elapsedtime)
flushexit(0)
except KeyboardInterrupt:
flushkill(pid, 9)

View File

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

View File

@ -50,9 +50,39 @@ function userOnBeforePage()
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;
}
function dumpObject(name, object)
{
for (var p in object)
{
if (/(string|number)/.test(typeof object[p]))
{
cdump(name + '.' + p + ':' + object[p]);
}
}
}
function userOnStop()
{
}

View File

@ -1,7 +1,7 @@
allurl=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/1.5.0.12-candidates/rc2/
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
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/
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
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/
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
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
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
profiledirectory=/tmp/firefox-1.8.1-profile
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
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
profiledirectory=/tmp/firefox-1.8.1-profile
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
branch=1.8.1
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
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://www.mozilla.com/en-US/firefox/all.html
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://www.mozilla.com/en-US/firefox/all.html
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://khan.landfill.bugzilla.org/en-US/firefox/all-older.html
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://khan.landfill.bugzilla.org/en-US/firefox/all-older.html
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://khan.landfill.bugzilla.org/en-US/firefox/all-older.html
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
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/
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
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/
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
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/
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
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
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
profiledirectory=/tmp/firefox-1.8.1-profile
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
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
profiledirectory=/tmp/firefox-1.8.1-profile
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
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
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://www.mozilla.com/en-US/thunderbird/all.html
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://www.mozilla.com/en-US/thunderbird/all.html
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://www.mozilla.com/en-US/thunderbird/all.html
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://khan.landfill.bugzilla.org/en-US/thunderbird/all-older.html
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://khan.landfill.bugzilla.org/en-US/thunderbird/all-older.html
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1

View File

@ -1,7 +1,7 @@
allurl=http://khan.landfill.bugzilla.org/en-US/thunderbird/all-older.html
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1

View File

@ -1,6 +1,6 @@
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1

View File

@ -1,6 +1,6 @@
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1

View File

@ -1,6 +1,6 @@
product=firefox
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
profiledirectory=/tmp/firefox-1.8.1-profile
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':
os = 'osx';
break;
case 'Linux i686':
case 'Linux*':
os = 'linux';
break;
default:
@ -57,10 +57,10 @@ function collectLinks()
for (var ilink = 0; ilink < links.length; 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)
{
var href = 'http://download.mozilla.org/?' + link.href.split('?')[1];
var href = link.href;
cdump('href: ' + href);
}
}

View File

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