blob: a25348d7764439423cebf0facd261b56f3309fa6 [file] [log] [blame]
#!/bin/bash
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Downloads and compiles necessary dependencies (closure compiler, junit) and
# builds and runs Java-specific JUnit tests.
readonly SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
readonly TEMP_DIR=$(mktemp -d)
cleanup() {
rm -rf "${TEMP_DIR}"
rm -rf ${SCRIPT_DIR}/runner/*/com/google/javascript/jscomp/*.class
}
die_earlier() {
cleanup
exit 1
}
trap die_earlier SIGINT SIGHUP SIGTERM
cd "${TEMP_DIR}"
echo "Cloning Closure Compiler repo"
git clone https://github.com/google/closure-compiler.git || die_earlier
cd closure-compiler
echo "Building Closure Compiler"
ant all-classes-jar || die_earlier
readonly classpath=".:./runner/test:./runner/src:\
${TEMP_DIR}/closure-compiler/build/compiler.jar:\
${TEMP_DIR}/closure-compiler/build/classes:\
${TEMP_DIR}/closure-compiler/lib/junit.jar"
cd "${SCRIPT_DIR}"
echo "Compiling tests"
javac -classpath "${classpath}" \
runner/test/com/google/javascript/jscomp/ChromePassTest.java || die_earlier
echo "Running tests"
java -classpath "${classpath}" org.junit.runner.JUnitCore \
com.google.javascript.jscomp.ChromePassTest || die_earlier
echo "Cleaning up"
cleanup