imagej / imagej-legacy

ImageJ+ImageJ2 compatibility layer
https://imagej.net/libs/imagej-legacy
BSD 2-Clause "Simplified" License
16 stars 25 forks source link

MacroTest failing on Windows #198

Closed imagejan closed 1 year ago

imagejan commented 6 years ago

When building with mvn clean install on Windows (Git Bash), MacroTest#testBarePluginFromMacro() fails with:

[INFO] Running net.imagej.legacy.MacroTest
Set_Property_Test not up-to-date because 1 source files are not up-to-date (C:\Users\eglijan\AppData\Local\Temp\java7120924943914832252\src\main\java\Set_Property_Test.java)
Compiling 1 file in C:\Users\eglijan\AppData\Local\Temp\java7120924943914832252
[-classpath, C:\Users\eglijan\AppData\Local\Temp\java7120924943914832252\target\classes;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\access-bridge-64.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\cldrdata.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\dnsns.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\jaccess.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\jfxrt.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\localedata.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\nashorn.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\sunec.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\sunjce_provider.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\sunmscapi.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\sunpkcs11.jar;C:\Users\eglijan\AppData\Local\Temp\surefire185089902970536562\surefirebooter7785021008127858832.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\zipfs.jar, -d, C:\Users\eglijan\AppData\Local\Temp\java7120924943914832252\target\classes, C:\Users\eglijan\AppData\Local\Temp\java7120924943914832252\src\main\java\Set_Property_Test.java]
using the class path: C:\Users\eglijan\AppData\Local\Temp\java7120924943914832252\target\classes;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\access-bridge-64.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\cldrdata.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\dnsns.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\jaccess.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\jfxrt.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\localedata.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\nashorn.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\sunec.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\sunjce_provider.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\sunmscapi.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\sunpkcs11.jar;C:\Users\eglijan\AppData\Local\Temp\surefire185089902970536562\surefirebooter7785021008127858832.jar;C:\Program%20Files\Java\jdk1.8.0_172\jre\lib\ext\zipfs.jar
C:\Users\eglijan\AppData\Local\Temp\java7120924943914832252\src\main\java\Set_Property_Test.java:1: error: package ij does not exist
import ij.IJ;
         ^
C:\Users\eglijan\AppData\Local\Temp\java7120924943914832252\src\main\java\Set_Property_Test.java:2: error: package ij.gui does not exist
import ij.gui.GenericDialog;
             ^
C:\Users\eglijan\AppData\Local\Temp\java7120924943914832252\src\main\java\Set_Property_Test.java:3: error: package ij.plugin does not exist
import ij.plugin.PlugIn;
                ^
C:\Users\eglijan\AppData\Local\Temp\java7120924943914832252\src\main\java\Set_Property_Test.java:5: error: cannot find symbol
public class Set_Property_Test implements PlugIn {
                                          ^
  symbol: class PlugIn
4 errors
[ERROR] null
java.lang.ClassNotFoundException: Set_Property_Test
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at org.scijava.plugins.scripting.java.JavaEngine.compile(JavaEngine.java:228)
        at org.scijava.plugins.scripting.java.JavaEngine.eval(JavaEngine.java:136)
        at org.scijava.script.ScriptModule.run(ScriptModule.java:160)
        at org.scijava.module.ModuleRunner.run(ModuleRunner.java:168)
        at org.scijava.module.ModuleRunner.call(ModuleRunner.java:127)
        at org.scijava.module.ModuleRunner.call(ModuleRunner.java:66)
        at org.scijava.thread.DefaultThreadService$3.call(DefaultThreadService.java:238)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
[ERROR] Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.253 s <<< FAILURE! - in net.imagej.legacy.MacroTest
[ERROR] testBarePluginFromMacro(net.imagej.legacy.MacroTest)  Time elapsed: 0.155 s  <<< FAILURE!
org.junit.ComparisonFailure: expected:<[c:\hello\world]> but was:<[E:\code\imagej\imagej-legacy\target\bare-testBarePluginFromMacro-L114]>
        at net.imagej.legacy.MacroTest.testBarePluginFromMacro(MacroTest.java:142)

The issue seems to be Windows-specific, as builds on Travis run fine.

imagejan commented 6 years ago

I was wrong: current master does build on Windows, but it starts failing when you bump the parent pom-scijava version to 23.1.1.

imagejan commented 6 years ago

Update: pinning to <maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version> fixes the build on Windows with pom-scijava 23.1.1. Something must have changed in maven-surefire-plugin between 2.19 and 2.21.

Update2: the breaking change is between versions 2.20 (passing) and 2.20.1 (failing) of maven-surefire-plugin.

ctrueden commented 6 years ago

@imagejan Could you try with maven-surefire-plugin 2.22.0? If it works, we can update pom-scijava-base accordingly. If it doesn't work, we could revert to the most recent older working version.

imagejan commented 6 years ago

Could you try with maven-surefire-plugin 2.22.0?

The test keeps failing with <maven-surefire-plugin.version>2.22.0</maven-surefire-plugin.version>.

NicoKiaru commented 4 years ago

same issue as https://github.com/imagej/imagej-legacy/issues/234

imagejan commented 4 years ago

Update: I tested pinning to <maven-surefire-plugin.version>3.0.0-M4</maven-surefire-plugin.version> and MacroTest passed again.

I suggest we bump the version of maven-surefire-plugin in pom-scijava-base to 3.0.0-M4 here: https://github.com/scijava/pom-scijava-base/blob/e503582fb3e19ced75e12487322f70ddcb3cfde5/pom.xml#L236

I couldn't access the changelogs here, but we should probably see rather quickly with the melting-pot script if anything breaks.