mirror of
https://github.com/dart-lang/sdk
synced 2024-09-05 16:41:07 +00:00
![William Hesse](/assets/img/avatar_default.png)
BSD systems don't place bash in /bin and a lot of the dart tools hardcode a #!/bin/bash shebang that fails the 'all' target build (not able to execute dart2js since the interpreter is not found). Solve the issue by using #!/usr/bin/env as the shebang. For scripts that need to pass arguments to bash modify the script to use the set command as the first executed line of shell. BUG= R=whesse@google.com Review URL: https://codereview.chromium.org/1552313002 .
160 lines
3.2 KiB
Bash
Executable file
160 lines
3.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
|
# for details. All rights reserved. Use of this source code is governed by a
|
|
# BSD-style license that can be found in the LICENSE file.
|
|
#
|
|
|
|
# A quick check over a subset the tests in the runtime, compiler
|
|
# and client directories.
|
|
|
|
# Currently builds and checks:
|
|
# runtime - release mode
|
|
# compiler - debug mode (non-optimized)
|
|
# client - chromium debug mode
|
|
|
|
DO_OPTIMIZE=0
|
|
DO_DARTIUM=0
|
|
TESTS_FAILED=0
|
|
|
|
function usage {
|
|
echo "usage: $0 [ --help ] [ --optimize ] [ --dartium ] "
|
|
echo
|
|
echo "Runs a quick set of tests on runtime, client, and compiler dirs"
|
|
echo
|
|
echo " --optimize: Also run dartc and client tests in release mode"
|
|
echo " --dartium : Also run dartium/debug tests"
|
|
echo
|
|
}
|
|
|
|
# Compile the vm/runtime
|
|
# $1 directory to build in
|
|
# $2 arch
|
|
# $3 mode
|
|
function doBuild {
|
|
./tools/build.py --arch $1 --mode $2
|
|
if [ $? != 0 ] ; then
|
|
echo "Build of $1 - $2 failed"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Execute a set of tests
|
|
# $1 directory to test in
|
|
# $2 arch
|
|
# $3 mode
|
|
# Returns the output from the subcommand
|
|
function doTest {
|
|
./tools/test.py --component $2 --mode $3
|
|
RESULT=$?
|
|
if [ ${RESULT} != 0 ] ; then
|
|
TESTS_FAILED=1
|
|
fi
|
|
return ${RESULT}
|
|
}
|
|
|
|
# Main
|
|
|
|
while [ ! -z "$1" ] ; do
|
|
case $1 in
|
|
"-h"|"-?"|"-help"|"--help")
|
|
usage
|
|
exit 1
|
|
;;
|
|
"--optimize")
|
|
DO_OPTIMIZE=1
|
|
;;
|
|
"--dartium")
|
|
DO_DARTIUM=1
|
|
;;
|
|
*)
|
|
echo "Unrecognized argument: $1"
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ ! -d compiler -o ! -d runtime -o ! -d tests ] ; then
|
|
echo "This doesn't look like the dart source tree."
|
|
echo "Change your directory to the dart trunk source"
|
|
exit 1
|
|
fi
|
|
|
|
echo
|
|
echo "--- Building release ---"
|
|
doBuild ia32 release
|
|
|
|
echo
|
|
echo "--- Building debug ---"
|
|
doBuild ia32 debug
|
|
|
|
echo
|
|
echo "=== Runtime tests === "
|
|
echo " Debug (Ctrl-C to skip this set of tests)"
|
|
doTest runtime vm debug
|
|
RUNTIME_RESULT=$?
|
|
if [ ${RUNTIME_RESULT} == 0 ] ; then
|
|
echo " Release (Ctrl-C to skip this set of tests)"
|
|
doTest runtime vm release
|
|
RUNTIME_RESULT=$?
|
|
fi
|
|
|
|
|
|
echo
|
|
echo "=== dartc tests ==="
|
|
echo " Debug mode (Ctrl-C to skip this set of tests)"
|
|
doTest compiler dartc debug
|
|
DARTC_RESULT=$?
|
|
|
|
if [ ${DO_OPTIMIZE} == 1 ] ; then
|
|
echo " Release mode (--optimize)"
|
|
doTest compiler dartc release
|
|
RESULT=$?
|
|
if [ ${RESULT} != 0 ] ; then
|
|
DARTC_RESULT=${RESULT}
|
|
fi
|
|
fi
|
|
|
|
echo
|
|
echo "=== Client tests ==="
|
|
echo " Chromium (Ctrl-C to skip this set of tests)"
|
|
doTest client chromium debug
|
|
CLIENT_RESULT=$?
|
|
|
|
if [ ${DO_OPTIMIZE} == 1 ] ; then
|
|
echo " Chromium Release mode (--optimize)"
|
|
doTest compiler chromium release
|
|
RESULT=$?
|
|
if [ ${RESULT} != 0 ] ; then
|
|
CLIENT_RESULT=${RESULT}
|
|
fi
|
|
fi
|
|
|
|
if [ ${DO_DARTIUM} == 1 ] ; then
|
|
echo " Dartium (Ctrl-C to skip this set of tests)"
|
|
doTest client dartium release
|
|
RESULT=$?
|
|
if [ ${RESULT} != 0 ] ; then
|
|
CLIENT_RESULT=${RESULT}
|
|
fi
|
|
fi
|
|
|
|
# Print summary of results
|
|
if [ ${RUNTIME_RESULT} != 0 ] ; then
|
|
echo "*** vm tests failed"
|
|
fi
|
|
|
|
if [ ${DARTC_RESULT} != 0 ] ; then
|
|
echo "*** dartc tests failed"
|
|
fi
|
|
|
|
if [ ${CLIENT_RESULT} != 0 ] ; then
|
|
echo "*** client tests failed"
|
|
fi
|
|
|
|
if [ ${TESTS_FAILED} == 0 ] ; then
|
|
echo "All presubmit tests passed!"
|
|
fi
|