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