diff options
Diffstat (limited to 'test')
-rwxr-xr-x | test/script-tests/README | 8 | ||||
-rw-r--r-- | test/script-tests/jar-manifest/resources/MANIFEST.MF | 3 | ||||
-rwxr-xr-x | test/script-tests/jar-manifest/run-test | 41 | ||||
-rw-r--r-- | test/script-tests/jar-manifest/run-test.check | 30 | ||||
-rw-r--r-- | test/script-tests/jar-manifest/src/jar-test.scala | 34 |
5 files changed, 116 insertions, 0 deletions
diff --git a/test/script-tests/README b/test/script-tests/README new file mode 100755 index 0000000000..3f5c2ce19c --- /dev/null +++ b/test/script-tests/README @@ -0,0 +1,8 @@ +This is a fresh start for script tests. The fact that windows exists can +no longer be allowed to stand in the way of testing the wide range of +functionality which currently goes completely untested. So I'll just be +putting self-contained script tests in here to run some way that doesn't +depend on all the platform stars aligning all the time. Feel free to +join me. + +-- extempore, Nov 21 2011
\ No newline at end of file diff --git a/test/script-tests/jar-manifest/resources/MANIFEST.MF b/test/script-tests/jar-manifest/resources/MANIFEST.MF new file mode 100644 index 0000000000..93c54c3c6f --- /dev/null +++ b/test/script-tests/jar-manifest/resources/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: bippy.Runner +Class-Path: bippy.jar dingus.jar http://mirrors.ibiblio.org/pub/mirrors/maven2/com/thoughtworks/paranamer/paranamer/2.4/paranamer-2.4.jar diff --git a/test/script-tests/jar-manifest/run-test b/test/script-tests/jar-manifest/run-test new file mode 100755 index 0000000000..2c6d5876b8 --- /dev/null +++ b/test/script-tests/jar-manifest/run-test @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +# + +set -e + +paranamerjar="http://mirrors.ibiblio.org/pub/mirrors/maven2/com/thoughtworks/paranamer/paranamer/2.4/paranamer-2.4.jar" +build=$(dirname $0)/../../../build/pack + +if [[ -n "$SCALA_HOME" ]]; then + scala="$SCALA_HOME/bin/scala" +elif [[ -d $build ]]; then + scala=$(cd $build && pwd -P)/bin/scala +else + scala="scala" +fi + +echo "$($scala -version 2>&1)" +scalac="${scala}c" + +[[ -d lib ]] || mkdir lib +[[ -f lib/paranamer-2.4.jar ]] || ( printf >&2 "Grabbing paranamer jar\n\n" && cd lib && wget --quiet "$paranamerjar" ) + +rm -rf target && mkdir target +"$scalac" -d target -cp lib/'*' src/*.scala +cd target + +jar cmf ../resources/MANIFEST.MF bippy.jar bippy +jar cf dingus.jar dingus + +run () { + echo "" + echo "% $@" + "$@" +} + +cat <<EOM +$(run pwd) +$(run jar tf bippy.jar) +$(run jar tf dingus.jar) +$(run $scala $@ bippy.jar) +EOM diff --git a/test/script-tests/jar-manifest/run-test.check b/test/script-tests/jar-manifest/run-test.check new file mode 100644 index 0000000000..ef59a6cbac --- /dev/null +++ b/test/script-tests/jar-manifest/run-test.check @@ -0,0 +1,30 @@ +Scala code runner version 2.10.0.r26038-b20111121102734 -- Copyright 2002-2011, LAMP/EPFL + +% pwd +/scala/trunk/test/script-tests/jar-manifest/target + +% jar tf bippy.jar +META-INF/ +META-INF/MANIFEST.MF +bippy/ +bippy/Runner$$anonfun$main$1.class +bippy/Runner$$anonfun$main$2.class +bippy/Runner$$anonfun$main$3.class +bippy/Runner$.class +bippy/Runner.class + +% jar tf dingus.jar +META-INF/ +META-INF/MANIFEST.MF +dingus/ +dingus/Printable.class + +% /scala/trunk/build/pack/bin/scala bippy.jar +1 "Greetings from dingus.jar!" +2 bippyBingle has parameters: imparametorium, antidisestablish, x +3 bippyBoo has parameters: quuxParameter +4 +5 Urls exposed through the classloader: +6 file:/scala/trunk/test/script-tests/jar-manifest/target/./bippy.jar +7 file:/scala/trunk/test/script-tests/jar-manifest/target/./dingus.jar +8 http://mirrors.ibiblio.org/pub/mirrors/maven2/com/thoughtworks/paranamer/paranamer/2.4/paranamer-2.4.jar diff --git a/test/script-tests/jar-manifest/src/jar-test.scala b/test/script-tests/jar-manifest/src/jar-test.scala new file mode 100644 index 0000000000..80e3aafff0 --- /dev/null +++ b/test/script-tests/jar-manifest/src/jar-test.scala @@ -0,0 +1,34 @@ +import scala.tools.nsc.util.HasClassPath + +package bippy { + object Runner { + var line = 0 + def echo(msgs: Any*) = { + line += 1 + Console.println("%-2s %s".format(line, msgs mkString " ")) + } + + def bippyBoo(quuxParameter: Int) = 5 + def bippyBingle(imparametorium: String, antidisestablish: Int, x: Float) = () + + def main(args: Array[String]): Unit = { + echo(new dingus.Printable) + val namer = new com.thoughtworks.paranamer.BytecodeReadingParanamer + getClass.getMethods filter (_.getName startsWith "bippy") foreach { m => + echo(m.getName, "has parameters:", namer.lookupParameterNames(m).mkString(", ")) + } + echo("") + echo("Urls exposed through the classloader:") + getClass.getClassLoader match { + case x: HasClassPath => x.classPathURLs foreach (x => echo(x)) + case _ => echo("None! Seems unlikely we'd get this far then.") + } + } + } +} + +package dingus { + class Printable { + override def toString = "\"Greetings from dingus.jar!\"" + } +}
\ No newline at end of file |