refactor app directory structure and add tests
This commit is contained in:
362
tests/firefox/run-mozilla.sh
Executable file
362
tests/firefox/run-mozilla.sh
Executable file
@@ -0,0 +1,362 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
cmdname=`basename "$0"`
|
||||
MOZ_DIST_BIN=`dirname "$0"`
|
||||
MOZ_DEFAULT_NAME="./${cmdname}-bin"
|
||||
MOZ_APPRUNNER_NAME="./mozilla-bin"
|
||||
MOZ_PROGRAM=""
|
||||
|
||||
exitcode=1
|
||||
#
|
||||
##
|
||||
## Functions
|
||||
##
|
||||
##########################################################################
|
||||
moz_usage()
|
||||
{
|
||||
echo "Usage: ${cmdname} [options] [program]"
|
||||
echo ""
|
||||
echo " options:"
|
||||
echo ""
|
||||
echo " -g Run in debugger."
|
||||
echo " --debug"
|
||||
echo ""
|
||||
echo " -d debugger Debugger to use."
|
||||
echo " --debugger debugger"
|
||||
echo ""
|
||||
echo " -a debugger_args Arguments passed to [debugger]."
|
||||
echo " --debugger-args debugger_args"
|
||||
echo ""
|
||||
echo " Examples:"
|
||||
echo ""
|
||||
echo " Run the mozilla-bin binary"
|
||||
echo ""
|
||||
echo " ${cmdname} mozilla-bin"
|
||||
echo ""
|
||||
echo " Debug the mozilla-bin binary in gdb"
|
||||
echo ""
|
||||
echo " ${cmdname} -g mozilla-bin -d gdb"
|
||||
echo ""
|
||||
echo " Run mozilla-bin under valgrind with arguments"
|
||||
echo ""
|
||||
echo " ${cmdname} -g -d valgrind -a '--tool=memcheck --leak-check=full' mozilla-bin"
|
||||
echo ""
|
||||
return 0
|
||||
}
|
||||
##########################################################################
|
||||
moz_bail()
|
||||
{
|
||||
message=$1
|
||||
echo
|
||||
echo "$cmdname: $message"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
##########################################################################
|
||||
moz_test_binary()
|
||||
{
|
||||
binary=$1
|
||||
if [ -f "$binary" ]
|
||||
then
|
||||
if [ -x "$binary" ]
|
||||
then
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
##########################################################################
|
||||
moz_get_debugger()
|
||||
{
|
||||
debuggers="ddd gdb dbx bdb native-gdb"
|
||||
debugger="notfound"
|
||||
done="no"
|
||||
for d in $debuggers
|
||||
do
|
||||
moz_test_binary /bin/which
|
||||
if [ $? -eq 1 ]
|
||||
then
|
||||
dpath=`which ${d}`
|
||||
else
|
||||
dpath=`LC_MESSAGES=C type ${d} | awk '{print $3;}' | sed -e 's/\.$//'`
|
||||
fi
|
||||
if [ -x "$dpath" ]
|
||||
then
|
||||
debugger=$dpath
|
||||
break
|
||||
fi
|
||||
done
|
||||
echo $debugger
|
||||
return 0
|
||||
}
|
||||
##########################################################################
|
||||
moz_run_program()
|
||||
{
|
||||
prog=$MOZ_PROGRAM
|
||||
##
|
||||
## Make sure the program is executable
|
||||
##
|
||||
if [ ! -x "$prog" ]
|
||||
then
|
||||
moz_bail "Cannot execute $prog."
|
||||
fi
|
||||
##
|
||||
## Run the program
|
||||
##
|
||||
exec "$prog" ${1+"$@"}
|
||||
exitcode=$?
|
||||
}
|
||||
##########################################################################
|
||||
moz_debug_program()
|
||||
{
|
||||
prog=$MOZ_PROGRAM
|
||||
##
|
||||
## Make sure the program is executable
|
||||
##
|
||||
if [ ! -x "$prog" ]
|
||||
then
|
||||
moz_bail "Cannot execute $prog."
|
||||
fi
|
||||
if [ -n "$moz_debugger" ]
|
||||
then
|
||||
moz_test_binary /bin/which
|
||||
if [ $? -eq 1 ]
|
||||
then
|
||||
debugger=`which $moz_debugger`
|
||||
else
|
||||
debugger=`LC_MESSAGES=C type $moz_debugger | awk '{print $3;}' | sed -e 's/\.$//'`
|
||||
fi
|
||||
else
|
||||
debugger=`moz_get_debugger`
|
||||
fi
|
||||
if [ -x "$debugger" ]
|
||||
then
|
||||
# If you are not using ddd, gdb and know of a way to convey the arguments
|
||||
# over to the prog then add that here- Gagan Saksena 03/15/00
|
||||
case `basename $debugger` in
|
||||
native-gdb) echo "$debugger $moz_debugger_args --args $prog" ${1+"$@"}
|
||||
exec "$debugger" $moz_debugger_args --args "$prog" ${1+"$@"}
|
||||
exitcode=$?
|
||||
;;
|
||||
gdb) echo "$debugger $moz_debugger_args --args $prog" ${1+"$@"}
|
||||
exec "$debugger" $moz_debugger_args --args "$prog" ${1+"$@"}
|
||||
exitcode=$?
|
||||
;;
|
||||
ddd) echo "$debugger $moz_debugger_args --gdb -- --args $prog" ${1+"$@"}
|
||||
exec "$debugger" $moz_debugger_args --gdb -- --args "$prog" ${1+"$@"}
|
||||
exitcode=$?
|
||||
;;
|
||||
*) echo "$debugger $moz_debugger_args $prog ${1+"$@"}"
|
||||
exec $debugger $moz_debugger_args "$prog" ${1+"$@"}
|
||||
exitcode=$?
|
||||
;;
|
||||
esac
|
||||
else
|
||||
moz_bail "Could not find a debugger on your system."
|
||||
fi
|
||||
}
|
||||
##########################################################################
|
||||
##
|
||||
## Command line arg defaults
|
||||
##
|
||||
moz_debug=0
|
||||
moz_debugger=""
|
||||
moz_debugger_args=""
|
||||
#
|
||||
##
|
||||
## Parse the command line
|
||||
##
|
||||
while [ $# -gt 0 ]
|
||||
do
|
||||
case $1 in
|
||||
-g | --debug)
|
||||
moz_debug=1
|
||||
shift
|
||||
;;
|
||||
-d | --debugger)
|
||||
moz_debugger=$2;
|
||||
if [ "${moz_debugger}" != "" ]; then
|
||||
shift 2
|
||||
else
|
||||
echo "-d requires an argument"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
-a | --debugger-args)
|
||||
moz_debugger_args=$2;
|
||||
if [ "${moz_debugger_args}" != "" ]; then
|
||||
shift 2
|
||||
else
|
||||
echo "-a requires an argument"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
break;
|
||||
;;
|
||||
esac
|
||||
done
|
||||
#
|
||||
##
|
||||
## Program name given in $1
|
||||
##
|
||||
if [ $# -gt 0 ]
|
||||
then
|
||||
MOZ_PROGRAM=$1
|
||||
shift
|
||||
fi
|
||||
##
|
||||
## Program not given, try to guess a default
|
||||
##
|
||||
if [ -z "$MOZ_PROGRAM" ]
|
||||
then
|
||||
##
|
||||
## Try this script's name with '-bin' appended
|
||||
##
|
||||
if [ -x "$MOZ_DEFAULT_NAME" ]
|
||||
then
|
||||
MOZ_PROGRAM=$MOZ_DEFAULT_NAME
|
||||
##
|
||||
## Try mozilla-bin
|
||||
##
|
||||
elif [ -x "$MOZ_APPRUNNER_NAME" ]
|
||||
then
|
||||
MOZ_PROGRAM=$MOZ_APPRUNNER_NAME
|
||||
fi
|
||||
fi
|
||||
#
|
||||
#
|
||||
##
|
||||
## Make sure the program is executable
|
||||
##
|
||||
if [ ! -x "$MOZ_PROGRAM" ]
|
||||
then
|
||||
moz_bail "Cannot execute $MOZ_PROGRAM."
|
||||
fi
|
||||
#
|
||||
##
|
||||
## Set MOZILLA_FIVE_HOME
|
||||
##
|
||||
MOZILLA_FIVE_HOME=$MOZ_DIST_BIN
|
||||
|
||||
if [ -z "$MRE_HOME" ]; then
|
||||
MRE_HOME=$MOZILLA_FIVE_HOME
|
||||
fi
|
||||
##
|
||||
## Set LD_LIBRARY_PATH
|
||||
##
|
||||
## On Solaris we use $ORIGIN (set in RUNPATH) instead of LD_LIBRARY_PATH
|
||||
## to locate shared libraries.
|
||||
##
|
||||
## When a shared library is a symbolic link, $ORIGIN will be replaced with
|
||||
## the real path (i.e., what the symbolic link points to) by the runtime
|
||||
## linker. For example, if dist/bin/libxul.so is a symbolic link to
|
||||
## toolkit/library/libxul.so, $ORIGIN will be "toolkit/library" instead of "dist/bin".
|
||||
## So the runtime linker will use "toolkit/library" NOT "dist/bin" to locate the
|
||||
## other shared libraries that libxul.so depends on. This only happens
|
||||
## when a user (developer) tries to start firefox, thunderbird, or seamonkey
|
||||
## under dist/bin. To solve the problem, we should rely on LD_LIBRARY_PATH
|
||||
## to locate shared libraries.
|
||||
##
|
||||
## Note:
|
||||
## We test $MOZ_DIST_BIN/*.so. If any of them is a symbolic link,
|
||||
## we need to set LD_LIBRARY_PATH.
|
||||
##########################################################################
|
||||
moz_should_set_ld_library_path()
|
||||
{
|
||||
[ `uname -s` != "SunOS" ] && return 0
|
||||
for sharedlib in $MOZ_DIST_BIN/*.so
|
||||
do
|
||||
[ -h $sharedlib ] && return 0
|
||||
done
|
||||
return 1
|
||||
}
|
||||
if moz_should_set_ld_library_path
|
||||
then
|
||||
LD_LIBRARY_PATH=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/plugins:${MRE_HOME}${LD_LIBRARY_PATH:+":$LD_LIBRARY_PATH"}
|
||||
fi
|
||||
|
||||
if [ -n "$LD_LIBRARYN32_PATH" ]
|
||||
then
|
||||
LD_LIBRARYN32_PATH=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/plugins:${MRE_HOME}${LD_LIBRARYN32_PATH:+":$LD_LIBRARYN32_PATH"}
|
||||
fi
|
||||
if [ -n "$LD_LIBRARYN64_PATH" ]
|
||||
then
|
||||
LD_LIBRARYN64_PATH=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/plugins:${MRE_HOME}${LD_LIBRARYN64_PATH:+":$LD_LIBRARYN64_PATH"}
|
||||
fi
|
||||
if [ -n "$LD_LIBRARY_PATH_64" ]; then
|
||||
LD_LIBRARY_PATH_64=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/plugins:${MRE_HOME}${LD_LIBRARY_PATH_64:+":$LD_LIBRARY_PATH_64"}
|
||||
fi
|
||||
#
|
||||
#
|
||||
## Set SHLIB_PATH for HPUX
|
||||
SHLIB_PATH=${MOZ_DIST_BIN}:${MRE_HOME}${SHLIB_PATH:+":$SHLIB_PATH"}
|
||||
#
|
||||
## Set LIBPATH for AIX
|
||||
LIBPATH=${MOZ_DIST_BIN}:${MRE_HOME}${LIBPATH:+":$LIBPATH"}
|
||||
#
|
||||
## Set DYLD_LIBRARY_PATH for Mac OS X (Darwin)
|
||||
DYLD_LIBRARY_PATH=${MOZ_DIST_BIN}:${MRE_HOME}${DYLD_LIBRARY_PATH:+":$DYLD_LIBRARY_PATH"}
|
||||
#
|
||||
## Solaris Xserver(Xsun) tuning - use shared memory transport if available
|
||||
if [ "$XSUNTRANSPORT" = "" ]
|
||||
then
|
||||
XSUNTRANSPORT="shmem"
|
||||
XSUNSMESIZE="512"
|
||||
export XSUNTRANSPORT XSUNSMESIZE
|
||||
fi
|
||||
|
||||
# Disable Gnome crash dialog
|
||||
GNOME_DISABLE_CRASH_DIALOG=1
|
||||
export GNOME_DISABLE_CRASH_DIALOG
|
||||
|
||||
if [ "$moz_debug" -eq 1 ]
|
||||
then
|
||||
echo "MOZILLA_FIVE_HOME=$MOZILLA_FIVE_HOME"
|
||||
echo " LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
|
||||
if [ -n "$LD_LIBRARYN32_PATH" ]
|
||||
then
|
||||
echo "LD_LIBRARYN32_PATH=$LD_LIBRARYN32_PATH"
|
||||
fi
|
||||
if [ -n "$LD_LIBRARYN64_PATH" ]
|
||||
then
|
||||
echo "LD_LIBRARYN64_PATH=$LD_LIBRARYN64_PATH"
|
||||
fi
|
||||
if [ -n "$LD_LIBRARY_PATH_64" ]; then
|
||||
echo "LD_LIBRARY_PATH_64=$LD_LIBRARY_PATH_64"
|
||||
fi
|
||||
if [ -n "$DISPLAY" ]; then
|
||||
echo "DISPLAY=$DISPLAY"
|
||||
fi
|
||||
if [ -n "$FONTCONFIG_PATH" ]; then
|
||||
echo "FONTCONFIG_PATH=$FONTCONFIG_PATH"
|
||||
fi
|
||||
if [ -n "$MOZILLA_POSTSCRIPT_PRINTER_LIST" ]; then
|
||||
echo "MOZILLA_POSTSCRIPT_PRINTER_LIST=$MOZILLA_POSTSCRIPT_PRINTER_LIST"
|
||||
fi
|
||||
echo "DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH"
|
||||
echo " LIBRARY_PATH=$LIBRARY_PATH"
|
||||
echo " SHLIB_PATH=$SHLIB_PATH"
|
||||
echo " LIBPATH=$LIBPATH"
|
||||
echo " ADDON_PATH=$ADDON_PATH"
|
||||
echo " MOZ_PROGRAM=$MOZ_PROGRAM"
|
||||
echo " MOZ_TOOLKIT=$MOZ_TOOLKIT"
|
||||
echo " moz_debug=$moz_debug"
|
||||
echo " moz_debugger=$moz_debugger"
|
||||
echo "moz_debugger_args=$moz_debugger_args"
|
||||
fi
|
||||
#
|
||||
export MOZILLA_FIVE_HOME LD_LIBRARY_PATH
|
||||
export SHLIB_PATH LIBPATH LIBRARY_PATH ADDON_PATH DYLD_LIBRARY_PATH
|
||||
|
||||
if [ $moz_debug -eq 1 ]
|
||||
then
|
||||
moz_debug_program ${1+"$@"}
|
||||
else
|
||||
moz_run_program ${1+"$@"}
|
||||
fi
|
||||
|
||||
exit $exitcode
|
Reference in New Issue
Block a user