diff options
author | Antonio Cunei <antonio.cunei@epfl.ch> | 2010-05-28 15:34:32 +0000 |
---|---|---|
committer | Antonio Cunei <antonio.cunei@epfl.ch> | 2010-05-28 15:34:32 +0000 |
commit | 0b006e7762a8c3ec2f5d02c8c7c34b09511e6a47 (patch) | |
tree | d506f42b6847b9ece5240d062bb9e4b97a450019 /test/files | |
parent | 5da8a164cdd276e191ab6429e5a64e02529bbe45 (diff) | |
download | scala-0b006e7762a8c3ec2f5d02c8c7c34b09511e6a47.tar.gz scala-0b006e7762a8c3ec2f5d02c8c7c34b09511e6a47.tar.bz2 scala-0b006e7762a8c3ec2f5d02c8c7c34b09511e6a47.zip |
Re-enabled a number of previously disabled tests;
according to my tests, they all currently work.
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/jvm/JavaInteraction.check | 4 | ||||
-rw-r--r-- | test/files/jvm/JavaInteraction.scala | 23 | ||||
-rw-r--r-- | test/files/jvm/libnatives-32.so | bin | 0 -> 5359 bytes | |||
-rw-r--r-- | test/files/jvm/libnatives-64.so | bin | 0 -> 7466 bytes | |||
-rw-r--r-- | test/files/jvm/libnatives.jnilib | bin | 0 -> 8456 bytes | |||
-rwxr-xr-x | test/files/jvm/mkLibNatives.bat | 67 | ||||
-rwxr-xr-x | test/files/jvm/mkLibNatives.sh | 61 | ||||
-rw-r--r-- | test/files/jvm/natives-32.dll | bin | 0 -> 40960 bytes | |||
-rw-r--r-- | test/files/jvm/natives.c | 8 | ||||
-rw-r--r-- | test/files/jvm/natives.check | 1 | ||||
-rw-r--r-- | test/files/jvm/natives.h | 21 | ||||
-rw-r--r-- | test/files/jvm/natives.scala | 23 | ||||
-rw-r--r-- | test/files/pos/t1053.scala | 6 | ||||
-rw-r--r-- | test/files/pos/t2619.scala | 80 | ||||
-rw-r--r-- | test/files/pos/ticket2251.scala | 25 | ||||
-rw-r--r-- | test/files/run/json.scala (renamed from test/files/run/json.scala.disabled) | 8 | ||||
-rw-r--r-- | test/files/run/stream_length.check | 1 | ||||
-rw-r--r-- | test/files/run/stream_length.scala | 15 |
18 files changed, 339 insertions, 4 deletions
diff --git a/test/files/jvm/JavaInteraction.check b/test/files/jvm/JavaInteraction.check new file mode 100644 index 0000000000..fb9d3cdd8c --- /dev/null +++ b/test/files/jvm/JavaInteraction.check @@ -0,0 +1,4 @@ +p.x = 5 +p.c = java.awt.Color[r=255,g=0,b=0] +p.getX() = 5.0 +p.getC() = java.awt.Color[r=255,g=0,b=0] diff --git a/test/files/jvm/JavaInteraction.scala b/test/files/jvm/JavaInteraction.scala new file mode 100644 index 0000000000..1316fad5d4 --- /dev/null +++ b/test/files/jvm/JavaInteraction.scala @@ -0,0 +1,23 @@ +//############################################################################ +// Test Java interaction +//############################################################################ + +import java.awt.Color; +import java.awt.Point; + +class ColoredPoint(x: Int, y: Int, c_ : Color) extends Point(x, y) { + val c: Color = c_; + def getC(): Color = c; +} + +object Test { + def main(args: Array[String]): Unit = { + val p = new ColoredPoint(5, 7, Color.RED); + Console.println("p.x = " + p.x); + Console.println("p.c = " + p.c); + Console.println("p.getX() = " + p.getX()); + Console.println("p.getC() = " + p.getC()); + } +} + +//############################################################################ diff --git a/test/files/jvm/libnatives-32.so b/test/files/jvm/libnatives-32.so Binary files differnew file mode 100644 index 0000000000..ccbcdd646f --- /dev/null +++ b/test/files/jvm/libnatives-32.so diff --git a/test/files/jvm/libnatives-64.so b/test/files/jvm/libnatives-64.so Binary files differnew file mode 100644 index 0000000000..8cc6152057 --- /dev/null +++ b/test/files/jvm/libnatives-64.so diff --git a/test/files/jvm/libnatives.jnilib b/test/files/jvm/libnatives.jnilib Binary files differnew file mode 100644 index 0000000000..daac50e3df --- /dev/null +++ b/test/files/jvm/libnatives.jnilib diff --git a/test/files/jvm/mkLibNatives.bat b/test/files/jvm/mkLibNatives.bat new file mode 100755 index 0000000000..100246af79 --- /dev/null +++ b/test/files/jvm/mkLibNatives.bat @@ -0,0 +1,67 @@ +@echo off
+
+rem ##########################################################################
+rem # Author : Stephane Micheloud
+rem ##########################################################################
+
+rem ##########################################################################
+rem # variables
+
+if "%OS%"=="Windows_NT" @setlocal
+
+rem debug switches are: off=0, on=1
+set DEBUG=0
+set STDOUT=NUL
+if %DEBUG%==1 set STDOUT=CON
+
+set CLASS_NAME=Test$
+set CLASS_DIR=.
+
+set OBJ_NAME=natives
+set LIB_NAME=natives-32
+
+if "%JAVA_HOME%"=="" goto error1
+if "%VSINSTALLDIR%"=="" goto error2
+
+set JAVAH=%JAVA_HOME%\bin\javah
+set JAVAH_OPTIONS=-jni -force -classpath %CLASS_DIR% -o %OBJ_NAME%.h
+
+set CC=%VSINSTALLDIR%\vc\bin\cl
+set CC_OPTIONS=/nologo /c
+set CC_INCLUDES=-I%VSINSTALLDIR%\vc\include -I%JAVA_HOME%\include -I%JAVA_HOME%\include\win32
+
+set LNK_OPTIONS=/nologo /MT /LD
+
+rem variable LIB is used by the C++ linker to find libcmt.lib, ..
+set LIB=%VSINSTALLDIR%\vc\lib
+
+rem ##########################################################################
+rem # commands
+
+del /s/q *.obj *.exp *.lib *.dll 1>%STDOUT%
+
+if %DEBUG%==1 echo %JAVAH% %JAVAH_OPTIONS% %CLASS_NAME%
+%JAVAH% %JAVAH_OPTIONS% %CLASS_NAME%
+
+if %DEBUG%==1 echo %CC% %CC_OPTIONS% %CC_INCLUDES% /Fo%OBJ_NAME%.obj natives.c
+%CC% %CC_OPTIONS% %CC_INCLUDES% /Fo%OBJ_NAME%.obj natives.c 1>%STDOUT%
+
+if %DEBUG%==1 echo %CC% %LNK_OPTIONS% /Fe%LIB_NAME%.dll %OBJ_NAME%.obj
+%CC% %LNK_OPTIONS% /Fe%LIB_NAME%.dll %OBJ_NAME%.obj 1>%STDOUT%
+
+goto end
+
+rem ##########################################################################
+rem # subroutines
+
+:error1
+echo ERROR: environment variable JAVA_HOME is undefined. It should point to your JDK installation.
+goto end
+
+:error2
+echo ERROR: environment variable VSINSTALLDIR is undefined. It should point to your MS Visual Studio installation.
+goto end
+
+:end
+if "%OS%"=="Windows_NT" @endlocal
+
diff --git a/test/files/jvm/mkLibNatives.sh b/test/files/jvm/mkLibNatives.sh new file mode 100755 index 0000000000..ed80c24c3e --- /dev/null +++ b/test/files/jvm/mkLibNatives.sh @@ -0,0 +1,61 @@ +#!/bin/sh + +############################################################################## +# Author : Stephane Micheloud +############################################################################## + +############################################################################## +# variables + +# set any value to enable debugging output +debug= + +cygwin=false; +darwin=false; +case "`uname`" in + CYGWIN*) cygwin=true ;; + Darwin*) darwin=true ;; +esac + +CLASS_NAME=Test\$ +CLASS_DIR=natives-jvm.obj + +OBJ_NAME=natives +LIB_NAME=libnatives + +if [ -z "${JAVA_HOME}" ]; then + echo "environment variable JAVA_HOME is undefined." + exit +elif $cygwin; then + echo "Cygwin not supported (use 'mkLibNatives.bat')." + exit +fi + +JAVAH=${JAVA_HOME}/bin/javah +JAVAH_OPTIONS="-jni -force -classpath ${CLASS_DIR} -o ${OBJ_NAME}.h" + +CC=gcc + +if $darwin; then + CC_OPTIONS="-c -arch ppc -arch i386" + CC_INCLUDES="-I/System/Library/Frameworks/JavaVM.framework/Headers" + LNK_OPTIONS="-dynamiclib -framework JavaVM" + FULL_LIB_NAME=${LIB_NAME}.jnilib +else + CC_OPTIONS=-c + CC_INCLUDES="-I${JAVA_HOME}/include -I${JAVA_HOME}/include/${OSTYPE}" + LNK_OPTIONS="-shared -Wl,-soname,${LIB_NAME}" + FULL_LIB_NAME=${LIB_NAME}.so +fi + +############################################################################## +# commands + +[ $debug ] && echo ${JAVAH} ${JAVAH_OPTIONS} ${CLASS_NAME} +${JAVAH} ${JAVAH_OPTIONS} ${CLASS_NAME} + +[ $debug ] && echo ${CC} ${CC_OPTIONS} ${CC_INCLUDES} -o ${OBJ_NAME}.o natives.c +${CC} ${CC_OPTIONS} ${CC_INCLUDES} -o ${OBJ_NAME}.o natives.c + +[ $debug ] && echo ${CC} ${LNK_OPTIONS} -o ${FULL_LIB_NAME} ${OBJ_NAME}.o +${CC} ${LNK_OPTIONS} -o ${FULL_LIB_NAME} ${OBJ_NAME}.o diff --git a/test/files/jvm/natives-32.dll b/test/files/jvm/natives-32.dll Binary files differnew file mode 100644 index 0000000000..a06c1da3e3 --- /dev/null +++ b/test/files/jvm/natives-32.dll diff --git a/test/files/jvm/natives.c b/test/files/jvm/natives.c new file mode 100644 index 0000000000..7b6d7b5ba5 --- /dev/null +++ b/test/files/jvm/natives.c @@ -0,0 +1,8 @@ +#include "natives.h" + +JNIEXPORT jstring JNICALL Java_Test_00024_sayHello + (JNIEnv *env, jobject thisobject, jstring js) + +{ + return js; +} diff --git a/test/files/jvm/natives.check b/test/files/jvm/natives.check new file mode 100644 index 0000000000..2265459198 --- /dev/null +++ b/test/files/jvm/natives.check @@ -0,0 +1 @@ +Invocation returned "Scala is great!" diff --git a/test/files/jvm/natives.h b/test/files/jvm/natives.h new file mode 100644 index 0000000000..0d360d3654 --- /dev/null +++ b/test/files/jvm/natives.h @@ -0,0 +1,21 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> +/* Header for class Test__ */ + +#ifndef _Included_Test__ +#define _Included_Test__ +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: Test__ + * Method: sayHello + * Signature: (Ljava/lang/String;)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_Test_00024_sayHello + (JNIEnv *, jobject, jstring); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/test/files/jvm/natives.scala b/test/files/jvm/natives.scala new file mode 100644 index 0000000000..14ee4e1c1b --- /dev/null +++ b/test/files/jvm/natives.scala @@ -0,0 +1,23 @@ +object Test { + + //println("java.library.path=" + System.getProperty("java.library.path")) + + val sysWordSize = System.getProperty("sun.arch.data.model", "32") + val sysType = System.getProperty("os.name") + + val libName = + if (sysType == "Mac OS X") + "natives" + else + "natives-" + sysWordSize + + System.loadLibrary(libName) + + @native + def sayHello(s: String): String = null + + def main(args: Array[String]) { + val s = sayHello("Scala is great!") + println("Invocation returned \"" + s + "\"") + } +} diff --git a/test/files/pos/t1053.scala b/test/files/pos/t1053.scala new file mode 100644 index 0000000000..1d4dfb637e --- /dev/null +++ b/test/files/pos/t1053.scala @@ -0,0 +1,6 @@ +trait T[A] { trait U { type W = A; val x = 3 } } + +object Test { + val x : ({ type V = T[this.type] })#V = null + val y = new x.U { } +} diff --git a/test/files/pos/t2619.scala b/test/files/pos/t2619.scala new file mode 100644 index 0000000000..565bc9572b --- /dev/null +++ b/test/files/pos/t2619.scala @@ -0,0 +1,80 @@ +abstract class F { + final def apply(x: Int): AnyRef = null +} +abstract class AbstractModule { + def as: List[AnyRef] + def ms: List[AbstractModule] + def fs: List[F] = Nil + def rs(x: Int): List[AnyRef] = fs.map(_(x)) +} +abstract class ModuleType1 extends AbstractModule {} +abstract class ModuleType2 extends AbstractModule {} + +object ModuleAE extends ModuleType1 { + def as = Nil + def ms = Nil +} +object ModuleAF extends ModuleType2 { + def as = Nil + def ms = List(ModuleAE) +} +object ModuleAG extends ModuleType1 { + def as = List("") + def ms = Nil +} +object ModuleAI extends ModuleType1 { + def as = Nil + def ms = List(ModuleAE) +} +object ModuleAK extends ModuleType2 { + def as = Nil + def ms = List(ModuleAF) +} +object ModuleAL extends ModuleType1 { + def as = Nil + def ms = List( + ModuleAG, + ModuleAI + ) +} +object ModuleAM extends ModuleType1 { + def as = Nil + def ms = List( + ModuleAL, + ModuleAE + ) ::: List(ModuleAK) +} +object ModuleBE extends ModuleType1 { + def as = Nil + def ms = Nil +} +object ModuleBF extends ModuleType2 { + def as = Nil + def ms = List(ModuleBE) +} +object ModuleBG extends ModuleType1 { + def as = List("") + def ms = Nil +} +object ModuleBI extends ModuleType1 { + def as = Nil + def ms = List(ModuleBE) +} +object ModuleBK extends ModuleType2 { + def as = Nil + def ms = List(ModuleBF) +} +object ModuleBL extends ModuleType1 { + def as = Nil + def ms = List( + ModuleBG, + ModuleBI + ) +} +object ModuleBM extends ModuleType1 { + def as = Nil + def ms = List( + ModuleBL, + ModuleBE + ) ::: List(ModuleBK) +}
\ No newline at end of file diff --git a/test/files/pos/ticket2251.scala b/test/files/pos/ticket2251.scala new file mode 100644 index 0000000000..7b6efb0ea0 --- /dev/null +++ b/test/files/pos/ticket2251.scala @@ -0,0 +1,25 @@ + +// Martin: I am not sure this is a solvable problem right now. I'll leave it in pending. +// derived from pos/bug1001 +class A +trait B[T <: B[T]] extends A +class C extends B[C] +class D extends B[D] + +class Data { + // force computing lub of C and D (printLubs enabled:) + +/* +lub of List(D, C) at depth 2 + lub of List(D, C) at depth 1 + lub of List(D, C) at depth 0 + lub of List(D, C) is A + lub of List(D, C) is B[_1] forSome { type _1 >: D with C <: A } +lub of List(D, C) is B[_2] forSome { type _2 >: D with C{} <: B[_1] forSome { type _1 >: D with C{} <: A } } +*/ +// --> result = WRONG + + // should be: B[X] forSome {type X <: B[X]} -- can this be done automatically? for now, just detect f-bounded polymorphism and fall back to more coarse approximation + + val data: List[A] = List(new C, new D) +} diff --git a/test/files/run/json.scala.disabled b/test/files/run/json.scala index 2e7ee4aa4d..ec0bad7ebe 100644 --- a/test/files/run/json.scala.disabled +++ b/test/files/run/json.scala @@ -8,7 +8,7 @@ object Test extends Application { printJSON("{\"name\": \"va1ue\"}") // ticket #136 printJSON("{\"name\": { \"name1\": \"va1ue1\", \"name2\": \"va1ue2\" } }") printJSON("{\"name\": \"\\u0022\"}") - printJSON("{\"age\": 0}") + printJSON("{\"age\": 0}") println // from http://en.wikipedia.org/wiki/JSON @@ -63,7 +63,7 @@ object Test extends Application { // from http://json.org/example.html val sample3 = """ {"web-app": { - "servlet": [ + "servlet": [ { "servlet-name": "cofaxCDS", "servlet-class": "org.cofax.cds.CDSServlet", @@ -119,7 +119,7 @@ object Test extends Application { { "servlet-name": "cofaxAdmin", "servlet-class": "org.cofax.cds.AdminServlet"}, - + { "servlet-name": "fileServlet", "servlet-class": "org.cofax.cds.FileServlet"}, @@ -146,7 +146,7 @@ object Test extends Application { "cofaxAdmin": "/admin/*", "fileServlet": "/static/*", "cofaxTools": "/tools/*"}, - + "taglib": { "taglib-uri": "cofax.tld", "taglib-location": "/WEB-INF/tlds/cofax.tld"} diff --git a/test/files/run/stream_length.check b/test/files/run/stream_length.check new file mode 100644 index 0000000000..9906de773c --- /dev/null +++ b/test/files/run/stream_length.check @@ -0,0 +1 @@ +Length: 970299 diff --git a/test/files/run/stream_length.scala b/test/files/run/stream_length.scala new file mode 100644 index 0000000000..68e9cad5ac --- /dev/null +++ b/test/files/run/stream_length.scala @@ -0,0 +1,15 @@ + + +object Test { + def walk(depth: Int, bias: String): Stream[String] = { + if (depth == 0) + Stream(bias) + else { + Stream.concat(Stream.range(1, 100).map((x: Int) => walk(depth-1, bias + x))) + } + } + + def main(args: Array[String]) { + println("Length: " + walk(3, "---").length) + } +} |