mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 22:01:30 +00:00
JavaScript Tests - add automation helper scripts, no bug, not part of the build
This commit is contained in:
parent
afd0626a7d
commit
32ada4368a
129
js/tests/config.sh
Executable file
129
js/tests/config.sh
Executable file
@ -0,0 +1,129 @@
|
||||
# -*- 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998-1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of 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 file was adapted from mozilla/js/src/config.mk
|
||||
|
||||
# Set os+release dependent make variables
|
||||
OS_ARCH="`uname -s | sed /\ /s//_/`"
|
||||
|
||||
# Attempt to differentiate between SunOS 5.4 and x86 5.4
|
||||
OS_CPUARCH=`uname -m`
|
||||
|
||||
if [[ "$OS_CPUARCH" == "i86pc" ]]; then
|
||||
OS_RELEASE="`uname -r`_$OS_CPUARCH"
|
||||
elif [[ "$OS_ARCH" == "AIX" ]]; then
|
||||
OS_RELEASE="`uname -v`.`uname -r`"
|
||||
else
|
||||
OS_RELEASE="`uname -r`"
|
||||
fi
|
||||
|
||||
if [[ "$OS_ARCH" == "IRIX64" ]]; then
|
||||
OS_ARCH="IRIX"
|
||||
fi
|
||||
|
||||
# Handle output from win32 unames other than Netscape's version
|
||||
if echo "Windows_95 Windows_98 CYGWIN_95-4.0 CYGWIN_98-4.10" | grep -iq "$OS_ARCH"; then
|
||||
OS_ARCH="WIN95"
|
||||
fi
|
||||
|
||||
if [[ "$OS_ARCH" == "WIN95" ]]; then
|
||||
OS_ARCH="WINNT"
|
||||
OS_RELEASE="4.0"
|
||||
fi
|
||||
|
||||
if [[ "$OS_ARCH" == "Windows_NT" ]]; then
|
||||
OS_ARCH="WINNT"
|
||||
OS_MINOR_RELEASE="`uname -v`"
|
||||
|
||||
if [[ "$OS_MINOR_RELEASE" == "00" ]]; then
|
||||
OS_MINOR_RELEASE=0
|
||||
fi
|
||||
|
||||
OS_RELEASE="$OS_RELEASE.$OS_MINOR_RELEASE"
|
||||
fi
|
||||
|
||||
if echo "$OS_ARCH" | grep -iq CYGWIN_NT; then
|
||||
OS_RELEASE="`echo $OS_ARCH|sed 's/CYGWIN_NT-//'`"
|
||||
OS_ARCH="WINNT"
|
||||
fi
|
||||
|
||||
if [[ "$OS_ARCH" == "CYGWIN32_NT" ]]; then
|
||||
OS_ARCH="WINNT"
|
||||
fi
|
||||
|
||||
# Virtually all Linux versions are identical.
|
||||
# Any distinctions are handled in linux.h
|
||||
|
||||
case "$OS_ARCH" in
|
||||
"Linux")
|
||||
OS_CONFIG="Linux_All"
|
||||
;;
|
||||
"dgux")
|
||||
OS_CONFIG="dgux"
|
||||
;;
|
||||
"Darwin")
|
||||
OS_CONFIG="Darwin"
|
||||
;;
|
||||
*)
|
||||
OS_CONFIG="$OS_ARCH$OS_OBJTYPE$OS_RELEASE"
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$buildtype" in
|
||||
"opt")
|
||||
OBJDIR_TAG="_OPT"
|
||||
;;
|
||||
"debug")
|
||||
OBJDIR_TAG="_DBG"
|
||||
;;
|
||||
*)
|
||||
error "Unknown build type $buildtype"
|
||||
esac
|
||||
|
||||
|
||||
|
||||
# Name of the binary code directories
|
||||
if [[ -z "$OBJDIR_TAG" ]]; then
|
||||
true
|
||||
elif [[ -n "$BUILD_IDG" ]]; then
|
||||
JS_OBJDIR="$OS_CONFIG$OBJDIR_TAG.OBJD"
|
||||
else
|
||||
JS_OBJDIR="$OS_CONFIG$OBJDIR_TAG.OBJ"
|
||||
fi
|
||||
|
91
js/tests/test-browser.sh
Executable file
91
js/tests/test-browser.sh
Executable file
@ -0,0 +1,91 @@
|
||||
#!/usr/local/bin/bash
|
||||
# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
|
||||
|
||||
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_JSEACH_TIMEOUT=${TEST_JSEACH_TIMEOUT:-240}
|
||||
TEST_JSEACH_PAGE_TIMEOUT=${TEST_JSEACH_PAGE_TIMEOUT:-240}
|
||||
|
||||
#
|
||||
# options processing
|
||||
#
|
||||
options="p:b:x:N:d:"
|
||||
usage()
|
||||
{
|
||||
cat <<EOF
|
||||
usage: $SCRIPT -p product -b branch -x executablepath -N profilename
|
||||
|
||||
variable description
|
||||
=============== ============================================================
|
||||
-p product required. firefox|thunderbird
|
||||
-b branch required. 1.8.0|1.8.1|1.9.0
|
||||
-x executablepath required. directory-tree containing executable 'product'
|
||||
-N profilename required. profile name
|
||||
|
||||
-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.
|
||||
|
||||
if an argument contains more than one value, it must be quoted.
|
||||
EOF
|
||||
exit 2
|
||||
}
|
||||
|
||||
unset product branch profilename executablepath datafiles
|
||||
|
||||
while getopts $options optname ;
|
||||
do
|
||||
case $optname in
|
||||
p) product=$OPTARG;;
|
||||
b) branch=$OPTARG;;
|
||||
N) profilename=$OPTARG;;
|
||||
x) executablepath=$OPTARG;;
|
||||
d) datafiles=$OPTARG;;
|
||||
esac
|
||||
done
|
||||
|
||||
# include environment variables
|
||||
if [[ -n "$datafiles" ]]; then
|
||||
for datafile in $datafiles; do
|
||||
source $datafile
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ -z "$product" || -z "$branch" || -z "$executablepath" || -z "$profilename" ]]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
make
|
||||
|
||||
executable=`get_executable $product $branch $executablepath`
|
||||
|
||||
case "$branch" in
|
||||
1.8.0)
|
||||
list=1.8.0-list.txt
|
||||
;;
|
||||
1.8.1)
|
||||
list=1.8.1-list.txt
|
||||
;;
|
||||
1.9.0)
|
||||
list=1.9.0-list.txt
|
||||
;;
|
||||
esac
|
||||
|
||||
cat "$list" | while read url; do
|
||||
edit-talkback.sh -p "$product" -b "$branch" -x "$executablepath" -i "$url"
|
||||
time timed_run $TEST_JSEACH_TIMEOUT "$url" \
|
||||
"$executable" -P "$profilename" \
|
||||
-spider -start -quit \
|
||||
-uri "$url" \
|
||||
-depth 0 -timeout "$TEST_JSEACH_PAGE_TIMEOUT" \
|
||||
-hook "http://$TEST_HTTP/tests/mozilla.org/js/userhookeach.js";
|
||||
done
|
||||
|
||||
|
||||
|
||||
|
||||
|
80
js/tests/test-shell.sh
Executable file
80
js/tests/test-shell.sh
Executable file
@ -0,0 +1,80 @@
|
||||
#!/usr/local/bin/bash
|
||||
# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
|
||||
|
||||
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_JSSHELL_TIMEOUT=${TEST_JSSHELL_TIMEOUT:-240}
|
||||
|
||||
#
|
||||
# options processing
|
||||
#
|
||||
options="b:s:T:d:"
|
||||
usage()
|
||||
{
|
||||
cat <<EOF
|
||||
usage: $SCRIPT -b branch -s sourcepath -T buildtype [-d datafiles]
|
||||
|
||||
variable description
|
||||
=============== ===========================================================
|
||||
-p product required. js
|
||||
-b branch required. 1.8.0|1.8.1|1.9.0
|
||||
-s sourcepath required. path to js shell source directory mozilla/js/src
|
||||
-T buildtype required. one of opt debug
|
||||
-d datafiles optional. one or more filenames of files containing
|
||||
environment variable definitions to be included.
|
||||
|
||||
EOF
|
||||
exit 2
|
||||
}
|
||||
|
||||
while getopts $options optname ;
|
||||
do
|
||||
case $optname in
|
||||
b) branch=$OPTARG;;
|
||||
s) sourcepath=$OPTARG;;
|
||||
T) buildtype=$OPTARG;;
|
||||
d) datafiles=$OPTARG;;
|
||||
esac
|
||||
done
|
||||
|
||||
# include environment variables
|
||||
if [[ -n "$datafiles" ]]; then
|
||||
for datafile in $datafiles; do
|
||||
source $datafile
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ -z "$branch" || -z "$sourcepath" || -z "$buildtype" ]]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
. config.sh
|
||||
|
||||
executable="$sourcepath/$JS_OBJDIR/js$EXE_EXT"
|
||||
|
||||
case "$branch" in
|
||||
1.8.0)
|
||||
included="ecma ecma_2 ecma_3 js1_1 js1_2 js1_3 js1_4 js1_5 js1_6 e4x"
|
||||
;;
|
||||
1.8.1)
|
||||
included="ecma ecma_2 ecma_3 js1_1 js1_2 js1_3 js1_4 js1_5 js1_6 js1_7 e4x"
|
||||
;;
|
||||
1.9.0)
|
||||
included="ecma ecma_2 ecma_3 js1_1 js1_2 js1_3 js1_4 js1_5 js1_6 js1_7 js1_8 e4x"
|
||||
;;
|
||||
esac
|
||||
|
||||
TEST_HTML_LOG="${TEST_DIR}/results/mozilla.org/js/${TEST_DATE},js,$branch,$buildtype,$OSID,${MACHINE},$TEST_ID-shell.html"
|
||||
|
||||
time perl jsDriver.pl \
|
||||
-l $included \
|
||||
-L excluded-n.tests \
|
||||
-s $executable -e sm$buildtype \
|
||||
-o '-S 524288' \
|
||||
-K \
|
||||
-T $TEST_JSSHELL_TIMEOUT \
|
||||
-f $TEST_HTML_LOG \
|
||||
-Q
|
||||
|
57
js/tests/test.sh
Executable file
57
js/tests/test.sh
Executable file
@ -0,0 +1,57 @@
|
||||
#!/usr/local/bin/bash
|
||||
# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
|
||||
|
||||
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:"
|
||||
usage()
|
||||
{
|
||||
cat <<EOF
|
||||
usage: $SCRIPT -d datafiles
|
||||
|
||||
This script is used to dispatch to either test-browser.sh
|
||||
for browser based JavaScript tests or test-shell.js for
|
||||
shell based JavaScript tests. It ignores all input arguments
|
||||
except -d datafiles which it uses to pass data to the
|
||||
appropriate script.
|
||||
|
||||
variable description
|
||||
=============== ============================================================
|
||||
-d datafiles optional. one or more filenames of files containing
|
||||
environment variable definitions to be included.
|
||||
if an argument contains more than one value, it must be quoted.
|
||||
EOF
|
||||
exit 2
|
||||
}
|
||||
|
||||
unset datafiles
|
||||
|
||||
while getopts $options optname ;
|
||||
do
|
||||
case $optname in
|
||||
d) datafiles=$OPTARG;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ -z "$datafiles" ]]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
for data in $datafiles; do
|
||||
source $data
|
||||
done
|
||||
|
||||
case "$product" in
|
||||
firefox) testscript=./test-browser.sh;;
|
||||
js) testscript=./test-shell.sh;;
|
||||
*) echo "unknown product [$product]"
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
|
||||
$testscript -d "$datafiles"
|
Loading…
Reference in New Issue
Block a user