Land sisyphus, bug 383286, r=rcampbell

This commit is contained in:
bclary@bclary.com 2007-06-12 08:46:42 -07:00
parent ea95a77ca2
commit 698f4ce1b3
113 changed files with 5625 additions and 0 deletions

90
testing/sisyphus/bin/appinfo.js Executable file
View File

@ -0,0 +1,90 @@
/* -*- Mode: C++; 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 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) 2005
* 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 ***** */
function AppInfo()
{
// See http://developer.mozilla.org/en/docs/Using_nsIXULAppInfo
var appInfo;
this.vendor = 'unknown';
this.name = 'unknown';
this.ID = 'unknown';
this.version = 'unknown';
this.appBuildID = 'unknown';
this.platformVersion = 'unknown';
this.platformBuildID = 'unknown';
try
{
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
if('@mozilla.org/xre/app-info;1' in Components.classes)
{
// running under Mozilla 1.8 or later
appInfo = Components
.classes['@mozilla.org/xre/app-info;1']
.getService(Components.interfaces.nsIXULAppInfo);
this.vendor = appInfo.vendor;
this.name = appInfo.name;
this.ID = appInfo.ID;
this.version = appInfo.version;
this.appBuildID = appInfo.appBuildID;
this.platformVersion = appInfo.platformVersion;
this.platformBuildID = appInfo.platformBuildID;
}
}
catch(e)
{
}
if (this.vendor == 'unknown')
{
var ua = navigator.userAgent;
var cap = ua.match(/rv:([\d.ab+]+).*Gecko\/(\d{8,8}) ([\S]+)\/([\d.]+)/);
if (cap && cap.length == 5)
{
this.vendor = navigator.vendor ? navigator.vendor : 'Mozilla';
this.name = cap[3];
this.version = cap[4];
this.appBuildID = cap[2] + '00';
this.platformVersion = cap[1];
this.platformBuildID = this.appBuildID;
}
}
}

121
testing/sisyphus/bin/build.sh Executable file
View File

@ -0,0 +1,121 @@
#!/usr/local/bin/bash -e
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
source ${TEST_BIN}/library.sh
source $TEST_BIN/set-build-env.sh $@
case $product in
firefox|thunderbird)
cd $TREE/mozilla
if ! make -f client.mk build 2>&1; then
error "during build"
fi
case "$OSID" in
"mac")
if [[ "$buildtype" == "debug" ]]; then
if [[ "$product" == "firefox" ]]; then
executablepath=$product-$buildtype/dist/FirefoxDebug.app/Contents/MacOS
elif [[ "$product" == "thunderbird" ]]; then
executablepath=$product-$buildtype/dist/ThunderbirdDebug.app/Contents/MacOS
fi
else
if [[ "$product" == "firefox" ]]; then
executablepath=$product-$buildtype/dist/Firefox.app/Contents/MacOS
elif [[ "$product" == "thunderbird" ]]; then
executablepath=$product-$buildtype/dist/Thunderbird.app/Contents/MacOS
fi
fi
;;
"linux")
executablepath=$product-$buildtype/dist/bin
;;
esac
if [[ "$OSID" != "win32" ]]; 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"
fi
executabledir=`dirname $executable`
# patch to use exec to prevent forked processes
cd "$executabledir"
if [ -e "$product" ]; then
echo "$SCRIPT: patching $product"
cp $TEST_BIN/$product.diff .
patch -N -p0 < $product.diff
fi
if [ -e run-mozilla.sh ]; then
echo "$SCRIPT: patching run-mozilla.sh"
cp $TEST_BIN/run-mozilla.diff .
patch -N -p0 < run-mozilla.diff
fi
fi
;;
js)
cd $TREE/mozilla/js/src
if [[ $buildtype == "debug" ]]; then
export JSBUILDOPT=
else
export JSBUILDOPT=BUILD_OPT=1
fi
if ! make -f Makefile.ref ${JSBUILDOPT} clean 2>&1; then
error "during js/src clean"
fi
if ! make -f Makefile.ref ${JSBUILDOPT} 2>&1; then
error "during js/src build"
fi
;;
esac

152
testing/sisyphus/bin/builder.sh Executable file
View File

@ -0,0 +1,152 @@
#!/usr/local/bin/bash -e
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
source ${TEST_BIN}/library.sh
TEST_LOG=/dev/null
trap 'echo -e "\n*** ERROR ***\n\b" && tail $TEST_LOG' ERR
#
# options processing
#
options="p:b:B:T:e:d:"
function usage()
{
cat<<EOF
usage:
$SCRIPT -p products -b branches -B buildcommands -T buildtypes [-e extra]
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 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.
-d datafiles optional. one or more filenames of files containing
environment variable definitions to be included.
note that the environment variables should have the same
names as in the "variable" column.
EOF
exit 2
}
unset products branches buildcommands buildtypes extra extraflag datafiles
while getopts $options optname ;
do
case $optname in
p) products="$OPTARG";;
b) branches="$OPTARG";;
B) buildcommands="$OPTARG";;
T) buildtypes="$OPTARG";;
e) extra="-$OPTARG"
extraflag="-e $OPTARG";;
d) datafiles=$OPTARG;;
esac
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$products" || -z "$branches" || -z "$buildcommands" || \
-z "$buildtypes" ]]; then
usage
fi
# clean first in case checkout changes the configuration
if echo "$buildcommands" | grep -iq clean; then
for product in $products; do
for branch in $branches; do
for buildtype in $buildtypes; do
TEST_DATE=`date -u +%Y-%m-%d-%H-%M-%S``date +%z`
TEST_LOG="${TEST_DIR}/results/${TEST_DATE},$product,$branch$extra,$buildtype,$OSID,${MACHINE},clean.log"
echo "writing results to $TEST_LOG"
clean.sh -p $product -b $branch -T $buildtype $extraflag > $TEST_LOG 2>&1
done
done
done
fi
# if checkout, ignore buildtypes
if echo "$buildcommands" | grep -iq checkout; then
for product in $products; do
for branch in $branches; do
TEST_DATE=`date -u +%Y-%m-%d-%H-%M-%S``date +%z`
TEST_LOG="${TEST_DIR}/results/${TEST_DATE},$product,$branch$extra,$buildtype,$OSID,${MACHINE},checkout.log"
echo "writing results to $TEST_LOG"
checkout.sh -p $product -b $branch -T opt $extraflag > $TEST_LOG 2>&1
done
done
fi
if echo "$buildcommands" | grep -iq build; then
for product in $products; do
for branch in $branches; do
for buildtype in $buildtypes; do
TEST_DATE=`date -u +%Y-%m-%d-%H-%M-%S``date +%z`
TEST_LOG="${TEST_DIR}/results/${TEST_DATE},$product,$branch$extra,$buildtype,$OSID,${MACHINE}-build.log"
echo "writing results to $TEST_LOG"
build.sh -p $product -b $branch -T $buildtype $extraflag > $TEST_LOG 2>&1
done
done
done
fi

View File

@ -0,0 +1,16 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Get Build Information</title>
<script type="text/javascript" src="appinfo.js"></script>
</head>
<body>
<h1>Get Build Information</h1>
<script type="text/javascript">
var appInfo = new AppInfo();
document.write(appInfo.toSource());
</script>
</body>
</html>

View File

@ -0,0 +1,140 @@
#!/usr/local/bin/bash -e
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
source ${TEST_BIN}/library.sh
#
# options processing
#
options="p:b:x:N:d:"
function usage()
{
cat <<EOF
usage:
$SCRIPT -p product -b branch -x executablepath -N profilename
[-d datafiles]
variable description
=============== ============================================================
-p product required. firefox|thunderbird
-b branch required. 1.8.0|1.8.1|1.9.0
-x executablepath required. directory-tree containing executable named
'product'
-N profilename required. name of profile to be used
-d datafiles optional. one or more filenames of files containing
environment variable definitions to be included.
note that the environment variables should have the same
names as in the "variable" column.
Checks if the Spider extension is installed either in the named profile
or as a global extension, by attempting up to 3 times to launch the Spider.
If Spider fails to launch, the script returns exit code 66.
EOF
exit 1
}
unset product branch executablepath profilename datafiles
while getopts $options optname ;
do
case $optname in
p) product=$OPTARG;;
b) branch=$OPTARG;;
x) executablepath=$OPTARG;;
N) profilename=$OPTARG;;
d) datafiles=$OPTARG;;
esac
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$product" || -z "$branch" || -z "$executablepath" || -z "$profilename" ]];
then
usage
fi
if [[ "$product" != "firefox" && "$product" != "thunderbird" ]]; then
error "product \"$product\" must be one of firefox or thunderbird"
fi
if [[ "$branch" != "1.8.0" && "$branch" != "1.8.1" && "$branch" != "1.9.0" ]];
then
error "branch \"$branch\" must be one of 1.8.0, 1.8.1, 1.9.0"
fi
executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
error "get_executable $product $branch $executablepath returned empty path"
fi
if [[ ! -x "$executable" ]]; then
error "executable \"$executable\" is not executable"
fi
if echo "$profilename" | egrep -qiv '[a-z0-9_]'; then
error "profile name must consist of letters, digits or _"
fi
echo # attempt to force Spider to load
tries=1
while ! $TEST_BIN/timed_run.py ${TEST_STARTUP_TIMEOUT} "Start Spider: try $tries" \
"$executable" -P "$profilename" \
-spider -start -quit \
-uri "http://${TEST_HTTP}/bin/start-spider.html" \
-hook "http://${TEST_HTTP}/bin/userhook-checkspider.js"; do
let tries=tries+1
if [ "$tries" -gt 3 ]; then
echo "Failed to start spider. Exiting..."
exit 66
fi
done

View File

@ -0,0 +1,97 @@
#!/usr/local/bin/bash -e
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
source ${TEST_BIN}/library.sh
source /work/mozilla/mozilla.com/test.mozilla.com/www/bin/set-build-env.sh $@
if [[ -z "$TREE" ]]; then
error "source tree not specified!"
fi
cd $TREE
case $product in
firefox|thunderbird)
if [[ ! ( -d mozilla && \
-e mozilla/client.mk && \
-e "mozilla/$project/config/mozconfig" ) ]]; then
if ! cvs -z3 -q co $BRANCH_CO_FLAGS \
mozilla/client.mk mozilla/$project/config/mozconfig; then
error "during checkout of mozconfig"
fi
fi
cd mozilla
if ! make -f client.mk checkout 2>&1; then
error "during checkout of tree"
fi
;;
js)
if [[ ! ( -d mozilla && \
-e mozilla/js && \
-e mozilla/js/src ) ]]; then
cvs -z3 -q co mozilla/js/src
fi
cd mozilla/js/src
if ! cvs -z3 -q update -d -P 2>&1; then
error "during checkout of js/src"
fi
if ! cvs -z3 -q update -d -P -A editline config 2>&1; then
error "during checkout of js/src"
fi
# end for js shell
;;
*)
error "unknown product $product"
;;
esac

62
testing/sisyphus/bin/clean.sh Executable file
View File

@ -0,0 +1,62 @@
#!/usr/local/bin/bash -e
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
source ${TEST_BIN}/library.sh
source /work/mozilla/mozilla.com/test.mozilla.com/www/bin/set-build-env.sh $@
case $product in
firefox|thunderbird)
cd $TREE/mozilla
if ! make -f client.mk distclean 2>&1; then
error "during client.mk clean"
fi
;;
js)
cd $TREE/mozilla/js/src
if ! make -f Makefile.ref clean 2>&1; then
error "during SpiderMonkey clean"
fi
;;
esac

50
testing/sisyphus/bin/combo.sh Executable file
View File

@ -0,0 +1,50 @@
#!/bin/bash -e
delim=,
while getopts "d:" optname;
do
case $optname in
d) delim=$OPTARG;;
esac
done
if [[ $OPTIND -gt 1 ]]; then
shift 2
fi
if [[ -n "$4" ]]; then
for a in $1; do for b in $2; do for c in $3; do for d in $4; do echo $a$delim$b$delim$c$delim$d; done; done; done; done
elif [[ -n "$3" ]]; then
for a in $1; do for b in $2; do for c in $3; do echo $a$delim$b$delim$c; done; done; done
elif [[ -n "$2" ]]; then
for a in $1; do for b in $2; do echo $a$delim$b; done; done
elif [[ -n "$1" ]]; then
for a in $1; do echo $a; done
else
cat<<EOF
usage: combo.sh [-d delim] list1 [list2 [list3 [list4]]]
output combinations of items in each list using delim as the delimiter
-d delim specifies the delimiter. The default is comma (,).
$combo.sh "a b"
a
b
combo.ah "a b" "1 2"
a,1
a,2
b,1
b,2
combo.ah -d "-" "a b" "1 2"
a-1
a-2
b-1
b-2
EOF
fi

View File

@ -0,0 +1,119 @@
#!/usr/local/bin/bash -e
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
source ${TEST_BIN}/library.sh
#
# options processing
#
options="d:n"
function usage()
{
cat <<EOF
usage:
$SCRIPT -d directory [-n]
-d directory directory to be created.
-n never prompt when removing existing directory.
Attempts to safely create an empty directory. If -n is not
specified, the script will prompt before deleting any files
or directories. If -n is specified, it will not prompt.
The safety measures include refusing to run if run by user
root and by refusing to create directories unless there are
a subdirectory of /tmp or have at least two ancestor
directories... /grandparent/parent/child.
******************** WARNING ********************
This script will destroy existing directories and
their contents. It can potentially wipe out your
disk. Use with caution.
******************** WARNING ********************
EOF
exit 2
}
unset directory
rmopt="-i"
while getopts $options optname ;
do
case $optname in
d) directory=$OPTARG;;
n) unset rmopt;;
esac
done
if [[ -z $directory ]]
then
usage
fi
if [[ `whoami` == "root" ]]; then
error "can not be run as root"
fi
# get the cannonical name directory name
mkdir -p "$directory"
if ! pushd "$directory" > /dev/null ; then
error "$directory is not accessible"
fi
directory=`pwd`
popd > /dev/null
if [[ "$directory" == "/" ]]; then
error "directory $directory can not be root"
fi
parent=`dirname "$directory"`
grandparent=`dirname "$parent"`
if [[ "$parent" != "/tmp" && ( "$parent" == "/" || "$grandparent" == "/" ) ]]; then
error "directory $directory can not be a subdirectory of $parent"
fi
# clean the directory if requested
rm -fR $rmopt $directory
mkdir -p "$directory"

View File

@ -0,0 +1,155 @@
#!/usr/local/bin/bash -e
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
source ${TEST_BIN}/library.sh
#
# options processing
#
options="p:b:x:D:N:L:U:d:"
function usage()
{
cat <<EOF
usage:
$SCRIPT -p product -b branch -x executablepath -D directory -N profilename
[-L profiletemplate] [-U user] [-d datafiles]
variable description
=============== ============================================================
-p product required. firefox|thunderbird
-b branch required. 1.8.0|1.8.1|1.9.0
-x executablepath required. directory-tree containing executable 'product'
-D directory required. directory where profile is to be created.
-N profilename required. profile name
-L profiletemplate optional. location of a template profile to be used.
-U user optional. user.js preferences file.
-d datafiles optional. one or more filenames of files containing
environment variable definitions to be included.
note that the environment variables should have the same
names as in the "variable" column.
EOF
exit 1
}
unset product branch executablepath directory profilename profiletemplate user datafiles
while getopts $options optname ;
do
case $optname in
p) product=$OPTARG;;
b) branch=$OPTARG;;
x) executablepath=$OPTARG;;
D) directory=$OPTARG;;
N) profilename=$OPTARG;;
L) profiletemplate=$OPTARG;;
U) user=$OPTARG;;
d) datafiles=$OPTARG;;
esac
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$product" || -z "$branch" || -z "$executablepath" || \
-z "$directory" || -z "$profilename" ]]; then
usage
fi
if [[ "$product" != "firefox" && "$product" != "thunderbird" ]]; then
error "product \"$product\" must be one of firefox or thunderbird"
fi
if [[ "$branch" != "1.8.0" && "$branch" != "1.8.1" && "$branch" != "1.9.0" ]];
then
error "branch \"$branch\" must be one of 1.8.0, 1.8.1, 1.9.0"
fi
executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
error "get_executable $product $branch $executablepath returned empty path"
fi
if [[ ! -x "$executable" ]]; then
error "executable \"$executable\" is not executable"
fi
$TEST_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 _"
fi
if [ $OSID == "win32" ]; then
directoryospath=`cygpath -a -w $directory`
if [[ -z "$directoryospath" ]]; then
error "unable to convert unix path to windows path"
fi
else
directoryospath="$directory"
fi
echo "creating profile $profilename in directory $directory"
if ! $TEST_BIN/timed_run.py ${TEST_STARTUP_TIMEOUT} "-" $executable -CreateProfile "$profilename $directoryospath"; then
error "creating profile $directory"
fi
if [[ -n $profiletemplate ]]; then
if [[ ! -d $profiletemplate ]]; then
error "profile template directory $profiletemplate does not exist"
fi
echo "copying template profile $profiletemplate to $directory"
cp -R $profiletemplate/* $directory
fi
if [[ ! -z $user ]]; then
cp $user $directory/user.js
fi

132
testing/sisyphus/bin/download.sh Executable file
View File

@ -0,0 +1,132 @@
#!/usr/local/bin/bash -e
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2005.
# 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 *****
args=$@
script=`basename $0`
#
# options processing
#
options="u:c:f:t:d:"
function usage()
{
cat <<EOF
$SCRIPT $args
usage:
$SCRIPT -u url [-c credentials] -f filepath [-t timeout] [-d datafiles]
variable description
=============== ============================================================
-u url required. url to download build from
-c credentials optional. username:password
-f filepath required. path to filename to store downloaded file
-t timeout optional. timeout in seconds before download fails.
default 300 seconds
-d datafiles optional. one or more filenames of files containing
environment variable definitions to be included.
note that the environment variables should have the same
names as in the "variable" column.
downloads file from url with optional authentication credentials
saving the file to filepath. If the path to the file does not exist,
it is created. If the download takes longer than timeout seconds,
the download is cancelled.
EOF
exit 2
}
unset url credentials filepath timeout datafiles
while getopts $options optname ;
do
case $optname in
u) url=$OPTARG;;
c) credentials=$OPTARG;;
f) filepath=$OPTARG;;
t) timeout=$OPTARG;;
d) datafiles=$OPTARG;;
esac
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z $url || -z $filepath ]]
then
usage
fi
if [[ -n "$credentials" ]]; then
auth="--user $credentials"
fi
timeout=${timeout:-300}
path=`dirname $filepath`
if [[ -z "$path" ]]; then
echo "$SCRIPT: ERROR filepath path is empty"
exit 2
fi
echo "url=$url filepath=$filepath credentials=$credentials timeout=$timeout"
# curl options
# -S show error if failure
# -s silent mode
# -L follow 3XX redirections
# -m $timeout time out
# -D - dump headers to stdout
# --create-dirs create path if needed
if ! curl -LsS -m $timeout "$url" -D - --create-dirs -o $filepath $auth; then
echo "$SCRIPT: FAIL Unable to download $url"
exit 2
fi

View File

@ -0,0 +1,97 @@
#!/usr/bin/perl
# -*- 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) 2005
# 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 *****
use URI::Escape;
use lib "$ENV{HOME}/projects/mozilla.com/test.mozilla.com/www/bin/";
my $hook = shift @ARGV || usage("hook");
my $sitelist = shift @ARGV || usage("sitelist");
open SITES, "<$sitelist" || die "unable to open $sitelist\n";
my @sites = <SITES>;
close SITES;
my $site;
my $chromeurl;
my $testUrl;
print "<html><body>\n";
foreach $site (@sites)
{
chomp $site;
my $spider = "chrome://spider/content/spider.xul?" .
"depth=0&timeout=120&waittime=5&hooksignal=on&autostart=on&autoquit=on&javascripterrors=off&" .
"javascriptwarnings=off&chromeerrors=on&xblerrors=on&csserrors=off&" .
"scripturl=" .
uri_escape("http://" .
$ENV{TEST_HTTP} .
$hook) .
"&" .
"url=" . uri_escape(uri_escape($site));
print "<a href=\"$spider\">$site\</a><br>\n";
}
print "</html>\n";
sub usage
{
my $arg = shift @_;
print <<USAGE;
Error in $arg.
Usage: each-to-html.pl hook sitelist
Create an HTML page containing links to invoke Spider with the
appropriate URL and parameters.
hook - path to userhook script
sitelist - path to text file containing list of sites,
one to a line
USAGE
exit 2;
}
1;

View File

@ -0,0 +1,380 @@
#!/usr/bin/perl
# -*- 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) 2005
# 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 *****
use File::Basename;
use File::Copy;
use Cwd;
#my $DEBUG = 0;
#editTalkback("/tmp/test/firefox-1.5-nightly-opt/firefox/firefox", "talkbackid");
1;
sub editTalkback
{
my ($binary, $talkbackid) = @_;
my $rc;
my $signal;
my $home = $ENV{HOME};
my $os = undef;
my $ostype = "";
# prevent replacements due to & in urls
$talkbackid =~ s/&/\\&/g;
# 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 =~ /cygwin/i)
{
$os = "win32";
}
elsif ($ostype =~ /linux/i)
{
$os = "linux";
}
elsif ($ostype =~ /darwin/)
{
$os = "mac";
}
else
{
die "Unknown Operating System: $ostype";
}
if (!$binary)
{
die "binary argument missing";
}
if (! -f $binary)
{
die "$binary does not exist";
}
my $installpath = dirname($binary);
#print "installpath=$installpath\n";
if (! -d $installpath)
{
die "$installpath does not exist";
}
#
# edit talkback to automatically submit
#
my $talkback=1;
if ( -e "$installpath/extensions/talkback\@mozilla.org/components/master.ini")
{
chdir "$installpath/extensions/talkback\@mozilla.org/components/";
}
elsif ( -e "$installpath/extensions/talkback\@mozilla.org/components/talkback/master.ini")
{
chdir "$installpath/extensions/talkback\@mozilla.org/components/talkback/";
}
elsif ( -e "$installpath/components/master.ini")
{
chdir "$installpath/components";
}
else
{
#print "Talkback not installed.\n";
$talkback=0 ;
}
if ( $talkback == 1 )
{
# edit to automatically send talkback incidents
if ( -e "master.sed")
{
#print "talkback master.ini already edited\n";
}
else
{
#print "editing talkback master.ini in " . cwd() . "\n";
copy("/work/mozilla/mozilla.com/test.mozilla.com/www/bin/master.sed", "master.sed");
system(("sed", "-ibak", "-f", "master.sed", "master.ini"));
$rc = $? >> 8;
$signal = $? & 127;
$dumped = $? & 128;
if ($rc != 0)
{
die "non zero exitcode editing master.ini: $!";
}
if ($signal)
{
#print "signal $signal editing master.ini\n";
}
}
open MASTER, "master.ini" || die "unable to open master.ini: $!";
while (<MASTER>)
{
chomp $_;
if (/VendorID = "([^"]*)"/)
{
($vendorid) = $1;
}
elsif (/ProductID = "([^"]*)"/)
{
($productid) = $1;
}
elsif (/PlatformID = "([^"]*)"/)
{
($platformid) = $1;
}
elsif (/BuildID = "([^"]*)"/)
{
($buildid) = $1;
}
}
close MASTER;
if ("$DEBUG")
{
print "vendorid=$vendorid\n";
print "productid=$productid\n";
print "platformid=$platformid\n";
print "buildid=$buildid\n";
}
my $appdata;
if ($os eq "win32")
{
# get application data directory in windows format
$appdata = $ENV{APPDATA};
if (!$appdata)
{
die "Empty Windows Application Data directory\n";
}
open PATH, "cygpath -d \"$appdata\"|" || die "Unable to open cygpath: $!";
my $path = "";
while (<PATH>)
{
chomp;
$path .= $_;
}
close PATH;
$path =~ s/\\/\\\\/g;
if (!$path)
{
die "Unable to convert Windows Application Data directory to short format\n";
}
# convert application data directory to unix format
$appdata = "";
open PATH, "cygpath -u $path|" || die "unable to open cygpath: $!";
while (<PATH>)
{
chomp;
$appdata .= $_;
}
close PATH;
if (!$appdata)
{
die "Unix format Windows Application Data directory is empty\n";
}
$talkbackdir = "$appdata/Talkback";
}
elsif ($os eq "linux")
{
$talkbackdir="$home/.fullcircle";
}
elsif ($os eq "mac")
{
$talkbackdir="$home/Library/Application\ Support/FullCircle";
}
else
{
die "unknown os $os";
}
if ( ! -e "$talkbackdir" )
{
if (! mkdir "$talkbackdir", 755)
{
die "unable to create $talkbackdir\n: $!";
}
}
my $talkbackinidir;
if ($os eq "win32")
{
$talkbackinidir="$talkbackdir/$vendorid/$productid/$platformid/$buildid/";
if ( ! -e "$talkbackdir/$vendorid" )
{
if (! mkdir "$talkbackdir/$vendorid", 755)
{
die "unable to make $talkbackdir/$vendorid: $!";
}
}
if (! -e "$talkbackdir/$vendorid/$productid")
{
if (! mkdir "$talkbackdir/$vendorid/$productid", 755)
{
die "unable to make $talkbackdir/$vendorid/$productid: $!";
}
}
if (! -e "$talkbackdir/$vendorid")
{
if (! mkdir "$talkbackdir/$vendorid/$productid/$platformid", 755)
{
die "unable to make $talkbackdir/$vendorid/$productid/$platformid: $!";
}
}
if (! -e "$talkbackdir/$vendorid/$productid/$platformid")
{
if (! mkdir "$talkbackdir/$vendorid/$productid/$platformid", 755)
{
die "unable to make $talkbackdir/$vendorid/$productid/$platformid: $!";
}
}
if ( ! -e "$talkbackdir/$vendorid/$productid/$platformid/$buildid")
{
if (! mkdir "$talkbackdir/$vendorid/$productid/$platformid/$buildid", 755)
{
die "unable to make $talkbackdir/$vendorid/$productid/$platformid/$buildid: $!";
}
}
}
elsif ($os eq "linux")
{
$talkbackinidir="$talkbackdir/$vendorid$productid$platformid$buildid";
if (! -e "$talkbackdir/$vendorid$productid$platformid$buildid" )
{
if (! mkdir "$talkbackdir/$vendorid$productid$platformid$buildid", 755)
{
die "unable to make $talkbackdir/$vendorid$productid$platformid$buildid: $!";
}
}
}
elsif ($os eq "mac")
{
$talkbackinidir="$talkbackdir/$vendorid$productid$platformid$buildid";
if (! -e "$talkbackdir/$vendorid$productid$platformid$buildid" )
{
if (! mkdir "$talkbackdir/$vendorid$productid$platformid$buildid", 755)
{
die "unable to make $talkbackdir/$vendorid$productid$platformid$buildid: $!";
}
}
}
else
{
die "$os not supported yet";
}
if (! chdir $talkbackinidir)
{
die "unable to cd $talkbackinidir: $!";
}
if (!copy("/work/mozilla/mozilla.com/test.mozilla.com/www/talkback/$os/Talkback.ini", "Talkback.ini"))
{
die "unable to copy Talkback.ini: $!";
}
#print "patching Talkback.ini\n";
if ($os eq "win32")
{
$rc = system(("sed",
"-ibak",
"-e",
"s|URLEdit .*|URLEdit = \"mozqa:$talkbackid\"|",
"Talkback.ini")) & 0xffff;
if ($rc != 0)
{
die "unable to edit Talkback.ini: $!";
}
}
elsif ($os eq "linux")
{
$rc = system(("sed",
"-ibak",
"-e",
"s|URLEditControl .*|URLEditControl = \"mozqa:$talkbackid\"|",
"Talkback.ini")) & 0xffff;
if ($rc != 0)
{
die "unable to edit Talkback.ini: $!";
}
}
elsif ($os eq "mac")
{
$rc = system(("sed",
"-ibak",
"-e",
"s|URLEditControl .*|URLEditControl = \"mozqa:$talkbackid\"|",
"Talkback.ini")) & 0xffff;
if ($rc != 0)
{
die "unable to edit Talkback.ini: $!";
}
}
else
{
die "$os not supported yet";
}
}
}

View File

@ -0,0 +1,201 @@
#!/usr/local/bin/bash -e
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
source ${TEST_BIN}/library.sh
#
# options processing
#
options="p:b:x:i:d:"
function usage()
{
cat <<EOF
usage:
$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
-x executablepath required. directory-tree containing executable named
'product'
-i talkbackid required. identifier to add to talkback url
-d datafiles optional. one or more filenames of files containing
environment variable definitions to be included.
note that the environment variables should have the same
names as in the "variable" column.
EOF
exit 1
}
unset product branch executablepath talkbackid datafiles
while getopts $options optname ;
do
case $optname in
p) product=$OPTARG;;
b) branch=$OPTARG;;
x) executablepath=$OPTARG;;
i) talkbackid=$OPTARG;;
d) datafiles=$OPTARG;;
esac
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$product" || -z "$branch" || \
-z "$executablepath" || -z "$talkbackid" ]]; then
usage
fi
executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
error "get_executable $product $branch $executablepath returned empty path"
fi
if [[ ! -x "$executable" ]]; then
error "executable \"$executable\" is not executable"
fi
executablepath=`dirname $executable`
# escape & in talkback id to prevent replacements
talkbackid=`echo $talkbackid | sed 's@&@\\\\&@g'`
#
# edit talkback to automatically submit
#
talkback=1
if [[ -e "$executablepath/extensions/talkback@mozilla.org/components/master.ini" ]]; then
cd "$executablepath/extensions/talkback@mozilla.org/components/"
elif [[ -e "$executablepath/extensions/talkback@mozilla.org/components/talkback/master.ini" ]]; then
cd "$executablepath/extensions/talkback@mozilla.org/components/talkback/"
elif [[ -e "$executablepath/components/master.ini" ]]; then
cd "$executablepath/components"
else
# talkback not found
talkback=0
fi
if [[ $talkback -eq 1 ]]; then
# edit to automatically send talkback incidents
if [[ ! -e master.sed ]]; then
#echo "$0: editing talkback master.ini in `pwd`"
cp $TEST_BIN/master.sed .
sed -f master.sed -ibak master.ini
fi
if [[ "$OSID" == "mac" ]]; then
vendorid=`grep '^VendorID = "' master.ini | sed 's@VendorID = "\([^"]*\)"@\1@'`
productid=`grep '^ProductID = "' master.ini | sed 's@ProductID = "\([^"]*\)"@\1@'`
platformid=`grep '^PlatformID = "' master.ini | sed 's@PlatformID = "\([^"]*\)"@\1@'`
buildid=`grep '^BuildID = "' master.ini | sed 's@BuildID = "\([^"]*\)"@\1@'`
else
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@'`
buildid=`dos2unix < master.ini | grep '^BuildID = "' | sed 's@BuildID = "\([^"]*\)"@\1@'`
fi
case $OSID in
"win32")
appdata=`cygpath -a -d "$APPDATA"`
talkbackdir="`cygpath -a -u $appdata`/Talkback"
;;
"linux")
talkbackdir="$HOME/.fullcircle"
;;
"mac" )
# hack around Mac's use of spaces in directory names
talkbackdir="$HOME/Library/Application Support/FullCircle"
IFS=:
;;
*)
error "unknown os $OSID"
;;
esac
if [[ -z "$talkbackdir" ]]; then
error "empty talkback directory"
fi
mkdir -p "$talkbackdir"
case $OSID in
win32)
talkbackinidir="$talkbackdir/$vendorid/$productid/$platformid/$buildid"
;;
"linux" | "mac" )
talkbackinidir="$talkbackdir/$vendorid$productid$platformid$buildid"
;;
esac
if [[ ! -d "$talkbackinidir" ]]; then
create-directory.sh -d "$talkbackinidir" -n
fi
cd $talkbackinidir
cp /work/mozilla/mozilla.com/test.mozilla.com/www/talkback/$OSID/Talkback.ini .
case "$OSID" in
"win32")
sed -ibak "s@URLEdit .*@URLEdit = \"mozqa:$talkbackid\"@" Talkback.ini
;;
"linux" )
sed -ibak "s@URLEditControl .*@URLEditControl = \"mozqa:$talkbackid\"@" Talkback.ini
;;
"mac" )
sed -ibak "s@URLEditControl .*@URLEditControl = \"mozqa:$talkbackid\"@" Talkback.ini
;;
*)
error "unknown os=$OSID"
esac
fi

View File

@ -0,0 +1,11 @@
--- firefox 2005-08-18 06:28:49.000000000 -0700
+++ firefox.test 2005-08-18 19:39:34.813357354 -0700
@@ -178,7 +178,7 @@
then
echo $dist_bin/run-mozilla.sh $script_args $dist_bin/$MOZILLA_BIN "$@"
fi
-"$dist_bin/run-mozilla.sh" $script_args "$dist_bin/$MOZILLA_BIN" "$@"
+exec "$dist_bin/run-mozilla.sh" $script_args "$dist_bin/$MOZILLA_BIN" "$@"
exitcode=$?
## Stop addon scripts

View File

@ -0,0 +1,20 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Get Build Information</title>
<script type="text/javascript" src="quit.js"></script>
<script type="text/javascript" src="appinfo.js"></script>
</head>
<body>
<h1>Get Build Information</h1>
<script type="text/javascript">
var appInfoSource = (new AppInfo()).toSource();
document.write(appInfoSource);
dump(appInfoSource);
goQuitApplication();
</script>
</body>
</html>

View File

@ -0,0 +1,9 @@
#!/usr/bin/expect
spawn hdiutil attach $argv
expect {
"byte" {send "G"; exp_continue}
"Y/N" {send "Y\r"; exp_continue}
}

View File

@ -0,0 +1,9 @@
dashes = ----------
msg = @echo "$(1)": $(dashes) $(2) $(dashes)
prepend = sed 's/^/$(1): /'
html2text = lynx --dump $(1)
TEST_PROFILE?=TEST
dumpvars = echo TARGETS=$$targets && for var in `echo $${!TEST_*}`; do echo $${var}=$${!var}; done

View File

@ -0,0 +1,174 @@
#!/usr/local/bin/bash -e
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
source ${TEST_BIN}/library.sh
#
# options processing
#
options="p:b:x:f:d:"
function usage()
{
cat <<EOF
usage:
$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
-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
environment variable definitions to be included.
note that the environment variables should have the same
names as in the "variable" column.
EOF
exit 2
}
unset product branch executablepath filename datafiles
while getopts $options optname ;
do
case $optname in
p) product=$OPTARG;;
b) branch=$OPTARG;;
x) executablepath=$OPTARG;;
f) filename=$OPTARG;;
d) datafiles=$OPTARG;;
esac
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$product" || -z "$branch" || -z "$executablepath" || -z "$filename" ]]
then
usage
fi
${TEST_BIN}/uninstall-build.sh -p "$product" -b "$branch" -x "$executablepath"
${TEST_BIN}/create-directory.sh -d "$executablepath" -n
filetype=`file $filename`
if [[ $OSID == "win32" ]]; then
if echo $filetype | grep -iq windows; then
chmod u+x "$filename"
if [[ $branch == "1.8.0" ]]; then
$filename -ms -hideBanner -dd `cygpath -a -w "$executablepath"`
else
$filename /S /D=`cygpath -a -w "$executablepath"`
fi
elif echo $filetype | grep -iq 'zip archive'; then
unzip -o -d "$executablepath" "$filename"
else
error "$unknown file type $filetype"
fi
else
if [[ $OSID == "linux" ]]; then
if echo $filetype | grep -iq 'bzip2'; then
tar -jxvf $filename -C "$executablepath"
elif echo $filetype | grep -iq 'gzip'; then
tar -zxvf $filename -C "$executablepath"
else
error "unknown file type $filetype"
fi
elif [[ $OSID == "mac" ]]; then
# answer license prompt
result=`${TEST_BIN}/hdiutil-expect.ex $filename`
# now get the volume data
#result=`hdiutil attach $filename`
disk=`echo $result | sed 's@.*\(/dev/[^ ]*\).*/dev.*/dev.*@\1@'`
# remove the carriage return inserted by expect
volume=`echo $result | sed "s|[^a-zA-Z0-9/]||g" | sed 's@.*\(/Volumes/.*\)@\1@'`
echo "disk=$disk"
echo "volume=$volume"
if [[ -z "$disk" || -z "$volume" ]]; then
error "mounting disk image: $result"
fi
for app in $volume/*.app; do
cp -R $app $executablepath
done
hdiutil detach $disk
fi
#
# 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 directory"
fi
executabledir=`dirname $executable`
# patch to use exec to prevent forked processes
cd "$executabledir"
if [ -e "$product" ]; then
echo "$SCRIPT: patching $product"
cp $TEST_BIN/$product.diff .
patch -N -p0 < $product.diff
fi
if [ -e run-mozilla.sh ]; then
echo "$SCRIPT: patching run-mozilla.sh"
cp $TEST_BIN/run-mozilla.diff .
patch -N -p0 < run-mozilla.diff
fi
fi

View File

@ -0,0 +1,15 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Install Extensions - 1</title>
<script type="text/javascript" src="quit.js"></script>
</head>
<body>
<h1>Install Extensions - 1</h1>
<p>
First restart to install extensions...
</p>
<script type="text/javascript">
setTimeout("goQuitApplication()", 10000);
</script>
</body>
</html>

View File

@ -0,0 +1,15 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Install Extensions - 2</title>
<script type="text/javascript" src="quit.js"></script>
</head>
<body>
<h1>Install Extensions - 2</h1>
<p>
Second restart to install extensions...
</p>
<script type="text/javascript">
setTimeout("goQuitApplication()", 10000);
</script>
</body>
</html>

View File

@ -0,0 +1,166 @@
#!/usr/local/bin/bash -e
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2005.
# 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 *****
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
source ${TEST_BIN}/library.sh
echo "$SCRIPT $@"
#
# options processing
#
options="p:b:x:N:E:d:"
function usage()
{
cat <<EOF
usage:
$SCRIPT -p product -b branch -x executablepath -N profilename -E extensions
[-d datafiles]
variable description
=============== ============================================================
-p product required. firefox|thunderbird
-b branch required. 1.8.0|1.8.1|1.9.0
-x executablepath required. directory-tree containing executable named
'product'
-N profilename required. profile name
-E extensions required. path to directory containing xpis to be installed
-d datafiles optional. one or more filenames of files containing
environment variable definitions to be included.
note that the environment variables should have the same
names as in the "variable" column.
EOF
exit 1
}
unset product branch executablepath profilename extensions datafiles
while getopts $options optname ;
do
case $optname in
p) product=$OPTARG;;
b) branch=$OPTARG;;
x) executablepath=$OPTARG;;
N) profilename=$OPTARG;;
E) extensions=$OPTARG;;
d) datafiles=$OPTARG;;
esac
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$product" || -z "$branch" || \
-z "$executablepath" || -z "$profilename" || -z "$extensions" ]]; then
usage
fi
if [[ "$product" != "firefox" && "$product" != "thunderbird" ]]; then
error "product \"$product\" must be one of firefox or thunderbird"
fi
if [[ "$branch" != "1.8.0" && "$branch" != "1.8.1" && "$branch" != "1.9.0" ]];
then
error "branch \"$branch\" must be one of 1.8.0, 1.8.1, 1.9.0"
fi
executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
error "get_executable $product $branch $executablepath returned empty path"
fi
if [[ ! -x "$executable" ]]; then
error "executable \"$executable\" is not executable"
fi
if echo $profilename | egrep -qiv '[a-z0-9_]'; then
error "profile name must consist of letters, digits or _"
fi
for extension in $extensions/all/*; do
if [[ $extension == "$extensions/all/*" ]]; then
break
fi
if [[ "$OSID" == "win32" ]]; then
extensionos=`cygpath -a -w $extension`
else
extensionos="$extension"
fi
echo installing $extension
$TEST_BIN/timed_run.py ${TEST_STARTUP_TIMEOUT} "-" $executable -P $profilename -install-global-extension "$extensionos"
# there is no reliable method of determining if the install worked
# from the output or from the exit code.
done
for extension in $extensions/$OSID/*; do
if [[ $extension == "$extensions/$OSID/*" ]]; then
break
fi
if [[ "$OSID" == "win32" ]]; then
extensionos=`cygpath -a -w $extension`
else
extensionos="$extension"
fi
echo installing $extension
$TEST_BIN/timed_run.py ${TEST_STARTUP_TIMEOUT} "-" $executable -P $profilename -install-global-extension "$extensionos"
done
# restart twice to make extension manager happy
if ! $TEST_BIN/timed_run.py ${TEST_STARTUP_TIMEOUT} "install extensions - first restart" \
$executable -P $profilename "http://${TEST_HTTP}/bin/install-extensions-1.html"; then
echo "Ignoring 1st failure to load the install-extensions page"
fi
if ! $TEST_BIN/timed_run.py ${TEST_STARTUP_TIMEOUT} "install extensions - second restart" \
$executable -P $profilename "http://${TEST_HTTP}/bin/install-extensions-2.html"; then
echo "Ignoring 2nd failure to load the install-extensions page"
fi

View File

@ -0,0 +1,118 @@
#!/usr/local/bin/bash -e
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
source ${TEST_BIN}/library.sh
#
# options processing
#
options="p:b:x:D:d:"
function usage()
{
cat <<EOF
usage:
$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
-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
environment
variable definitions to be included.
note that the environment variables should have the same
names as in the "variable" column.
EOF
exit 1
}
unset product branch executablepath directory datafiles
while getopts $options optname ;
do
case $optname in
p) product=$OPTARG;;
b) branch=$OPTARG;;
x) executablepath=$OPTARG;;
D) directory=$OPTARG;;
d) datafiles=$OPTARG;;
esac
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$product" || -z "$branch" || \
-z "$executablepath" || -z "$directory" ]]; then
usage
fi
if [[ "$product" != "firefox" && "$product" != "thunderbird" ]]; then
error "product \"$product\" must be one of firefox or thunderbird"
fi
executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
error "get_executable $product $branch $executablepath returned empty path"
fi
if [[ ! -x "$executable" ]]; then
error "executable \"$executable\" is not executable"
fi
executablepath=`dirname $executable`
#
# install plugins and components
#
echo "$SCRIPT: installing plugins from $directory/ in $executablepath/"
cp -r "$directory/$OSID/" "$executablepath/"

167
testing/sisyphus/bin/library.sh Executable file
View File

@ -0,0 +1,167 @@
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
# This script contains a number of variables, functions, etc which
# are reused across a number of scripts. It should be included in each
# script as follows:
#
# TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
# TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
# source ${TEST_BIN}/library.sh
#
echo "calling $0 $@"
# export variables
set -a
# error message
# output error message end exit 2
error()
{
echo "error in script $SCRIPT: $1"
if [[ "$0" == "-bash" || "$0" == "bash" ]]; then
return 0
fi
exit 2
}
# get_executable product branch directory
# writes path to product executable to stdout
get_executable()
{
get_executable_product="$1"
get_executable_branch="$2"
get_executable_directory="$3"
if [[ -z "$get_executable_product" || \
-z "$get_executable_branch" || \
-z "$get_executable_directory" ]]; then
error "usage: get_executable product branch directory"
elif [[ ! -d "$get_executable_directory" ]]; then
error "get_executable: executable directory \"$get_executable_directory\" does not exist"
else
# 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}"
if [[ "$OSID" == "mac" ]]; then
get_executable_filter="Contents/MacOS/$get_executable_product"
if [[ "$get_executable_product" == "thunderbird" ]]; then
get_executable_name="$get_executable_product-bin"
fi
else
get_executable_filter="$get_executable_product"
fi
if find "$get_executable_directory" -perm +111 -type f \
-name "$get_executable_name" | \
grep "$get_executable_filter"; then
true
fi
fi
}
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
TEST_HTTP=${TEST_HTTP:-test.mozilla.com}
TEST_STARTUP_TIMEOUT=${TEST_STARTUP_TIMEOUT:-30}
# set path to make life easier
PATH=${TEST_DIR}/bin:$PATH
# make pipelines return exit code of intermediate steps
# requires bash 3.x
set -o pipefail
if [[ "$0" == "-bash" || "$0" == "bash" ]]; then
SCRIPT="library.sh"
else
SCRIPT=`basename $0`
fi
# save starting directory
STARTDIR=`pwd`
# change working directory to the location of the script.
SCRIPTDIR=`dirname $0`
cd $SCRIPTDIR
# set time format for pipeline timing reports
TIMEFORMAT="Elapsed time %0R seconds, User %0U seconds, System %0S seconds, CPU %P%%"
# don't attach to running instance
MOZ_NO_REMOTE=1
# don't restart
NO_EM_RESTART=1
# bypass profile manager
MOZ_BYPASS_PROFILE_AT_STARTUP=1
# ah crap handler timeout
MOZ_GDB_SLEEP=10
# no dialogs on asserts
XPCOM_DEBUG_BREAK=warn
#leak gauge
#NSPR_LOG_MODULES=DOMLeak:5,DocumentLeak:5,nsDocShellLeak:5
MALLOC_CHECK_=2
MACHINE=`uname -n`
ulimit -c 0
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

View File

@ -0,0 +1,3 @@
s/DisableDontAsk = 0/DisableDontAsk = 1/
s/DisableUI = 0/DisableUI = 1/
s/DisableWizard = 0/DisableWizard = 1/

143
testing/sisyphus/bin/quit.js Executable file
View File

@ -0,0 +1,143 @@
/* -*- Mode: C++; 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 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) 2005
* 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 ***** */
/*
From mozilla/toolkit/content
These files did not have a license
*/
function canQuitApplication()
{
var os = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
if (!os)
{
return true;
}
try
{
var cancelQuit = Components.classes["@mozilla.org/supports-PRBool;1"]
.createInstance(Components.interfaces.nsISupportsPRBool);
os.notifyObservers(cancelQuit, "quit-application-requested", null);
// Something aborted the quit process.
if (cancelQuit.data)
{
return false;
}
}
catch (ex)
{
}
os.notifyObservers(null, "quit-application-granted", null);
return true;
}
function goQuitApplication()
{
const privs = 'UniversalPreferencesRead UniversalPreferencesWrite ' +
'UniversalXPConnect';
try
{
netscape.security.PrivilegeManager.enablePrivilege(privs);
}
catch(ex)
{
throw('goQuitApplication: privilege failure ' + ex);
}
if (!canQuitApplication())
{
return false;
}
const kAppStartup = '@mozilla.org/toolkit/app-startup;1';
const kAppShell = '@mozilla.org/appshell/appShellService;1';
var appService;
var forceQuit;
if (kAppStartup in Components.classes)
{
appService = Components.classes[kAppStartup].
getService(Components.interfaces.nsIAppStartup);
forceQuit = Components.interfaces.nsIAppStartup.eForceQuit;
}
else if (kAppShell in Components.classes)
{
appService = Components.classes[kAppShell].
getService(Components.interfaces.nsIAppShellService);
forceQuit = Components.interfaces.nsIAppShellService.eForceQuit;
}
else
{
throw 'goQuitApplication: no AppStartup/appShell';
}
var windowManager = Components.
classes['@mozilla.org/appshell/window-mediator;1'].getService();
var windowManagerInterface = windowManager.
QueryInterface(Components.interfaces.nsIWindowMediator);
var enumerator = windowManagerInterface.getEnumerator(null);
while (enumerator.hasMoreElements())
{
var domWindow = enumerator.getNext();
if (("tryToClose" in domWindow) && !domWindow.tryToClose())
{
return false;
}
domWindow.close();
}
try
{
appService.quit(forceQuit);
}
catch(ex)
{
throw('goQuitApplication: ' + ex);
}
return true;
}

View File

@ -0,0 +1,11 @@
--- run-mozilla.sh 2004-04-18 10:17:09.000000000 -0400
+++ run-mozilla.sh.test 2005-08-18 22:27:42.906250000 -0400
@@ -163,7 +163,7 @@
##
## Run the program
##
- "$prog" ${1+"$@"}
+ exec "$prog" ${1+"$@"}
exitcode=$?
if [ "$DEBUG_CORE_FILES" ]
then

View File

@ -0,0 +1,6 @@
#!/usr/local/bin/bash -e
# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
for var in `echo ${!TEST_*}`; do
echo ${var}=${!var} >> $TEST_LOG
done

View File

@ -0,0 +1,226 @@
#!/usr/local/bin/bash
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
export BUILDDIR=/work/mozilla/builds
export SHELL=/usr/local/bin/bash
export CONFIG_SHELL=/usr/local/bin/bash
export CONFIGURE_ENV_ARGS=/usr/local/bin/bash
export MOZ_CVS_FLAGS="-z3 -q"
export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
export MOZILLA_OFFICIAL=1
export BUILD_OFFICIAL=1
#
# options processing
#
options="p:b:T:e:"
usage()
{
cat <<EOF
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]
-T buildtype [opt|debug]
-e extra extra qualifier to pick mozconfig and tree
EOF
}
myexit()
{
myexit_status=$1
case $0 in
*bash*)
# prevent "sourced" script calls from
# exiting the current shell.
break 99;;
*)
exit $myexit_status;;
esac
}
for step in step1; do # dummy loop for handling exits
unset product branch buildtype extra
while getopts $options optname ;
do
case $optname in
p) product=$OPTARG;;
b) branch=$OPTARG;;
T) buildtype=$OPTARG;;
e) extra=$OPTARG;;
esac
done
# echo product=$product, branch=$branch, buildtype=$buildtype, extra=$extra
if [[ -z "$product" || -z "$branch" || -z "$buildtype" ]]; then
echo -n "missing"
if [[ -z "$product" ]]; then
echo -n " -p product"
fi
if [[ -z "$branch" ]]; then
echo -n " -b branch"
fi
if [[ -z "$buildtype" ]]; then
echo -n " -T buildtype"
fi
usage
myexit 2
fi
if [[ $branch == "1.8.0" ]]; then
export BRANCH_CO_FLAGS="-r MOZILLA_1_8_0_BRANCH"
elif [[ $branch == "1.8.1" ]]; then
export BRANCH_CO_FLAGS="-r MOZILLA_1_8_BRANCH"
elif [[ $branch == "1.9.0" ]]; then
export BRANCH_CO_FLAGS="";
else
echo "Unknown branch: $branch"
myexit 2
fi
if [[ -n "$WINDIR" ]] ; then
OSID=win32
# app=bin
export platform=i686
if echo $branch | egrep -q '^1\.8'; then
export MOZ_TOOLS="/work/mozilla/moztools"
source /work/mozilla/mozilla.com/test.mozilla.com/www/bin/set-msvc6-env.sh
else
export MOZ_TOOLS="/work/mozilla/moztools-static"
source /work/mozilla/mozilla.com/test.mozilla.com/www/bin/set-msvc8-env.sh
fi
echo moztools Location: $MOZ_TOOLS
elif uname | grep -iq darwin ; then
OSID=mac
export platform=`uname -p`
# if [[ "$product" == "firefox" ]]; then
# app=Firefox
# elif [[ "$product" == "thunderbird" ]]; then
# app=Thunderbird
# else
# echo "Unsupported product: $product"
# myexit 2
# fi
# if [[ "$buildtype" == "debug" ]]; then
# app="${app}Debug"
# fi
# app="${app}.app"
# export APPBIN="$app/Content/MacOS"
else
OSID=linux
# export APPBIN=bin
export platform=i686
fi
if [[ -z $extra ]]; then
export TREE="$BUILDDIR/$branch"
else
export TREE="$BUILDDIR/$branch-$extra"
#
# extras can't be placed in mozconfigs since not all parts
# of the build system use mozconfig (e.g. js shell) and since
# the obj directory is not configurable for them as well thus
# requiring separate source trees
#
if [[ "$extra" == "too-much-gc" ]]; then
export XCFLAGS="-DWAY_TOO_MUCH_GC=1"
export CFLAGS="-DWAY_TOO_MUCH_GC=1"
export CXXFLAGS="-DWAY_TOO_MUCH_GC=1"
elif [[ "$extra" == "gcov" ]]; then
if [[ "$OSID" == "win32" ]]; then
echo "win32 does not support gcov"
myexit 2
fi
export CFLAGS="--coverage"
export CXXFLAGS="--coverage"
export XCFLAGS="--coverage"
export OS_CFLAGS="--coverage"
export LDFLAGS="--coverage"
export XLDOPTS="--coverage"
fi
fi
if [[ ! -d $TREE ]]; then
echo "Build directory $TREE does not exist"
myexit 2
fi
# here project refers to either browser or mail
# and is used to find mozilla/(browser|mail)/config/mozconfig
if [[ $product == "firefox" ]]; then
project=browser
export MOZCONFIG="$TREE/mozconfig-firefox-$OSID-$platform-$buildtype"
elif [[ $product == "thunderbird" ]]; then
project=mail
export MOZCONFIG="$TREE/mozconfig-thunderbird-$OSID-$platform-$buildtype"
else
echo "Assuming project=browser for product: $product"
project=browser
export MOZCONFIG="$TREE/mozconfig-firefox-$OSID-$platform-$buildtype"
fi
# js shell builds
if [[ $buildtype == "debug" ]]; then
unset BUILD_OPT
else
export BUILD_OPT=1
fi
if [[ $OSID == "mac" ]]; then
export JS_EDITLINE=1 # required for mac
fi
# end js shell builds
set | sed 's/^/environment: /'
echo "mozconfig: $MOZCONFIG"
cat $MOZCONFIG | sed 's/^/mozconfig: /'
done

View File

@ -0,0 +1,69 @@
# ***** 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
# Root of Visual Developer Studio Common files.
export VSCommonDir='C:\Program Files\Microsoft Visual Studio\Common'
export VSCommonDir_cyg=`cygpath -u "$VSCommonDir"`
# Root of Visual Developer Studio installed files.
export MSDevDir='C:\Program Files\Microsoft Visual Studio\Common\MSDev98'
export MSDevDir_cyg=`cygpath -u "$MSDevDir"`
# Root of Visual C++ installed files.
export MSVCDir='C:\Program Files\Microsoft Visual Studio\VC98'
export MSVCDir_cyg=`cygpath -u "$MSVCDir"`
# VcOsDir is used to help create either a Windows 95 or Windows NT specific path.
export VcOsDir=WIN95
if [[ "$OS" == "Windows_NT" ]]; then
export VcOsDir=WINNT
fi
echo Setting environment for using Microsoft Visual C++ tools.
if [[ "$OS" == "Windows_NT" ]]; then
export PATH="$MSDevDir_cyg/Bin":"$MSVCDir_cyg/Bin":"$VSCommonDir_cyg/Tools/$VcOsDir":"$VSCommonDir_cyg/Tools":"$MOZ_TOOLS/bin":"$PATH"
elif [[ "$OS" == "" ]]; then
export PATH="$MSDevDir_cyg/Bin":"MSVCDir_cyg/Bin":"$VSCommonDir_cyg/Tools/$VcOsDir":"$VSCommonDir_cyg/Tools":"$windir/SYSTEM":$MOZ_TOOLS/bin:"$PATH"
fi
export INCLUDE="$MSVCDir\\ATL\\Include;$MSVCDir\\Include;$MSVCDir\\MFC\\Include;$INCLUDE"
export LIB="$MSVCDir\\Lib;$MSVCDir\\MFC\\Lib;$LIB"
unset VcOsDir
unset VSCommonDir

View File

@ -0,0 +1,95 @@
# ***** 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
export VSINSTALLDIR='C:\Program Files\Microsoft Visual Studio 8'
export VS80COMNTOOLS='C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\'
export VCINSTALLDIR='C:\Program Files\Microsoft Visual Studio 8\VC'
export FrameworkDir='C:\WINDOWS\Microsoft.NET\Framework'
export FrameworkVersion='v2.0.50727'
export FrameworkSDKDir='C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0'
export VSINSTALLDIR_cyg="/cygdrive/c/Program Files/Microsoft Visual Studio 8"
export VCINSTALLDIR_cyg="/cygdrive/c/Program Files/Microsoft Visual Studio 8/VC"
export DevEnvDir="$VSINSTALLDIR\\Common7\\IDE"
export DevEnvDir_cyg="$VSINSTALLDIR_cyg/Common7/IDE"
export MSVCDir="$VCINSTALLDIR"
export MSVCDir_cyg="$VCINSTALLDIR_cyg"
if [ -d "$MSVCDir_cyg"/PlatformSDK ] ; then
export PlatformSDKDir="$MSVCDir"\\PlatformSDK
export PlatformSDKDir_cyg="$MSVCDir_cyg"/PlatformSDK
elif [ -d "/cygdrive/c/Program Files/Microsoft Platform SDK" ] ; then
export PlatformSDKDir='C:\Program Files\Microsoft Platform SDK'
export PlatformSDKDir_cyg='/cygdrive/c/Program Files/Microsoft Platform SDK'
else
echo Can\'t find Platform SDK\!
break 2
fi
echo Platform SDK Location: $PlatformSDKDir_cyg
if [ ! -f "$MOZ_TOOLS"/lib/libIDL-0.6_s.lib ] ; then
echo Can\'t find moztools\! Edit this file and check MOZ_TOOLS path.
fi
export PATH="\
$DevEnvDir_cyg:\
$PlatformSDKDir_cyg/bin:\
$MSVCDir_cyg/bin:\
$VSINSTALLDIR_cyg/Common7/Tools:\
$VSINSTALLDIR_cyg/Common7/Tools/bin:\
$MOZ_TOOLS/bin:\
$PATH"
export INCLUDE="\
$MSVCDir\ATLMFC\INCLUDE;\
$MSVCDir\INCLUDE;\
$PlatformSDKDir\include;\
$FrameworkSDKDir\include;\
$INCLUDE"
export LIB="\
$MSVCDir\ATLMFC\LIB;\
$MSVCDir\LIB;\
$PlatformSDKDir\lib;\
$FrameworkSDKDir\lib;\
$LIB"

View File

@ -0,0 +1,90 @@
#!/usr/local/bin/bash -e
# ***** 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
source ${TEST_BIN}/library.sh
if [[ -z "$1" ]]; then
echo smoke-build.sh directorypattern
exit 2
fi
for filepath in $@; do
echo $filepath
base=`basename $filepath`
version=`echo $base|sed 's/[^0-9.]*\([0-9]*\).*/\1/'`
product=`echo $base|sed 's/\([^-]*\)-.*/\1/'`
case $version in
1) branch=1.8.0;;
2) branch=1.8.1;;
3) branch=1.9.0;;
esac
echo $product $branch
install-build.sh -p "$product" -b "$branch" -x "/tmp/$product-$branch" \
-f "$filepath"
if [[ "$product" == "thunderbird" ]]; then
template="-L ${TEST_DIR}/profiles/imap"
else
unset template
fi
create-profile.sh -p "$product" -b "$branch" \
-x "/tmp/$product-$branch" \
-D "/tmp/$product-$branch-profile" -N "$product-$branch-profile" \
-U ${TEST_DIR}/prefs/test-user.js \
$template
install-extensions.sh -p "$product" -b "$branch" \
-x "/tmp/$product-$branch" \
-N "$product-$branch-profile" \
-E ${TEST_DIR}/xpi
check-spider.sh -p "$product" -b "$branch" \
-x "/tmp/$product-$branch" \
-N "$product-$branch-profile"
uninstall-build.sh -p "$product" -b "$branch" -x "/tmp/$product-$branch"
done

257
testing/sisyphus/bin/spider.pl Executable file
View File

@ -0,0 +1,257 @@
#!/usr/bin/perl
# -*- 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) 2005
# 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 *****
# make unbuffered
select STDERR; $| = 1;
select STDOUT; $| = 1;
my $TEST_BIN = $ENV{TEST_BIN} || "/work/mozilla/mozilla.com/test.mozilla.com/www/bin/";
use File::Temp qw/ tempfile tempdir /;
use File::Basename;
use Getopt::Mixed "nextOption";
use URI::Escape;
use Time::HiRes qw(sleep);
my $DEBUG = 0;
my $product = "";
my $executable = "";
my $profile = "";
my $url = "";
my $domain = "";
my $depth = 0;
my $timeout = 0;
my $wait = 0;
my $hook = "";
my $start = "off";
my $quit = "off";
my $robot = "off";
my $debug = "off";
my $jserrors = "off";
my $jswarnings = "off";
my $chromeerrors = "off";
my $xblerrors = "off";
my $csserrors = "off";
parse_options();
my $hookon = ($hook ? "on" : "off");
my $runtime = dirname($executable);
chdir $runtime or
die "spider.pl: unable to change directory to runtime $runtime";
my $chromeurl;
my $testUrl;
my $spider = "chrome://spider/content/spider.xul?" .
"domain=$domain&" .
"depth=$depth&" .
"timeout=$timeout" .
"&waittime=$wait&" .
"autostart=$start&" .
"autoquit=$quit&" .
"javascripterrors=$jserrors&" .
"javascriptwarnings=$jswarnings&" .
"chromeerrors=$chromeerrors&" .
"xblerrors=$xblerrors&" .
"csserrors=$csserrors&" .
"hooksignal=$hookon&" .
"url=" . uri_escape(uri_escape($url));
if ($hook)
{
$spider .= "&scripturl=" . uri_escape($hook);
}
my @args;
my $rc;
my $signal;
my $dumped;
if ($product eq "thunderbird")
{
@args = ($executable, "-P", $profile, $spider);
}
else
{
@args = ($executable, "-P", $profile, "-chrome", $spider);
}
system @args;
$rc = $? >> 8;
if ($rc == 99)
{
exit $rc;
}
sub usage
{
my $arg = shift @_;
my $value = shift @_;
print <<USAGE;
Error in $arg: $value
Usage: spider.pl --product=product --executable=exe --profile=profile --url=url --domain=domain --depth=depth --timeout=timeout --wait=wait --hook=hook
--start --quit --robot --debug --jserrors --jswarnings --chromeerrors --xblerrors --csserrors
Invoke Spider a set of urls.
product - firefox|thunderbird
exe - path to browser executable
profile - profile name
url - url to spider
domain - domain
depth - depth each url is to be spidered
timeout - time in seconds before Spider times out loading a page
wait - pause spider after each page
hook - url to Spider userhook script
start - auto start
quit - auto quit
robot - obey robots.txt
debug - spider debug
jserrors - javascript errors
jswarnings - javascript warnings
chromeerrors - chrome errors
xblerrors - xbl errors
csserrors - css errors
USAGE
exit(2);
}
sub parse_options {
my ($option_data, $option, $value, $lastop);
$option_data = 'product=s executable=s profile=s url=s domain=i depth=i timeout=i wait=i hook=s wait=i start quit robot debug jserrors jswarnings chromeerrors xblerrors csserrors';
Getopt::Mixed::init ($option_data);
$Getopt::Mixed::order = $Getopt::Mixed::RETURN_IN_ORDER;
$valgrind = 0;
while (($option, $value) = nextOption())
{
if ($option eq "product")
{
$product = $value;
}
elsif ($option eq "executable")
{
$executable = $value;
}
elsif ($option eq "profile")
{
$profile = $value;
}
elsif ($option eq "url")
{
$url = $value;
}
elsif ($option eq "domain")
{
$domain = $value;
}
elsif ($option eq "depth")
{
$depth = $value;
}
elsif ($option eq "timeout")
{
$timeout = $value;
}
elsif ($option eq "wait")
{
$wait = $value;
}
elsif ($option eq "hook")
{
$hook = $value;
}
elsif ($option eq "start")
{
$start = "on";
}
elsif ($option eq "quit")
{
$quit = "on";
}
elsif ($option eq "robot")
{
$robot = "on";
}
elsif ($option eq "debug")
{
$debug = "on";
}
elsif ($option eq "jserrors")
{
$jserrors = "on";
}
elsif ($option eq "jswarnings")
{
$jswarnings = "on";
}
elsif ($option eq "chromeerrors")
{
$chromeerrors = "on";
}
elsif ($option eq "xblerrors")
{
$xblerrors = "on";
}
elsif ($option eq "csserrors")
{
$csserrors = "on";
}
$lastopt = $option;
}
Getopt::Mixed::cleanup();
if ($product ne "firefox" && $product ne "thunderbird")
{
usage("product", $product);
}
}
1;

View File

@ -0,0 +1,11 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Start Spider</title>
</head>
<body>
<h1>Start Spider</h1>
<p>
Initialize Spider...
</p>
</body>
</html>

View File

@ -0,0 +1,252 @@
#!/usr/local/bin/bash -e
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
source ${TEST_BIN}/library.sh
#
# options processing
#
options="p:b:u:f:c:B:T:x:N:D:L:U:E:d:"
function usage()
{
cat<<EOF
usage:
$SCRIPT -p product -b branch
[-u url [-f filepath] [-c credentials]]
[-B buildcommands -T buildtype]
[-x executablepath]
[-N profilename [-D profiledirectory [-L profiletemplate
[-U userpreferences]]]]
[-E extensiondir]
[-d datafiles]
variable description
=============== ===========================================================
-p product required. one of firefox thunderbird
-b branch required. one of 1.8.0 1.8.1 1.9.0
-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
default will be the basename of the url saved to the
/tmp directory. If there is no basename, then the
filepath will be /tmp/\$product-\$branch-file.
-B buildcommands optional. one or more of clean checkout build
-T buildtype optional. one of opt debug
-x executablepath optional. directory tree containing executable with same
name as product. If the build is downloaded and executable
path is not specified, it will be defaulted to
/tmp/\$product-\$branch.
For cvs builds it will be defaulted to the appropriate
directory in
/work/mozilla/builds/\$branch/mozilla/\$product-\$buildtype/
-N profilename optional. profilename. profilename is required if
profiledirectory or extensiondir are specified.
-D profiledirectory optional. If profiledirectory is specified, a new profile
will be created in the directory.
-L profiletemplate optional. If a new profile is created, profiletemplate is
the path to an existing profile which will be copied over
the new profile.
-U userpreferences optional. If a new profile is created, userpreferences is
the path to a user.js file to be copied into the new
profile.
If userpreferences is not specified when a new profile is
created, it is defaulted to
/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
-E extensiondir optional. path to directory tree containing extensions to
be installed.
-d datafiles optional. one or more filenames of files containing
environment variable definitions to be included.
note that the environment variables should have the same
names as in the "variable" column.
EOF
exit 2
}
unset product branch url filepath credentials buildcommands buildtype executablepath profilename profiledirectory profiletemplate userpreferences extenstiondir datafiles
while getopts $options optname ;
do
case $optname in
p) product="$OPTARG";;
b) branch="$OPTARG";;
u) url="$OPTARG";;
f) filepath="$OPTARG";;
c) credentials="$OPTARG";;
B) buildcommands="$OPTARG";;
T) buildtype="$OPTARG";;
x) executablepath="$OPTARG";;
N) profilename="$OPTARG";;
D) profiledirectory="$OPTARG";;
L) profiletemplate="$OPTARG";;
U) userpreferences="$OPTARG";;
E) extensiondir="$OPTARG";;
d) datafiles="$OPTARG";;
esac
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$product" || -z "$branch" ]]; then
echo "product and branch are required"
usage
fi
if [[ ( -n "$url" || -n "$filepath" ) && ( -n "$buildcommands" ) ]]; then
echo "you can not both download and build cvs builds at the same time"
usage
fi
if [[ -n "$buildcommands" && -n "$executablepath" ]]; then
echo "You can not specify the executable path and build cvs builds at the same time"
usage
fi
if [[ (-n "$profiledirectory" || -n "$extensiondir" ) && -z "$profilename" ]]; then
echo "You must specify a profilename if you specify a profiledirectory or extensiondir"
usage
fi
# if the url is specified but not the filepath
# generate a default path where to save the
# downloaded build.
if [[ -n "$url" && -z "$filepath" ]]; then
filepath=`basename $url`
if [[ -z "$filepath" ]]; then
filepath="$product-$branch-file"
fi
filepath="/tmp/$filepath"
fi
if [[ -n "$url" ]]; then
download.sh -u "$url" -c "$credentials" -f "$filepath" -t "$TEST_DOWNLOAD_TIMEOUT"
fi
# install the build at the specified filepath
if [[ -n "$filepath" ]]; then
if [[ -z "$executablepath" ]]; then
executablepath="/tmp/$product-$branch"
fi
install-build.sh -p $product -b $branch -x $executablepath -f $filepath
fi
if [[ -n "$buildcommands" ]]; then
if [[ -z "$buildtype" ]]; then
echo "You must specify a buildtype if you are building from cvs"
usage
elif [[ "$buildtype" != "opt" && "$buildtype" != "debug" ]]; then
echo "buildtype must be one of opt debug"
usage
fi
if [[ "$OSID" == "mac" ]]; then
if [[ "$product" == "firefox" ]]; then
App=Firefox
elif [[ "$product" == "thunderbird" ]]; then
App=Thunderbird
fi
if [[ "$buildtype" == "debug" ]]; then
AppType=Debug
fi
executablepath="/work/mozilla/builds/$branch/mozilla/$product-$buildtype/dist/$App$AppType.app/Contents/MacOS"
else
executablepath="/work/mozilla/builds/$branch/mozilla/$product/$buildtype/dist/bin"
fi
if echo "$buildcommands" | grep -iq clean; then
clean.sh -p $product -b $branch -t $buildtype
fi
if echo "$buildcommands" | grep -iq checkout; then
checkout.sh -p $product -b $branch -t $buildtype
fi
if echo "$buildcommands" | grep -iq build; then
build.sh -p $product -b $branch -t $buildtype
fi
fi
if [[ -n "$profiledirectory" ]]; then
if [[ -z "$userpreferences" ]]; then
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
fi
unset optargs
if [[ -n "$profiletemplate" ]]; then
optargs="$optargs -L $profiletemplate"
fi
if [[ -n "$userpreferences" ]]; then
optargs="$optargs -U $userpreferences"
fi
create-profile.sh -p $product -b $branch \
-x $executablepath -D $profiledirectory -N $profilename \
$optargs
fi
if [[ -n "$extensiondir" ]]; then
install-extensions.sh -p $product -b $branch \
-x $executablepath -N $profilename -E $extensiondir
check-spider.sh -p $product -b $branch \
-x $executablepath -N $profilename
fi

107
testing/sisyphus/bin/tester.sh Executable file
View File

@ -0,0 +1,107 @@
#!/usr/local/bin/bash
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
source ${TEST_BIN}/library.sh
TEST_LOG=/dev/null
#trap 'echo -e "\n*** ERROR ***\n\b" && tail $TEST_LOG' ERR
#
# options processing
#
options="p:b:e:T:t:"
function usage()
{
cat<<EOF
usage:
$SCRIPT -t testscript datalist1 [datalist2 [datalist3 [datalist4]]]
variable description
=============== ===========================================================
-t testscript required. quoted test script with required arguments.
executes the testscript using the input data files in
$TEST_DIR/data constructed from each
combination of the input parameters:
{item1},{item2},{item3},{item4}
EOF
exit 2
}
unset testscript testargs
while getopts $options optname ;
do
case $optname in
t)
testscript="$OPTARG"
if echo $testscript | grep -iq ' ' ; then
testargs=`echo $testscript | sed 's|\([^ ]*\) \+\(.*\)|\2|'`
testscript=`echo $testscript | sed 's|\( .*\)||'`
fi
;;
esac
done
if [[ -z "$testscript" ]]; then
usage
fi
shift 2
datalist=`combo.sh "$@"`
TEST_ID=`dirname $testscript | sed "s|$TEST_DIR/||" | sed "s|/|_|g"`
for data in $datalist; do
TEST_DATE=`date -u +%Y-%m-%d-%H-%M-%S``date +%z`
TEST_LOG="${TEST_DIR}/results/${TEST_DATE},$data,$OSID,${MACHINE},$TEST_ID.log"
echo "writing results to $TEST_LOG"
test-setup.sh -d $TEST_DIR/data/$data.data >> $TEST_LOG 2>&1
$testscript $testargs -d $TEST_DIR/data/$data.data >> $TEST_LOG 2>&1
done

View File

@ -0,0 +1,11 @@
--- thunderbird 2006-03-08 07:04:19.000000000 -0500
+++ thunderbird.new 2006-04-20 14:14:41.864224000 -0400
@@ -179,7 +179,7 @@
then
echo $dist_bin/run-mozilla.sh $script_args $dist_bin/$MOZILLA_BIN "$@"
fi
-"$dist_bin/run-mozilla.sh" $script_args "$dist_bin/$MOZILLA_BIN" "$@"
+exec "$dist_bin/run-mozilla.sh" $script_args "$dist_bin/$MOZILLA_BIN" "$@"
exitcode=$?
## Stop addon scripts

114
testing/sisyphus/bin/timed_run.py Executable file
View File

@ -0,0 +1,114 @@
#!/usr/bin/python -u
# ***** 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Foundation.
# Portions created by the Initial Developer are Copyright (C) 2004
# the Initial Developer. All Rights Reserved.
#
# Contributor(s): Chris Cooper
#
# 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 *****
# Usage: timed_run timeout prefix command args
import os, signal, sys, time
#
# returns exit code as follows:
#
exitOSError = 66
exitSignal = 77
exitTimeout = 88
exitInterrupt = 99
pid = None
prefix = sys.argv[2]
elapsedtime = 0
if prefix == "-":
prefix = ''
else:
prefix = prefix + ':'
def alarm_handler(signum, frame):
global pid
global prefix
try:
print "%s EXIT STATUS: TIMED OUT (%s seconds)" % (prefix, sys.argv[1])
os.kill(pid, signal.SIGKILL)
except:
pass
sys.exit(exitTimeout)
def forkexec(command, args):
global prefix
global elapsedtime
#print command
#print args
try:
pid = os.fork()
if pid == 0: # Child
os.execvp(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)
sys.exit(exitOSError)
signal.signal(signal.SIGALRM, alarm_handler)
signal.alarm(int(sys.argv[1]))
starttime = time.time()
try:
pid = forkexec(sys.argv[3], sys.argv[3:])
status = os.waitpid(pid, 0)[1]
signal.alarm(0) # Cancel the alarm
stoptime = time.time()
elapsedtime = stoptime - starttime
if os.WIFEXITED(status):
rc = os.WEXITSTATUS(status)
msg = ''
if rc == 0:
msg = 'NORMAL'
elif rc < 3:
msg = 'ABNORMAL ' + str(rc)
rc = exitSignal
else:
msg = 'CRASHED ' + str(rc)
rc = exitSignal
print "%s EXIT STATUS: %s (%f seconds)" % (prefix, msg, elapsedtime)
sys.exit(rc)
elif os.WIFSIGNALED(status):
print "%s EXIT STATUS: CRASHED signal %d (%f seconds)" % (prefix, os.WTERMSIG(status), elapsedtime)
sys.exit(exitSignal)
else:
print "%s EXIT STATUS: NONE (%f seconds)" % (prefix, elapsedtime)
sys.exit(0)
except KeyboardInterrupt:
os.kill(pid, 9)
sys.exit(exitInterrupt)

View File

@ -0,0 +1,163 @@
#!/usr/local/bin/bash -e
# -*- Mode: Shell-script; 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.org code.
#
# The Initial Developer of the Original Code is
# Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2006.
# 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 *****
TEST_DIR=${TEST_DIR:-/work/mozilla/mozilla.com/test.mozilla.com/www}
TEST_BIN=${TEST_BIN:-$TEST_DIR/bin}
source ${TEST_BIN}/library.sh
#
# options processing
#
options="p:b:x:d:"
function usage()
{
cat <<EOF
usage:
$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
-x executablepath required. directory where build is installed
-d datafiles optional. one or more filenames of files containing
environment variable definitions to be included.
note that the environment variables should have the same
names as in the "variable" column.
Uninstalls build located in directory-tree 'executablepath'
then removes the directory upon completion.
EOF
exit 1
}
unset product branch executablepath datafiles
while getopts $options optname ;
do
case $optname in
p) product=$OPTARG;;
b) branch=$OPTARG;;
x) executablepath=$OPTARG;;
d) datafiles=$OPTARG;;
esac
done
# include environment variables
if [[ -n "$datafiles" ]]; then
for datafile in $datafiles; do
cat $datafile | sed 's|^|data: |'
source $datafile
done
fi
if [[ -z "$product" || -z "$branch" || -z "$executablepath" ]]
then
usage
fi
if [[ ! -d "$executablepath" ]]; then
exit 0
fi
executable=`get_executable $product $branch $executablepath`
if [[ -z "$executable" ]]; then
exit 0
fi
executabledir=`dirname $executable`
if [[ $OSID == "win32" ]]; then
# see http://nsis.sourceforge.net/Docs/Chapter3.html
# if the directory already exists, attempt to uninstall
# any existing installation.
if [[ -d "$executabledir/uninstall" ]]; then
if [[ $branch == "1.8.0" ]]; then
uninstallexe="$executabledir/uninstall/uninstall.exe"
uninstallini="$executabledir/uninstall/uninstall.ini"
if [[ -n "$uninstallexe" && -e "$uninstallexe" ]]; then
if sed -i.bak 's/Run Mode=Normal/Run Mode=Silent/' $uninstallini;
then
# uninstall.exe will return non zero exit codes
# for no damn reason.
if $uninstallexe; then
true
fi
fi
fi
elif [[ $branch == "1.8.1" || $branch == "1.9.0" ]]; then
uninstalloldexe="$executabledir/uninstall/uninst.exe"
uninstallnewexe="$executabledir/uninstall/helper.exe"
if [[ -n "$uninstallnewexe" && -e "$uninstallnewexe" ]]; then
$uninstallnewexe /S /D=`cygpath -a -w $executabledir | sed 's@\\\\@\\\\\\\\@g'`
elif [[ -n "$uninstalloldexe" && -e "$uninstalloldexe" ]]; then
$uninstalloldexe /S /D=`cygpath -a -w $executabledir | sed 's@\\\\@\\\\\\\\@g'`
else
uninstallexe="$executabledir/$product/uninstall/uninstaller.exe"
if [[ -n "$uninstallexe" && -e "$uninstallexe" ]]; then
$uninstallexe /S /D=`cygpath -a -w "$executabledir" | sed 's@\\\\@\\\\\\\\@g'`
fi
fi
else
error "Unknown branch $branch"
fi
# the NSIS uninstaller will copy itself, then fork to the new
# copy so that it can delete itself. This causes a race condition
# between the uninstaller deleting the files and the rm command below
# sleep for 10 seconds to give the uninstaller time to complete before
# the installation directory is removed.
sleep 10
fi
fi
# safely creates/deletes a directory. If we pass this,
# then we know it is safe to remove the directory.
${TEST_BIN}/create-directory.sh -d "$executablepath" -n
rm -fR "$executablepath"

View File

@ -0,0 +1,65 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** 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 JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2006
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Bob Clary
*
* 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 ***** */
/*
* Spider hook function to check if spider is working.
*/
function userOnStart()
{
}
function userOnBeforePage()
{
}
function userOnAfterPage()
{
gPageCompleted = true;
}
function userOnStop()
{
}
gConsoleListener.onConsoleMessage =
function userOnConsoleMessage(s)
{
dump(s);
};

View File

@ -0,0 +1,12 @@
allurl=http://stage.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.3/linux-i686/en-US/firefox-2.0.0.3.tar.gz
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=ftp

View File

@ -0,0 +1,12 @@
allurl=http://stage.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.3/mac/en-US/Firefox%202.0.0.3.dmg
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=ftp

View File

@ -0,0 +1,12 @@
allurl=http://stage.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.3/win32/en-US/Firefox%20Setup%202.0.0.3.exe
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=ftp

View File

@ -0,0 +1,12 @@
allurl=http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/2.0.0.4-candidates/rc2/
product=firefox
branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.3/linux-i686/en-US/firefox-2.0.0.3.tar.gz
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=ftp

View File

@ -0,0 +1,12 @@
allurl=http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/2.0.0.4-candidates/rc2/
product=firefox
branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.3/mac/en-US/Firefox%202.0.0.3.dmg
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=ftp

View File

@ -0,0 +1,12 @@
allurl=http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/2.0.0.4-candidates/rc2/
product=firefox
branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.3/win32/en-US/Firefox%20Setup%202.0.0.3.exe
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=ftp

View File

@ -0,0 +1,12 @@
allurl=http://khan.landfill.bugzilla.org/en-US/firefox/all.html
product=firefox
branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.3/linux-i686/en-US/firefox-2.0.0.3.tar.gz
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=all

View File

@ -0,0 +1,12 @@
allurl=http://khan.landfill.bugzilla.org/en-US/firefox/all.html
product=firefox
branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.3/mac/en-US/Firefox%202.0.0.3.dmg
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=all

View File

@ -0,0 +1,12 @@
allurl=http://khan.landfill.bugzilla.org/en-US/firefox/all.html
product=firefox
branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.3/win32/en-US/Firefox%20Setup%202.0.0.3.exe
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=all

View File

@ -0,0 +1,12 @@
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.3/linux-i686/en-US/firefox-2.0.0.3.tar.gz
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=all

View File

@ -0,0 +1,12 @@
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.3/mac/en-US/Firefox%202.0.0.3.dmg
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=all

View File

@ -0,0 +1,12 @@
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.3/win32/en-US/Firefox%20Setup%202.0.0.3.exe
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=all

View File

@ -0,0 +1,12 @@
allurl=http://stage.mozilla.org/pub/mozilla.org/thunderbird/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.3/linux-i686/en-US/firefox-2.0.0.3.tar.gz
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=ftp

View File

@ -0,0 +1,12 @@
allurl=http://stage.mozilla.org/pub/mozilla.org/thunderbird/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.3/mac/en-US/Firefox%202.0.0.3.dmg
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=ftp

View File

@ -0,0 +1,12 @@
allurl=http://stage.mozilla.org/pub/mozilla.org/thunderbird/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.3/win32/en-US/Firefox%20Setup%202.0.0.3.exe
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=ftp

View File

@ -0,0 +1,12 @@
allurl=http://stage.mozilla.org/pub/mozilla.org/thunderbird/nightly/2.0.0.4-candidates/rc2/
product=firefox
branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.3/linux-i686/en-US/firefox-2.0.0.3.tar.gz
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=ftp

View File

@ -0,0 +1,12 @@
allurl=http://stage.mozilla.org/pub/mozilla.org/thunderbird/nightly/2.0.0.4-candidates/rc2/
product=firefox
branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.3/mac/en-US/Firefox%202.0.0.3.dmg
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=ftp

View File

@ -0,0 +1,12 @@
allurl=http://stage.mozilla.org/pub/mozilla.org/firefox/thunderbird/2.0.0.4-candidates/rc2/
product=firefox
branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.3/win32/en-US/Firefox%20Setup%202.0.0.3.exe
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=ftp

View File

@ -0,0 +1,12 @@
allurl=http://khan.landfill.bugzilla.org/en-US/thunderbird/all.html
product=firefox
branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.3/linux-i686/en-US/firefox-2.0.0.3.tar.gz
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=all

View File

@ -0,0 +1,12 @@
allurl=http://khan.landfill.bugzilla.org/en-US/thunderbird/all.html
product=firefox
branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.3/mac/en-US/Firefox%202.0.0.3.dmg
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=all

View File

@ -0,0 +1,12 @@
allurl=http://khan.landfill.bugzilla.org/en-US/thunderbird/all.html
product=firefox
branch=1.8.1
url=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.3/win32/en-US/Firefox%20Setup%202.0.0.3.exe
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=all

View File

@ -0,0 +1,12 @@
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.3/linux-i686/en-US/firefox-2.0.0.3.tar.gz
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=all

View File

@ -0,0 +1,12 @@
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.3/mac/en-US/Firefox%202.0.0.3.dmg
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=all

View File

@ -0,0 +1,12 @@
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.3/win32/en-US/Firefox%20Setup%202.0.0.3.exe
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
test=all

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.8.0
profilename=firefox-1.8.0-profile
profiledirectory=/tmp/firefox-1.8.0-profile
executablepath=/work/mozilla/builds/1.8.0/mozilla/firefox-debug/dist
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,10 @@
product=firefox
branch=1.8.0
url=http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla1.8.0/firefox-1.5.0.12pre.en-US.linux-i686.tar.gz
profilename=firefox-1.8.0-profile
profiledirectory=/tmp/firefox-1.8.0-profile
executablepath=/tmp/firefox-1.8.0
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,10 @@
product=firefox
branch=1.8.0
url=http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla1.8.0/firefox-1.5.0.12pre.en-US.mac.dmg
profilename=firefox-1.8.0-profile
profiledirectory=/tmp/firefox-1.8.0-profile
executablepath=/tmp/firefox-1.8.0
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,10 @@
product=firefox
branch=1.8.0
url=http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla1.8.0/firefox-1.5.0.12pre.en-US.win32.zip
profilename=firefox-1.8.0-profile
profiledirectory=/tmp/firefox-1.8.0-profile
executablepath=/tmp/firefox-1.8.0
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.8.0
profilename=firefox-1.8.0-profile
profiledirectory=/tmp/firefox-1.8.0-profile
executablepath=/work/mozilla/builds/1.8.0/mozilla/firefox-opt/dist
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.8.0
profilename=firefox-1.8.0-test-profile
profiledirectory=/tmp/firefox-1.8.0-test-profile
executablepath=/work/mozilla/builds/1.8.0-test/mozilla/firefox-debug/dist
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.8.0
profilename=firefox-1.8.0-test-profile
profiledirectory=/tmp/firefox-1.8.0-test-profile
executablepath=/work/mozilla/builds/1.8.0-test/mozilla/firefox-opt/dist
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.8.1
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/work/mozilla/builds/1.8.1/mozilla/firefox-debug/dist
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,10 @@
product=firefox
branch=1.8.1
url=http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla1.8/firefox-2.0.0.4pre.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
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,10 @@
product=firefox
branch=1.8.1
url=http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla1.8/firefox-2.0.0.4pre.en-US.mac.dmg
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,10 @@
product=firefox
branch=1.8.1
url=http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla1.8/firefox-2.0.0.4pre.en-US.win32.zip
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/tmp/firefox-1.8.1
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.8.1
profilename=firefox-1.8.1-profile
profiledirectory=/tmp/firefox-1.8.1-profile
executablepath=/work/mozilla/builds/1.8.1/mozilla/firefox-opt/dist
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.8.1
profilename=firefox-1.8.1-test-profile
profiledirectory=/tmp/firefox-1.8.1-test-profile
executablepath=/work/mozilla/builds/1.8.1-test/mozilla/firefox-debug/dist
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.8.1
profilename=firefox-1.8.1-test-profile
profiledirectory=/tmp/firefox-1.8.1-test-profile
executablepath=/work/mozilla/builds/1.8.1-test/mozilla/firefox-opt/dist
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.0
profilename=firefox-1.9.0-profile
profiledirectory=/tmp/firefox-1.9.0-profile
executablepath=/work/mozilla/builds/1.9.0/mozilla/firefox-debug/dist
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,10 @@
product=firefox
branch=1.9.0
url=http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.0a5pre.en-US.linux-i686.tar.bz2
profilename=firefox-1.9.0-profile
profiledirectory=/tmp/firefox-1.9.0-profile
executablepath=/tmp/firefox-1.9.0
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,10 @@
product=firefox
branch=1.9.0
url=http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.0a5pre.en-US.mac.dmg
profilename=firefox-1.9.0-profile
profiledirectory=/tmp/firefox-1.9.0-profile
executablepath=/tmp/firefox-1.9.0
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,10 @@
product=firefox
branch=1.9.0
url=http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.0a5pre.en-US.win32.zip
profilename=firefox-1.9.0-profile
profiledirectory=/tmp/firefox-1.9.0-profile
executablepath=/tmp/firefox-1.9.0
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.0
profilename=firefox-1.9.0-profile
profiledirectory=/tmp/firefox-1.9.0-profile
executablepath=/work/mozilla/builds/1.9.0/mozilla/firefox-opt/dist
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.0
profilename=firefox-1.9.0-test-profile
profiledirectory=/tmp/firefox-1.9.0-test-profile
executablepath=/work/mozilla/builds/1.9.0-test/mozilla/firefox-debug/dist
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,9 @@
product=firefox
branch=1.9.0
profilename=firefox-1.9.0-test-profile
profiledirectory=/tmp/firefox-1.9.0-test-profile
executablepath=/work/mozilla/builds/1.9.0-test/mozilla/firefox-opt/dist
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi

View File

@ -0,0 +1,6 @@
product=js
branch=1.8.0
sourcepath=/work/mozilla/builds/1.8.0/mozilla/js/src
buildtype=debug

View File

@ -0,0 +1,6 @@
product=js
branch=1.8.0
sourcepath=/work/mozilla/builds/1.8.0/mozilla/js/src
buildtype=opt

View File

@ -0,0 +1,6 @@
product=js
branch=1.8.0
sourcepath=/work/mozilla/builds/1.8.0-test/mozilla/js/src
buildtype=debug

View File

@ -0,0 +1,6 @@
product=js
branch=1.8.0
sourcepath=/work/mozilla/builds/1.8.0-test/mozilla/js/src
buildtype=opt

View File

@ -0,0 +1,6 @@
product=js
branch=1.8.1
sourcepath=/work/mozilla/builds/1.8.1/mozilla/js/src
buildtype=debug

View File

@ -0,0 +1,7 @@
product=js
branch=1.8.1
sourcepath=/work/mozilla/builds/1.8.1/mozilla/js/src
buildtype=opt

View File

@ -0,0 +1,6 @@
product=js
branch=1.8.1
sourcepath=/work/mozilla/builds/1.8.1-test/mozilla/js/src
buildtype=debug

View File

@ -0,0 +1,7 @@
product=js
branch=1.8.1
sourcepath=/work/mozilla/builds/1.8.1-test/mozilla/js/src
buildtype=opt

View File

@ -0,0 +1,6 @@
product=js
branch=1.9.0
sourcepath=/work/mozilla/builds/1.9.0/mozilla/js/src
buildtype=debug

View File

@ -0,0 +1,6 @@
product=js
branch=1.9.0
sourcepath=/work/mozilla/builds/1.9.0/mozilla/js/src
buildtype=opt

View File

@ -0,0 +1,6 @@
product=js
branch=1.9.0
sourcepath=/work/mozilla/builds/1.9.0-test/mozilla/js/src
buildtype=debug

View File

@ -0,0 +1,6 @@
product=js
branch=1.9.0
sourcepath=/work/mozilla/builds/1.9.0-test/mozilla/js/src
buildtype=opt

View File

@ -0,0 +1,10 @@
product=thunderbird
branch=1.8.0
profilename=thunderbird-1.8.0-profile
profiledirectory=/tmp/thunderbird-1.8.0-profile
executablepath=/work/mozilla/builds/1.8.0/mozilla/thunderbird-debug/dist
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
profiletemplate=/work/mozilla/mozilla.com/test.mozilla.com/www/profiles/imap

View File

@ -0,0 +1,10 @@
product=thunderbird
branch=1.8.0
profilename=thunderbird-1.8.0-test-profile
profiledirectory=/tmp/thunderbird-1.8.0-test-profile
executablepath=/work/mozilla/builds/1.8.0-test/mozilla/thunderbird-debug/dist
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
profiletemplate=/work/mozilla/mozilla.com/test.mozilla.com/www/profiles/imap

View File

@ -0,0 +1,10 @@
product=thunderbird
branch=1.8.1
profilename=thunderbird-1.8.1-profile
profiledirectory=/tmp/thunderbird-1.8.1-profile
executablepath=/work/mozilla/builds/1.8.1/mozilla/thunderbird-debug/dist
userpreferences=/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js
extensiondir=/work/mozilla/mozilla.com/test.mozilla.com/www/xpi
profiletemplate=/work/mozilla/mozilla.com/test.mozilla.com/www/profiles/imap

Some files were not shown because too many files have changed in this diff Show More