Skip to content

Get our test suite working on Java 11 and 16 #522

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
retronym opened this issue Jun 7, 2018 · 20 comments
Closed

Get our test suite working on Java 11 and 16 #522

retronym opened this issue Jun 7, 2018 · 20 comments

Comments

@retronym
Copy link
Member

retronym commented Jun 7, 2018

Here's the current state of running our test suite of Java 9:

https://gist.github.com/retronym/65527edfa7dcb4a4e905f364db9788d3

That's based on sbt testAll on the tip of scala/scala#6733.

I expect the majority of failures will just requires some changes to the test themselves.

Getting these working will let us include Java 9/10 in our CI.

@som-snytt
Copy link

@som-snytt
Copy link

I finally got started on this. I needed an excuse to use Java 10...

@SethTisue
Copy link
Member

Getting these working will let us include Java 9/10 in our CI.

should be very easy in Travis-CI. would be harder in Jenkins.

@som-snytt
Copy link

test issue might be the pun we've been looking for on seth tisue.

@SethTisue
Copy link
Member

@som-snytt can't hear you, too busy watching “Good Times” re-runs

@retronym
Copy link
Member Author

I've fixed the OSGi tests in scala/scala#6937

After scala/scala#6889, I'm down to two failed partests:

# starting 1 test in run
Note: test execution will be non-parallel under -Dpartest.exec.in.process
!! 1 - run/t6146b.scala                          [output differs][duration 9.20s]
% diff /Users/jz/code/scala/test/files/run/t6146b.check /Users/jz/code/scala/test/files/run/t6146b-run.log
@@ -14,19 +14,30 @@ import u._
 import language._

 scala> val S1 = typeOf[c.X.S1.type forSome { val c: C[_] }].typeSymbol.tpeHK
-S1: u.Type = C.X.S1.type
+                                                    ^
+       error: C does not take type parameters

 scala> val S2 = typeOf[O.S2].typeSymbol.tpeHK
-S2: u.Type = C.this.S2
+                         ^
+       error: type S2 is not a member of object O

 scala> val S3 = typeOf[O.S3].typeSymbol.tpeHK
-S3: u.Type = O.S3
+                       ^
+       error: Symbol 'type C.F' is missing from the classpath.
+       This symbol is required by 'class O.S3'.
+       Make sure that type F is in your classpath and check for conflicting dependencies with `-Ylog-classpath`.
+       A full rebuild may help if 'O.class' was compiled against an incompatible version of C.

 scala> val S4 = typeOf[S4].typeSymbol.tpeHK
-S4: u.Type = S4
+                       ^
+       error: Symbol 'type C.F' is missing from the classpath.
+       This symbol is required by 'class S4'.
+       Make sure that type F is in your classpath and check for conflicting dependencies with `-Ylog-classpath`.
+       A full rebuild may help if 'S4.class' was compiled against an incompatible version of C.

 scala> val F = typeOf[c.F[_] forSome { val c: C[_] }].typeSymbol.tpeHK
-F: u.Type = C.this.F
+                                              ^
+       error: C does not take type parameters

 scala> val fTpe = typeOf[O.type].decl(newTermName("foo")).paramss.head.head.tpe
 fTpe: u.Type = O.F[Int]
@@ -38,22 +49,25 @@ memType: (sub: u.Type, scrut: u.Type)u.Type
 scala>

 scala> val mt1 = memType(S1, fTpe)
-mt1: u.Type = O.X.S1.type
+                         ^
+       error: not found: value S1

 scala> global.typeDeconstruct.show(mt1)
-res0: String =
-TypeRef(
-  pre = SingleType(pre = ThisType(object O), object X)
-  TypeSymbol(class S1 extends C.this.F[T])
-)
+                                   ^
+       error: not found: value mt1

 scala> memType(S2, fTpe)
-res1: u.Type = O.S2
+               ^
+       error: not found: value S2

 scala> memType(S3, fTpe)
-res2: u.Type = O.S3
+               ^
+       error: not found: value S3

 scala> memType(S4, fTpe)
-res3: u.Type = S4
+               ^
+       error: type mismatch;
+        found   : S4.type (with underlying type <notype>)
+        required: u.Type

 scala> :quit

# 0/1 passed, 1 failed in run

# starting 1 test in jvm
!! 1 - jvm/javaReflection                        [output differs]
% diff /Users/jz/code/scala/test/files/jvm/javaReflection.check /Users/jz/code/scala/test/files/jvm/javaReflection-jvm.log
@@ -20,218 +20,185 @@ A / A (canon) / A (simple)
 - declared cls: List(class A$B, interface A$C, class A$D$)
 - enclosing   : null (declaring cls) / null (cls) / null (constr) / null (meth)
 - properties  : false (local) / false (member)
-isAnonymous? false
 A$$anon$2 / null (canon) /  (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / null (meth)
 - properties  : false (local) / false (member)
-isAnonymous? true
+assert not class A$$anon$2 is anonymous
 assert not class A$$anon$2
 A$$anon$3 / null (canon) /  (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / public java.lang.Object A.f() (meth)
 - properties  : false (local) / false (member)
-isAnonymous? true
+assert not class A$$anon$3 is anonymous
 assert not class A$$anon$3
 A$$anon$4 / null (canon) /  (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / public java.lang.Object A.f() (meth)
 - properties  : false (local) / false (member)
-isAnonymous? true
+assert not class A$$anon$4 is anonymous
 assert not class A$$anon$4
 A$$anon$5 / null (canon) /  (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / null (meth)
 - properties  : false (local) / false (member)
-isAnonymous? true
+assert not class A$$anon$5 is anonymous
 assert not class A$$anon$5
 A$$anon$6 / null (canon) /  (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / null (meth)
 - properties  : false (local) / false (member)
-isAnonymous? true
+assert not class A$$anon$6 is anonymous
 assert not class A$$anon$6
 A$$anon$7 / null (canon) /  (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / public A(int) (constr) / null (meth)
 - properties  : false (local) / false (member)
-isAnonymous? true
+assert not class A$$anon$7 is anonymous
 assert not class A$$anon$7
 A$B / A.B (canon) / B (simple)
 - declared cls: List()
 - enclosing   : class A (declaring cls) / class A (cls) / null (constr) / null (meth)
 - properties  : false (local) / true (member)
-isAnonymous? false
 A$C / A.C (canon) / C (simple)
 - declared cls: List()
 - enclosing   : class A (declaring cls) / class A (cls) / null (constr) / null (meth)
 - properties  : false (local) / true (member)
-isAnonymous? false
 A$D$ / A.D$ (canon) / D$ (simple)
 - declared cls: List(class A$D$B, interface A$D$C, class A$D$D$)
 - enclosing   : class A (declaring cls) / class A (cls) / null (constr) / null (meth)
 - properties  : false (local) / true (member)
-isAnonymous? false
 A$D$$anon$1 / null (canon) /  (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A$D$ (cls) / null (constr) / null (meth)
 - properties  : false (local) / false (member)
-isAnonymous? true
+assert not class A$D$$anon$1 is anonymous
 assert not class A$D$$anon$1
 A$D$B / A.D$.B (canon) / B (simple)
 - declared cls: List()
 - enclosing   : class A$D$ (declaring cls) / class A$D$ (cls) / null (constr) / null (meth)
 - properties  : false (local) / true (member)
-isAnonymous? false
 A$D$C / A.D$.C (canon) / C (simple)
 - declared cls: List()
 - enclosing   : class A$D$ (declaring cls) / class A$D$ (cls) / null (constr) / null (meth)
 - properties  : false (local) / true (member)
-isAnonymous? false
 A$D$D$ / A.D$.D$ (canon) / D$ (simple)
 - declared cls: List()
 - enclosing   : class A$D$ (declaring cls) / class A$D$ (cls) / null (constr) / null (meth)
 - properties  : false (local) / true (member)
-isAnonymous? false
 A$D$KB$1 / null (canon) / KB$1 (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A$D$ (cls) / null (constr) / public void A$D$.f() (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 A$E$1 / null (canon) / E$1 (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / public java.lang.Object A.f() (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 A$F$1 / null (canon) / F$1 (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / public java.lang.Object A.f() (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 A$G$1$ / null (canon) / G$1$ (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / public java.lang.Object A.f() (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 A$H$1 / null (canon) / H$1 (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / public java.lang.Object A.f() (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 A$I$1 / null (canon) / I$1 (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / public java.lang.Object A.f() (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 A$J$1$ / null (canon) / J$1$ (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / public java.lang.Object A.f() (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 A$K$1 / null (canon) / K$1 (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / null (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 A$L$1 / null (canon) / L$1 (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / null (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 A$M$1$ / null (canon) / M$1$ (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / null (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 A$N$1 / null (canon) / N$1 (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / null (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 A$O$1 / null (canon) / O$1 (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / null (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 A$P$1$ / null (canon) / P$1$ (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / null (constr) / null (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 A$Q$1 / null (canon) / Q$1 (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / public A(int) (constr) / null (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 A$R$1 / null (canon) / R$1 (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / public A(int) (constr) / null (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 A$S$1$ / null (canon) / S$1$ (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class A (cls) / public A(int) (constr) / null (meth)
 - properties  : true (local) / false (member)
-isAnonymous? false
 AO / AO (canon) / AO (simple)
 - declared cls: List(class AO$B, interface AO$C, class AO$D$)
 - enclosing   : null (declaring cls) / null (cls) / null (constr) / null (meth)
 - properties  : false (local) / false (member)
-isAnonymous? false
 AO$ / AO$ (canon) / AO$ (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / null (cls) / null (constr) / null (meth)
 - properties  : false (local) / false (member)
-isAnonymous? false
 AO$$anon$8 / null (canon) /  (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / class AO$ (cls) / null (constr) / null (meth)
 - properties  : false (local) / false (member)
-isAnonymous? true
+assert not class AO$$anon$8 is anonymous
 assert not class AO$$anon$8
 AO$B / AO.B (canon) / B (simple)
 - declared cls: List()
 - enclosing   : class AO (declaring cls) / class AO (cls) / null (constr) / null (meth)
 - properties  : false (local) / true (member)
-isAnonymous? false
 AO$C / AO.C (canon) / C (simple)
 - declared cls: List()
 - enclosing   : class AO (declaring cls) / class AO (cls) / null (constr) / null (meth)
 - properties  : false (local) / true (member)
-isAnonymous? false
 AO$D$ / AO.D$ (canon) / D$ (simple)
 - declared cls: List()
 - enclosing   : class AO (declaring cls) / class AO (cls) / null (constr) / null (meth)
 - properties  : false (local) / true (member)
-isAnonymous? false
 AT / AT (canon) / AT (simple)
 - declared cls: List(class AT$B, interface AT$C, class AT$D$)
 - enclosing   : null (declaring cls) / null (cls) / null (constr) / null (meth)
 - properties  : false (local) / false (member)
-isAnonymous? false
 AT$$anon$9 / null (canon) /  (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / interface AT (cls) / null (constr) / null (meth)
 - properties  : false (local) / false (member)
-isAnonymous? true
+assert not class AT$$anon$9 is anonymous
 assert not class AT$$anon$9
 AT$B / AT.B (canon) / B (simple)
 - declared cls: List()
 - enclosing   : interface AT (declaring cls) / interface AT (cls) / null (constr) / null (meth)
 - properties  : false (local) / true (member)
-isAnonymous? false
 AT$C / AT.C (canon) / C (simple)
 - declared cls: List()
 - enclosing   : interface AT (declaring cls) / interface AT (cls) / null (constr) / null (meth)
 - properties  : false (local) / true (member)
-isAnonymous? false
 AT$D$ / AT.D$ (canon) / D$ (simple)
 - declared cls: List()
 - enclosing   : interface AT (declaring cls) / interface AT (cls) / null (constr) / null (meth)
 - properties  : false (local) / true (member)
-isAnonymous? false
 T / T (canon) / T (simple)
 - declared cls: List()
 - enclosing   : null (declaring cls) / null (cls) / null (constr) / null (meth)
 - properties  : false (local) / false (member)
-isAnonymous? false

# 0/1 passed, 1 failed in jvm

# Failed test paths (this command will update checkfiles)
partest --update-check \
  /Users/jz/code/scala/test/files/run/t6146b.scala \
  /Users/jz/code/scala/test/files/jvm/javaReflection

As well as:

[error] - bench/compile
[error]   - bench/compile:compileIncremental failed: Compilation failed
[error] - doc

@som-snytt
Copy link

I was eager to understand the bench fails but had a busy weekend. It wasn't immediately obvious if it was an sbt-jmh versioning or what. I saw some classpath manipulation in the plugin, but got time boxed.

@retronym
Copy link
Member Author

I lost an edit to the to comment above. The compilation of bench is fixed by upgrading STARR to 2.13.x which contains ASM 6.2. CI uses boostraps before testAll so it should already be fine there.

For the doc, we need to exclude module-info.class from getting a ClassSymbol. module-info is not a valid class name so PackageLoader should exclude it. Scaladoc hits this because it enumerates all package members and calls .info. https://github.com/retronym/scala/tree/topic/module-info collects fragments of the fix.

@som-snytt
Copy link

som-snytt commented Jul 16, 2018

In jvm/JavaReflection, I flip-flopped on handling the isAnonymous test; maybe I committed the wrong check, or didn't #partest java8 the output.

Sorry about that @retronym scala/scala#6939

Also FWIW:

# starting 1 test in run
Note: test execution will be non-parallel under -Dpartest.exec.in.process
ok 1 - run/t6146b.scala                        [duration 13.13s]

@xuwei-k
Copy link
Contributor

xuwei-k commented Oct 1, 2018

@SethTisue SethTisue changed the title Get our test suite working on Java 9+ Get our test suite working on Java 11 Oct 1, 2018
@SethTisue
Copy link
Member

(I've changed the ticket title since JDK 9 and 10 are now history)

@SethTisue
Copy link
Member

@diesalbla here's the umbrella ticket on this, re your recent PR scala/scala#8331

some (all?) of Som's fixes so far are in scala/scala#6889 .

@dwijnand dwijnand added this to the Backlog milestone Oct 29, 2020
@SethTisue SethTisue self-assigned this Oct 29, 2020
@SethTisue
Copy link
Member

I do still intend to add 11 and perhaps 15 to our CI — I'm tasked with it (@lrytz agrees it's needed), but it hasn't made it to the top of my queue. I hope to get to it this year.

@dwijnand dwijnand assigned dwijnand and SethTisue and unassigned SethTisue Oct 29, 2020
@SethTisue
Copy link
Member

I'm a bit concerned that just straight up adding 11 to the matrix would make PR validation slower. Maybe a nightly run?

@dwijnand
Copy link
Member

So, with Travis CI in a better state where it can run on forks (by having testAll1 and testAll2 parallel jobs) I think we could benefit from fixing up the remaining JDK 11 issues (mostly on 2.12.x) and enforcing they stay fixed by running a nightly Travis CI cron job - and setting that up would be easy for me. So I'll try.

@dwijnand
Copy link
Member

Running testAll locally on JDK 11:

[error] Test scala.reflect.io.ZipArchiveTest.manifest$u0020resources$u0020just$u0020works failed: java.lang.AssertionError: null, took 0.012 sec
[error]     at scala.reflect.io.ZipArchiveTest.$anonfun$manifest$u0020resources$u0020just$u0020works$2(ZipArchiveTest.scala:45)
[error]     at scala.reflect.io.ZipArchiveTest.$anonfun$manifest$u0020resources$u0020just$u0020works$2$adapted(ZipArchiveTest.scala:43)
[error]     at scala.util.Using$.$anonfun$resources$2(Using.scala:298)
[error]     at scala.util.Using$.resource(Using.scala:261)
[error]     at scala.util.Using$.$anonfun$resources$1(Using.scala:297)
[error]     at scala.util.Using$.resource(Using.scala:261)
[error]     at scala.util.Using$.resources(Using.scala:296)
[error]     at scala.reflect.io.ZipArchiveTest.manifest$u0020resources$u0020just$u0020works(ZipArchiveTest.scala:43)
[error]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error]     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error]     at java.lang.reflect.Method.invoke(Method.java:566)
[error]     ...
[error] Test scala.tools.nsc.classpath.ZipAndJarFileLookupFactoryTest.manifest$u0020classpath$u0020entry$u0020works failed: java.lang.AssertionError: null, took 0.006 sec
[error]     at scala.tools.nsc.classpath.ZipAndJarFileLookupFactoryTest.$anonfun$manifest$u0020classpath$u0020entry$u0020works$5(ZipAndJarFileLookupFactoryTest.scala:91)
[error]     at scala.tools.nsc.classpath.ZipAndJarFileLookupFactoryTest.$anonfun$manifest$u0020classpath$u0020entry$u0020works$5$adapted(ZipAndJarFileLookupFactoryTest.scala:88)
[error]     at scala.util.Using$.$anonfun$resources$5(Using.scala:328)
[error]     at scala.util.Using$.resource(Using.scala:261)
[error]     at scala.util.Using$.$anonfun$resources$4(Using.scala:327)
[error]     at scala.util.Using$.resource(Using.scala:261)
[error]     at scala.util.Using$.$anonfun$resources$3(Using.scala:326)
[error]     at scala.util.Using$.resource(Using.scala:261)
[error]     at scala.util.Using$.resources(Using.scala:325)
[error]     at scala.tools.nsc.classpath.ZipAndJarFileLookupFactoryTest.manifest$u0020classpath$u0020entry$u0020works(ZipAndJarFileLookupFactoryTest.scala:88)
[error]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error]     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error]     at java.lang.reflect.Method.invoke(Method.java:566)
[error]     ...
!!    1 - run/stream-gc.scala                       [non-zero exit code]
!!    2 - run/t2318.scala                           [output differs][duration 6.03s]
!!    3 - run/t7455                                 [output differs][duration 5.76s]
!!    1 - neg/checksensible.scala                   [output differs]
!!    2 - neg/java-import-non-existing-selector     [output differs]
!!  1 - run/anyref-doc.scala                      [output differs][duration 6.28s]
!!  2 - run/t191.scala                            [output differs]
[error] scala-library: Failed binary compatibility check against org.scala-lang:scala-library:2.13.0! Found 1 potential problems (filtered 588)
[error]  * method asIterator()java.util.Iterator in class scala.collection.convert.JavaCollectionWrappers#IteratorWrapper does not have a correspondent in other version
[error]    filter with: ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.convert.JavaCollectionWrappers#IteratorWrapper.asIterator")

@dwijnand
Copy link
Member

The unit tests I guess are flaky and/or cross-talk? Can't repro. The partests and MiMa I've looked to address with scala/scala#9323.

@som-snytt
Copy link

@dwijnand Probably you're on Windows? I get the following on first run. I'll double check.

[error] Test scala.SerializationStabilityTest.testAll failed: java.lang.AssertionError: assertion failed: instance =
 Object : class scala.reflect.ManifestFactory$ObjectManifest
[error]  serialization unstable: rO0ABXNyACxzY2FsYS5yZWZsZWN0Lk1hbmlmZXN0RmFjdG9yeSRPYmplY3RNYW5pZmVzdAAAAAAAAAABAgA
AeHIALXNjYWxhLnJlZmxlY3QuTWFuaWZlc3RGYWN0b3J5JFBoYW50b21NYW5pZmVzdAAAAAAAAAABAgABTAAIdG9TdHJpbmd0ABJMamF2YS9sYW5nL1N
0cmluZzt4cgAvc2NhbGEucmVmbGVjdC5NYW5pZmVzdEZhY3RvcnkkQ2xhc3NUeXBlTWFuaWZlc3QAAAAAAAAAAQIAA0wABnByZWZpeHQADkxzY2FsYS9
PcHRpb247TAAMcnVudGltZUNsYXNzdAARTGphdmEvbGFuZy9DbGFzcztMAA10eXBlQXJndW1lbnRzdAAhTHNjYWxhL2NvbGxlY3Rpb24vaW1tdXRhYmx
lL0xpc3Q7eHBzcgAmc2NhbGEucnVudGltZS5Nb2R1bGVTZXJpYWxpemF0aW9uUHJveHkAAAAAAAAAAQIAAUwAC21vZHVsZUNsYXNzcQB+AAV4cHZyAAt
zY2FsYS5Ob25lJEZQJPZTypSsAgAAeHIADHNjYWxhLk9wdGlvbv5pN/3bDmZ0AgAAeHB2cgAQamF2YS5sYW5nLk9iamVjdAAAAAAAAAAAAAAAeHBzcgA
yc2NhbGEuY29sbGVjdGlvbi5nZW5lcmljLkRlZmF1bHRTZXJpYWxpemF0aW9uUHJveHkAAAAAAAAAAwMAAUwAB2ZhY3Rvcnl0ABpMc2NhbGEvY29sbGV
jdGlvbi9GYWN0b3J5O3hwc3IAKnNjYWxhLmNvbGxlY3Rpb24uSXRlcmFibGVGYWN0b3J5JFRvRmFjdG9yeQAAAAAAAAADAgABTAAHZmFjdG9yeXQAIkx
zY2FsYS9jb2xsZWN0aW9uL0l0ZXJhYmxlRmFjdG9yeTt4cHNxAH4ACHZyACBzY2FsYS5jb2xsZWN0aW9uLmltbXV0YWJsZS5MaXN0JAAAAAAAAAADAgA
AeHB3BAAAAAB4dAAGT2JqZWN0
[error]    found: rO0ABXNyACxzY2FsYS5yZWZsZWN0Lk1hbmlmZXN0RmFjdG9yeSRPYmplY3RNYW5pZmVzdAAAAAAAAAABAgAAeHIALXNjYWxhLn
JlZmxlY3QuTWFuaWZlc3RGYWN0b3J5JFBoYW50b21NYW5pZmVzdAAAAAAAAAABAgABTAAIdG9TdHJpbmd0ABJMamF2YS9sYW5nL1N0cmluZzt4cgAvc2
NhbGEucmVmbGVjdC5NYW5pZmVzdEZhY3RvcnkkQ2xhc3NUeXBlTWFuaWZlc3QAAAAAAAAAAQIAA0wABnByZWZpeHQADkxzY2FsYS9PcHRpb247TAAMcn
VudGltZUNsYXNzdAARTGphdmEvbGFuZy9DbGFzcztMAA10eXBlQXJndW1lbnRzdAAhTHNjYWxhL2NvbGxlY3Rpb24vaW1tdXRhYmxlL0xpc3Q7eHBzcg
Amc2NhbGEucnVudGltZS5Nb2R1bGVTZXJpYWxpemF0aW9uUHJveHkAAAAAAAAAAQIAAUwAC21vZHVsZUNsYXNzcQB+AAV4cHZyAAtzY2FsYS5Ob25lJE
ZQJPZTypSsAgAAeHIADHNjYWxhLk9wdGlvbv5pN/3bDmZ0AgAAeHB2cgAQamF2YS5sYW5nLk9iamVjdAAAAAAAAAAAAAAAeHBwdAAGT2JqZWN0, took
 0.057 sec
[error]     at scala.Predef$.assert(Predef.scala:280)
[error]     at scala.SerializationStability$.check(SerializationStabilityTest.scala:89)
[error]     at scala.SerializationStability$.main(SerializationStabilityTest.scala:150)
[error]     at scala.SerializationStabilityTest.testAll(SerializationStabilityTest.scala:278)
[error]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error]     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error]     at java.lang.reflect.Method.invoke(Method.java:566)
[error]     ...

[error] Test scala.tools.nsc.classpath.MultiReleaseJarTest.mrJar failed: java.nio.file.FileSystemException: C:\cygwi
n64\tmp\mr-jar-test-14957535972650899542.jar: The process cannot access the file because it is being used by another
 process.
[error] , took 0.729 sec
[error]     at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:92)
[error]     at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
[error]     at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
[error]     at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:274)
[error]     at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:110)
[error]     at java.nio.file.Files.deleteIfExists(Files.java:1180)
[error]     at scala.tools.nsc.classpath.MultiReleaseJarTest.$anonfun$mrJar$4(MultiReleaseJarTest.scala:51)
[error]     at scala.tools.nsc.classpath.MultiReleaseJarTest.$anonfun$mrJar$4$adapted(MultiReleaseJarTest.scala:51)
[error]     at scala.collection.immutable.List.foreach(List.scala:333)
[error]     at scala.tools.nsc.classpath.MultiReleaseJarTest.mrJar(MultiReleaseJarTest.scala:51)
[error]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error]     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error]     at java.lang.reflect.Method.invoke(Method.java:566)
[error]     ...

@dwijnand
Copy link
Member

No, I'm on macOS. So my first failure was running testAll, while my attempt to reproduce was with something like junit/testOnly scala.reflect.io.ZipArchiveTest scala.tools.nsc.classpath.ZipAndJarFileLookupFactoryTest. So maybe there's something there.

@SethTisue SethTisue changed the title Get our test suite working on Java 11 Get our test suite working on Java 11 and 16 Mar 17, 2021
@SethTisue
Copy link
Member

fixed by #559

thx @som-snytt and everyone else who helped chip away at this over the years

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants