123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- #!/bin/sh
- # run jacks against javac and ajc (with and without usejavac)
- # @process-test ajc runjacks.sh # run jacks tests against javac and ajc (with and without usejavac)
-
- [ -n "$DEBUG" ] && set -vx
-
- errMssg() {
- [ -n "$1" ] && echo "## $0 $1"
- [ -n "$2" ] && exit "$2"
- }
-
- toJavaPath() {
- echo "$1" | sed 's|/cygdrive/\([a-zA-Z]\)/|\1:/|'
- }
-
- toDosPath() {
- toJavaPath "$1" | sed 's|/|\\|g'
- }
-
- emit_ajcbat() {
- cat<<EOF
- $jhomeDos\bin\java -classpath "$ajlibDos\aspectjtools.jar;$ajlibDos\aspectjrt.jar;$jhomeDos\lib\tools.jar" org.aspectj.tools.ajc.Main %1 %2 %3 %4 %5 %6 %7 %8
- EOF
- }
-
- emit_ajcsetup() {
- cat<<EOF
- # Set the paths for your tools in this file
- set JAVA_HOME $jhomeJ
- set JAVA_CLASSPATH ""
- set JAVAC $jacksDirJ/ajc.bat
- set JAVAC_FLAGS "$javacFlags"
-
- # To test the assert statement, use this setup
- #set JAVAC_FLAGS "-source 1.4"
- set JAVA ${JDKDIR}/jre/bin/java.exe
- set JAVA_FLAGS ""
-
- # This activates encoding support.
- set JAVAC_ENCODING_FLAG "-encoding "
- set tcltest::testConstraints(encoding) 1
-
- # Activate javac only test cases
- set tcltest::testConstraints(javac) 1
-
- # Uncomment this to test the assert statement
- #set tcltest::testConstraints(assert) 1
-
- EOF
- }
-
- compareJacksResults() {
- [ -f javac.out ] || exit 2
- sc='/^==== [^ ][^ ]* FAILED/s|^==== \([^ ][^ ]*\) .*|\1 '
- for ajc in ajc usejavac ; do
- [ -f $ajc.out ] || exit 2
- for i in $ajc javac ; do
- sed -n "$sc$i|p" "$i.out" | sort > "$i.join"
- done
- join -a 1 -a 2 $ajc.join javac.join \
- | sed "/$ajc javac/d" \
- | sort > compare.javac.$ajc.out
- rm $ajc.join javac.join
-
- ajcCount=`sed -n "/ $ajc/p" compare.javac.$ajc.out | wc -l`
- javacCount=`sed -n "/ javac/p" compare.javac.$ajc.out | wc -l`
-
- echo "## $ajcCount $ajc failures unmatched by javac"
- echo "## $javacCount javac failures unmatched by $ajc"
- done
- wc -l *.out
- }
-
-
-
- #############################################
- SKIP_USEJAVAC=skippingUseJavac
- #pattern='*abrupt*' # use this to test script w/o running all
- if [ ! "$1" = "compare" ] ; then
- tclDir=/cygdrive/c/home/apps/tcl # XXX crosscut only
- case `uname` in
- CYGWIN* ) ;;
- * ) errMssg "only cygwin supported" 4 ;;
- esac
-
- [ -z "$JDKDIR" -o -x "$JDKDIR/bin/java" ] \
- || errMssg "requires valid JDKDIR=$JDKDIR" 5
-
- [ -z "$tclDir" -o -x "$tclDir/bin/tclsh" ] \
- || errMssg "requires valid tclDir=$tclDir" 5
-
- cvsroot=":pserver:anoncvs@oss.software.ibm.com:/usr/cvs/jikes"
- scriptDir=`dirname "$0"`
- scriptDir=`cd "$scriptDir";pwd`
- toBaseDir=../../..
- jacksDir="${jacksDir:-`cd "$scriptDir/$toBaseDir";pwd`/jacks}"
- ajlibDir="${ajlibDir:-`cd "$scriptDir/$toBaseDir";pwd`/aj-build-modules/jars}"
- outDir="${outDir:-${1:-.}}"
- [ -d "$outDir" ] || exit 3
-
- jacksDirJ=`toJavaPath "$jacksDir"`
- jhomeJ=`toJavaPath "$JDKDIR"`
- ajlibDos=`toDosPath "$ajlibDir"`
- jhomeDos=`toDosPath "$JDKDIR"`
-
- [ -f "$ajlibDir/aspectjtools.jar" ] \
- || errMssg "bad ajlibDir=$ajlibDir" 4
-
- ## get jacks if necessary
- if [ -d "$jacksDir" ] ; then
- [ -f "$jacksDir/jacks.tcl" ] || errMssg "bad jacksDir" 4
- echo "## using existing jacks dir at $jacksDir"
- else
- cd `dirname "$jacksDir"` || errMssg "bad path to $jacksDir" 5
- echo anoncvs | cvs -d "$cvsroot" login
- cvs -d "$cvsroot" co jacks
- fi
-
- ## setup our stuff
- cd "$jacksDir" || errMssg "jacks dir failed" 6
-
- # comment unix, uncomment cygwin
- sc='/ulimit/s|^|#|'
- sc="$sc;"'/^exec tclsh8*/s|^|#|'
- sc="$sc;"'/^##* *exec tclsh.*cygpath/s|^##* *e|e|'
- sed "$sc" jacks > ff \
- && mv ff jacks || errMssg "unable to setup jacks for cygwin" 2
-
- export PATH="$tclDir/bin:$JDKDIR/bin:$jacksDir:$PATH"
-
- ## javac should work in any case
- if [ -f javac.out ] ; then
- echo "using existing javac.out"
- ls -ald javac.out
- else
- ## need to setup JAVA_HOME, JAVAC, JAVA
- sc='/^set JAVA_HOME /s|.*|set JAVA_HOME '"$JDKDIR|"
- sc="$sc;"'/^set JAVAC /s|.*|set JAVAC $JAVA_HOME/bin/javac.exe|'
- sc="$sc;"'/^set JAVA /s|.*|set JAVA $JAVA_HOME/bin/java.exe|'
- sed "$sc" javac_setup > ff && mv ff javac_setup
- echo "## starting javac at `date`"
- jacks javac $pattern > "$outDir/"javac.out || errMssg "javac failed " "$?"
- echo "## ending javac at `date`"
- fi
-
- if [ -f "$outDir/"ajc.out ] ; then
- echo "using existing ajc.out"
- ls -ald "$outDir/"ajc.out
- else
- ## setup and run ajc
- emit_ajcbat > ajc.bat
- emit_ajcsetup > ajc_setup
- echo "## starting ajc at `date`"
- jacks ajc $pattern > "$outDir/"ajc.out || errMssg "ajc failed " "$?"
- echo "## ending ajc at `date`"
- fi
-
- if [ -f "$outDir/"usejavac.out ] ; then
- echo "using existing usejavac.out"
- ls -ald "$outDir/"usejavac.out
- elif [ -n "$SKIP_USEJAVAC" ] ; then
- echo "skipping usejavac"
- else
- ## setup -usejavac
- javacFlags="-usejavac"
- emit_ajcsetup > ajc_setup
- echo "## starting ajc -usejavac at `date`"
- jacks ajc $pattern > "$outDir/"usejavac.out || errMssg "usejavac failed " "$?"
- echo "## ending ajc -usejavac at `date`"
- fi
-
- fi ## not only comparing
-
- compareJacksResults
-
|