org.aspectj/tests/harness/directTester.sh
2002-12-16 18:51:06 +00:00

78 lines
2.0 KiB
Bash

#!/bin/sh
# syntax: <mainFile> {file}...
# info: compile files and run mainFile class (with Tester classes)
# requires JDKDIR and build output be available
[ -n "$DEBUG" ] && set -vx
pathtojava() {
echo "$1" | sed 's|/cygdrive/\(c\)/|\1:/|' # todo
}
errMssg() {
echo "## $0 Error: $1"
if [ -n "$2" ] ; then exit "$2" ; fi
}
sourcesRunningInNew() {
cat<<EOF
InnerInterfaceNames.java
InnerInterfaceAccess.java
PR691.java
AroundDoubleAssignment.java
AroundDoubleAssignmentC.java
AroundChangeThis.java
PointcutQualification.java
PointcutQualification2.java
AbstractPointcutAccess.java
SourceLocationCall.java
CallNotTarget.java
AroundCall.java
ArgsInCflow2.java
FactorialCflow.java
ArrayInc.java
TargetObjectReplacement.java
EOF
}
runAjc() {
"$JDKDIR/bin/java" -classpath "$compilerJar" org.aspectj.tools.ajc.Main \
-d "$classesDir" -classpath "$rtJar${PS}$clientJar" "${@}"
}
runJava() {
"$JDKDIR/bin/java" -classpath "$rtJar${PS}$clientJar${PS}$classesDir" "${@}"
}
if [ -n "$PS" ] ; then
case `uname` in
CYGWIN* ) PS=";" ;;
* ) PS=":" ;;
esac
fi
scriptDir=`dirname "$0"`
scriptDir=`cd "$scriptDir"; pwd`
java="$JDKDIR/bin/java"
[ -x "$java" ] || errMssg "no java=$java"
ajJarsDir=`cd "$scriptDir/../../../aj-build-modules/jars"; pwd`
ajJarsDirJ=`pathtojava "$ajJarsDir"`
clientJar="$ajJarsDirJ/testing-client.jar"
compilerJar="${compilerJar:-ajJarsDirJ/alltesting.jar}"
rtJar="$ajJarsDirJ/runtime.jar"
classesDir=cl
[ -f "$clientJar" ] || errMssg "no clientJar=$clientJar" 4
[ -f "$rtJar" ] || errMssg "no rtJar=$rtJar" 4
cd "$scriptDir/../new" || errMssg "no new directory" 4
mkdir "$classesDir"
sources="${@:-`sourcesRunningInNew`}"
for srcFile in $sources ; do
[ -f "$srcFile" ] || errMssg "no srcFile=$srcFile" 4
className=`echo "$srcFile" | sed 's|\/|.|g;s|\.java||'`
[ -n "$className" ] || errMssg "no className" 4
rm -rf "$classesDir"/*
runAjc "${srcFile}"
runJava $className || echo '<<<< FAIL '"$srcFile"
done
rm -rf "$classesDir"