| #!/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 |