1
1
package dotc
2
2
3
- import org .junit .Test
4
3
import test ._
4
+ import dotty .partest ._
5
+ import org .junit .Test
6
+ import org .junit .experimental .categories ._
7
+
5
8
6
9
class tests extends CompilerTest {
7
10
@@ -13,12 +16,13 @@ class tests extends CompilerTest {
13
16
// "-Yshow-suppressed-errors",
14
17
" -pagewidth" , " 160" )
15
18
19
+ val defaultOutputDir = " ./out/"
20
+
16
21
implicit val defaultOptions = noCheckOptions ++ List (
17
22
" -Yno-deep-subtypes" , " -Yno-double-bindings" ,
18
23
" -Ycheck:tailrec,resolveSuper,mixin,restoreScopes" ,
19
- " -d" , " ./out/ "
24
+ " -d" , defaultOutputDir
20
25
)
21
-
22
26
val doEmitBytecode = List (" -Ystop-before:terminal" )
23
27
val failedbyName = List (" -Ystop-before:collectEntryPoints" ) // #288
24
28
val testPickling = List (" -Xprint-types" , " -Ytest-pickler" , " -Ystop-after:pickler" )
@@ -30,19 +34,23 @@ class tests extends CompilerTest {
30
34
val allowDeepSubtypes = defaultOptions diff List (" -Yno-deep-subtypes" )
31
35
val allowDoubleBindings = defaultOptions diff List (" -Yno-double-bindings" )
32
36
33
- val posDir = " ./tests/pos/"
34
- val posSpecialDir = " ./tests/pos-special/"
35
- val negDir = " ./tests/neg/"
36
- val newDir = " ./tests/new/"
37
- val dotcDir = " ./src/dotty/"
38
- val picklingDir = " ./tests/pickling"
37
+ val testsDir = " ./tests/"
38
+ val posDir = testsDir + " pos/"
39
+ val posSpecialDir = testsDir + " pos-special/"
40
+ val negDir = testsDir + " neg/"
41
+ val newDir = testsDir + " new/"
39
42
40
- @ Test def pickle_pickleOK = compileDir(picklingDir, testPickling)
41
- @ Test def pickle_pickling = compileDir(dotcDir + " tools/dotc/core/pickling/" , testPickling)
42
- @ Test def pickle_ast = compileDir(dotcDir + " tools/dotc/ast/" , testPickling)
43
+ val dottyDir = " ./src/dotty/"
44
+ val toolsDir = dottyDir + " tools/"
45
+ val dotcDir = toolsDir + " dotc/"
46
+ val coreDir = dotcDir + " core/"
43
47
44
- // @Test def pickle_core = compileDir(dotcDir + "tools/dotc/core", testPickling, xerrors = 2) // two spurious comparison errors in Types and TypeOps
48
+ @ Test def pickle_pickleOK = compileDir(testsDir, " pickling" , testPickling)
49
+ @ Test def pickle_pickling = compileDir(coreDir, " pickling" , testPickling)
50
+ @ Test def pickle_ast = compileDir(dotcDir, " ast" , testPickling)
45
51
52
+ // @Test def pickle_core = compileDir(dotcDir, "core", testPickling, xerrors = 2) // two spurious comparison errors in Types and TypeOps
53
+
46
54
@ Test def pos_t2168_pat = compileFile(posDir, " t2168" , twice)
47
55
@ Test def pos_erasure = compileFile(posDir, " erasure" , twice)
48
56
@ Test def pos_Coder () = compileFile(posDir, " Coder" , twice)
@@ -66,12 +74,12 @@ class tests extends CompilerTest {
66
74
@ Test def pos_packageobject () = compileFile(posDir, " packageobject" , twice)
67
75
@ Test def pos_overloaded () = compileFile(posDir, " overloaded" , twice)
68
76
@ Test def pos_overrides () = compileFile(posDir, " overrides" , twice)
69
- @ Test def pos_javaOverride () = compileDir(posDir + " java-override" , twice)
77
+ @ Test def pos_javaOverride () = compileDir(posDir, " java-override" , twice)
70
78
@ Test def pos_templateParents () = compileFile(posDir, " templateParents" , twice)
71
79
@ Test def pos_overloadedAccess = compileFile(posDir, " overloadedAccess" , twice)
72
80
@ Test def pos_approximateUnion = compileFile(posDir, " approximateUnion" , twice)
73
- @ Test def pos_tailcall = compileDir(posDir + " tailcall/ " , twice)
74
- @ Test def pos_nullarify = compileFile(posDir, " nullarify" , " -Ycheck:nullarify" :: Nil )
81
+ @ Test def pos_tailcall = compileDir(posDir, " tailcall" , twice)
82
+ @ Test def pos_nullarify = compileFile(posDir, " nullarify" , args = " -Ycheck:nullarify" :: Nil )
75
83
@ Test def pos_subtyping = compileFile(posDir, " subtyping" , twice)
76
84
@ Test def pos_t2613 = compileFile(posSpecialDir, " t2613" )(allowDeepSubtypes)
77
85
@ Test def pos_packageObj = compileFile(posDir, " i0239" , twice)
@@ -92,7 +100,7 @@ class tests extends CompilerTest {
92
100
@ Test def neg_privates () = compileFile(negDir, " privates" , xerrors = 2 )
93
101
@ Test def neg_rootImports = compileFile(negDir, " rootImplicits" , xerrors = 2 )
94
102
@ Test def neg_templateParents () = compileFile(negDir, " templateParents" , xerrors = 3 )
95
- @ Test def neg_autoTupling = compileFile(posDir, " autoTuplingTest" , " -language:noAutoTupling" :: Nil , xerrors = 4 )
103
+ @ Test def neg_autoTupling = compileFile(posDir, " autoTuplingTest" , args = " -language:noAutoTupling" :: Nil , xerrors = 4 )
96
104
@ Test def neg_autoTupling2 = compileFile(negDir, " autoTuplingTest" , xerrors = 4 )
97
105
@ Test def neg_companions = compileFile(negDir, " companions" , xerrors = 1 )
98
106
@ Test def neg_over = compileFile(negDir, " over" , xerrors = 3 )
@@ -102,14 +110,18 @@ class tests extends CompilerTest {
102
110
@ Test def neg_i50_volatile = compileFile(negDir, " i50-volatile" , xerrors = 6 )
103
111
@ Test def neg_t0273_doubledefs = compileFile(negDir, " t0273" , xerrors = 1 )
104
112
@ Test def neg_zoo = compileFile(negDir, " zoo" , xerrors = 12 )
105
- @ Test def neg_t1192_legalPrefix = compileFile(negDir, " t1192" , xerrors = 1 )
106
- @ Test def neg_tailcall_t1672b = compileFile(negDir, " tailcall/t1672b" , xerrors = 6 )
107
- @ Test def neg_tailcall_t3275 = compileFile(negDir, " tailcall/t3275" , xerrors = 1 )
108
- @ Test def neg_tailcall_t6574 = compileFile(negDir, " tailcall/t6574" , xerrors = 2 )
109
- @ Test def neg_tailcall = compileFile(negDir, " tailcall/tailrec" , xerrors = 7 )
110
- @ Test def neg_tailcall2 = compileFile(negDir, " tailcall/tailrec-2" , xerrors = 2 )
111
- @ Test def neg_tailcall3 = compileFile(negDir, " tailcall/tailrec-3" , xerrors = 2 )
112
- @ Test def nef_t1279a = compileFile(negDir, " t1279a" , xerrors = 1 )
113
+ // TODO: this test file doesn't exist (anymore?), remove?
114
+ // @Test def neg_t1192_legalPrefix = compileFile(negDir, "t1192", xerrors = 1)
115
+
116
+ val negTailcallDir = negDir + " tailcall/"
117
+ @ Test def neg_tailcall_t1672b = compileFile(negTailcallDir, " t1672b" , xerrors = 6 )
118
+ @ Test def neg_tailcall_t3275 = compileFile(negTailcallDir, " t3275" , xerrors = 1 )
119
+ @ Test def neg_tailcall_t6574 = compileFile(negTailcallDir, " t6574" , xerrors = 2 )
120
+ @ Test def neg_tailcall = compileFile(negTailcallDir, " tailrec" , xerrors = 7 )
121
+ @ Test def neg_tailcall2 = compileFile(negTailcallDir, " tailrec-2" , xerrors = 2 )
122
+ @ Test def neg_tailcall3 = compileFile(negTailcallDir, " tailrec-3" , xerrors = 2 )
123
+
124
+ @ Test def neg_t1279a = compileFile(negDir, " t1279a" , xerrors = 1 )
113
125
@ Test def neg_t1843_variances = compileFile(negDir, " t1843-variances" , xerrors = 1 )
114
126
@ Test def neg_t2660_ambi = compileFile(negDir, " t2660" , xerrors = 2 )
115
127
@ Test def neg_t2994 = compileFile(negDir, " t2994" , xerrors = 2 )
@@ -127,62 +139,60 @@ class tests extends CompilerTest {
127
139
@ Test def neg_moduleSubtyping = compileFile(negDir, " moduleSubtyping" , xerrors = 4 )
128
140
@ Test def neg_escapingRefs = compileFile(negDir, " escapingRefs" , xerrors = 2 )
129
141
130
- @ Test def dotc = compileDir(dotcDir + " tools/ dotc" , failedOther)(allowDeepSubtypes ++ twice) // see dotc_core
131
- @ Test def dotc_ast = compileDir(dotcDir + " tools/dotc/ ast" , failedOther ++ twice)
142
+ @ Test def dotc = compileDir(toolsDir, " dotc" , failedOther)(allowDeepSubtypes ++ twice) // see dotc_core
143
+ @ Test def dotc_ast = compileDir(dotcDir, " ast" , failedOther ++ twice)
132
144
// similar to dotc_core_pickling but for another anon class. Still during firstTransform
133
- @ Test def dotc_config = compileDir(dotcDir + " tools/dotc/ config" )
134
- @ Test def dotc_core = compileDir(dotcDir + " tools/dotc/ core" , failedOther)(" -Yno-double-bindings" :: allowDeepSubtypes)// twice omitted to make tests run faster
145
+ @ Test def dotc_config = compileDir(dotcDir, " config" )
146
+ @ Test def dotc_core = compileDir(dotcDir, " core" , failedOther)(" -Yno-double-bindings" :: allowDeepSubtypes)// twice omitted to make tests run faster
135
147
// error: error while loading ConstraintHandling$$anon$1$,
136
148
// class file 'target/scala-2.11/dotty_2.11-0.1-SNAPSHOT.jar(dotty/tools/dotc/core/ConstraintHandling$$anon$1.class)'
137
149
// has location not matching its contents: contains class $anon
138
150
139
- @ Test def dotc_core_pickling = compileDir(dotcDir + " tools/dotc/core/ pickling" , failedOther)(allowDeepSubtypes)// twice omitted to make tests run faster
151
+ @ Test def dotc_core_pickling = compileDir(coreDir, " pickling" , failedOther)(allowDeepSubtypes)// twice omitted to make tests run faster
140
152
// exception caught when loading class ClassfileParser$$anon$1: dotty.tools.dotc.core.Denotations$NotDefinedHere:
141
153
// demanding denotation of module class ClassfileParser$$anon$1$ at phase frontend(1) outside defined interval:
142
154
// defined periods are Period(31..36, run = 2) Period(3..24, run = 2) Period(25..26, run = 2)
143
155
// Period(27..28, run = 2) Period(29..29, run = 2) Period(30..30, run = 2)
144
156
// inside FirstTransform at dotty.tools.dotc.transform.FirstTransform.transform(FirstTransform.scala:33)
145
157
// weird.
146
158
147
- @ Test def dotc_transform = compileDir(dotcDir + " tools/dotc/ transform" )// twice omitted to make tests run faster
159
+ @ Test def dotc_transform = compileDir(dotcDir, " transform" )// twice omitted to make tests run faster
148
160
149
- @ Test def dotc_parsing = compileDir(dotcDir + " tools/dotc/ parsing" )// twice omitted to make tests run faster
161
+ @ Test def dotc_parsing = compileDir(dotcDir, " parsing" ) // twice omitted to make tests run faster
150
162
151
- @ Test def dotc_printing = compileDir(dotcDir + " tools/dotc/ printing" ) // twice omitted to make tests run faster
163
+ @ Test def dotc_printing = compileDir(dotcDir, " printing" ) // twice omitted to make tests run faster
152
164
153
- @ Test def dotc_reporting = compileDir(dotcDir + " tools/dotc/ reporting" ) // twice omitted to make tests run faster
165
+ @ Test def dotc_reporting = compileDir(dotcDir, " reporting" ) // twice omitted to make tests run faster
154
166
155
- @ Test def dotc_typer = compileDir(dotcDir + " tools/dotc/ typer" , failedOther) // twice omitted to make tests run faster
167
+ @ Test def dotc_typer = compileDir(dotcDir, " typer" , failedOther)// twice omitted to make tests run faster
156
168
// error: error while loading Checking$$anon$2$,
157
169
// class file 'target/scala-2.11/dotty_2.11-0.1-SNAPSHOT.jar(dotty/tools/dotc/typer/Checking$$anon$2.class)'
158
170
// has location not matching its contents: contains class $anon
159
171
160
- @ Test def dotc_util = compileDir(dotcDir + " tools/dotc/ util" , failedOther ++ twice)
172
+ @ Test def dotc_util = compileDir(dotcDir, " util" , failedOther ++ twice)
161
173
// java.lang.ClassCastException: dotty.tools.dotc.core.Types$NoType$ cannot be cast to dotty.tools.dotc.core.Types$ClassInfo
162
174
// at dotty.tools.dotc.core.SymDenotations$ClassDenotation.classInfo(SymDenotations.scala:1026)
163
175
// at dotty.tools.dotc.transform.ExtensionMethods.transform(ExtensionMethods.scala:38)
164
176
165
- @ Test def tools_io = compileDir(dotcDir + " tools/ io" , failedOther ++ twice) // inner class has symbol <none>
177
+ @ Test def tools_io = compileDir(toolsDir, " io" , failedOther ++ twice) // inner class has symbol <none>
166
178
167
179
@ Test def helloWorld = compileFile(posDir, " HelloWorld" , twice)
168
180
@ Test def labels = compileFile(posDir, " Labels" , twice)
169
- // @Test def tools = compileDir(dotcDir + "tools", "-deep" :: Nil)(allowDeepSubtypes)
181
+ // @Test def tools = compileDir(dottyDir, "tools", "-deep" :: Nil)(allowDeepSubtypes)
170
182
171
- @ Test def testNonCyclic = compileArgs(Array (
172
- dotcDir + " tools/dotc/CompilationUnit.scala" ,
173
- dotcDir + " tools/dotc/core/Types.scala" ,
174
- dotcDir + " tools/dotc/ast/Trees.scala" ,
175
- " -Xprompt"
176
- ) ++ staleSymbolError ++ twice)
183
+ @ Test def testNonCyclic = compileList(" testNonCyclic" , List (
184
+ dotcDir + " CompilationUnit.scala" ,
185
+ coreDir + " Types.scala" ,
186
+ dotcDir + " ast/Trees.scala"
187
+ ), List (" -Xprompt" ) ++ staleSymbolError ++ twice)
177
188
178
- @ Test def testIssue_34 = compileArgs(Array (
179
- dotcDir + " tools/dotc/config/Properties.scala" ,
180
- dotcDir + " tools/dotc/config/PathResolver.scala" ,
181
- // "-Ylog:frontend",
182
- " -Xprompt" ) ++ staleSymbolError ++ twice)
189
+ @ Test def testIssue_34 = compileList(" testIssue_34" , List (
190
+ dotcDir + " config/Properties.scala" ,
191
+ dotcDir + " config/PathResolver.scala"
192
+ ), List (/* "-Ylog:frontend", */ " -Xprompt" ) ++ staleSymbolError ++ twice)
183
193
184
194
val javaDir = " ./tests/pos/java-interop/"
185
195
@ Test def java_all = compileFiles(javaDir, twice)
186
196
187
- // @Test def dotc_compilercommand = compileFile(dotcDir + "tools/dotc/ config/", "CompilerCommand")
197
+ // @Test def dotc_compilercommand = compileFile(dotcDir + "config/", "CompilerCommand")
188
198
}
0 commit comments