jjtParadox / Barometer

An old experimental test library for 1.12 MinecraftForge mods.
GNU Lesser General Public License v3.0
7 stars 3 forks source link

Barometer is not running any tests for me #16

Open milandamen opened 5 years ago

milandamen commented 5 years ago

When I run ./gradlew test for my mod, it will not actually run the tests. I know this because I have a call to fail in one of the tests, which should always fail that test. See line 40 of the test class.

build.gradle + test class: https://gist.github.com/milandamen/fa0e35162d61fc4b02b993ddf09d9f73 Running version 0.0.7 of Barometer.

Gradlew log:

To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/2.14/userguide/gradle_daemon.html.
This mapping 'snapshot_20171003' was designed for MC 1.12! Use at your own peril.
#################################################
         ForgeGradle 2.3-SNAPSHOT-3996470        
  https://github.com/MinecraftForge/ForgeGradle  
#################################################
                 Powered by MCP                  
             http://modcoderpack.com             
     by: Searge, ProfMobius, R4wk, ZeuX          
     Fesh0r, IngisKahn, bspkrs, LexManos         
#################################################
:deobfCompileDummyTask
:deobfProvidedDummyTask
:sourceApiJava UP-TO-DATE
:compileApiJava UP-TO-DATE
:processApiResources UP-TO-DATE
:apiClasses UP-TO-DATE
:barometerPrep
:sourceMainJava UP-TO-DATE
:compileJava
Note: /home/milan/Documents/Minecraft Modding/ImmersiveRailroadingAutomation/build/sources/main/java/nl/milandamen/immersiverailroadingautomation/block/SignalBlock.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:processResources UP-TO-DATE
:classes
:getVersionJson
:extractNatives SKIPPED
:extractUserdev UP-TO-DATE
:getAssetIndex UP-TO-DATE
:getAssets
:makeStart SKIPPED
:sourceTestJava UP-TO-DATE
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses
:test

BUILD SUCCESSFUL

Total time: 11.943 secs

Gradle version:

------------------------------------------------------------
Gradle 2.14
------------------------------------------------------------

Build time:   2016-06-14 07:16:37 UTC
Revision:     cba5fea19f1e0c6a00cc904828a6ec4e11739abc

Groovy:       2.4.4
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_191 (Oracle Corporation 25.191-b12)
OS:           Linux 4.18.0-13-generic amd64
milandamen commented 5 years ago

I have found the cause, it was a mod dependency that wasn't working correctly.

But this still is a bug in Barometer, because the tests are marked SUCCESS after crashing.

17:08:59.171 [DEBUG] [TestEventLogger]     [17:08:59] [Server thread/INFO] [minecraft/DedicatedServer]: Loading properties
17:08:59.173 [DEBUG] [TestEventLogger]     [17:08:59] [Server thread/INFO] [minecraft/DedicatedServer]: Default game type: SURVIVAL
17:08:59.173 [DEBUG] [TestEventLogger]     [17:08:59] [Server thread/INFO] [minecraft/DedicatedServer]: Generating keypair
17:08:59.241 [DEBUG] [TestEventLogger]     [17:08:59] [Server thread/INFO] [minecraft/DedicatedServer]: Starting Minecraft server on 127.0.0.1:25565
17:08:59.269 [DEBUG] [TestEventLogger]     [17:08:59] [Server thread/INFO] [minecraft/NetworkSystem]: Using epoll channel type
17:08:59.341 [DEBUG] [TestEventLogger]     [17:08:59] [Server thread/WARN] [minecraft/DedicatedServer]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
17:08:59.342 [DEBUG] [TestEventLogger]     [17:08:59] [Server thread/WARN] [minecraft/DedicatedServer]: The server will make no attempt to authenticate usernames. Beware.
17:08:59.342 [DEBUG] [TestEventLogger]     [17:08:59] [Server thread/WARN] [minecraft/DedicatedServer]: While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.
17:08:59.342 [DEBUG] [TestEventLogger]     [17:08:59] [Server thread/WARN] [minecraft/DedicatedServer]: To change this, set "online-mode" to "true" in the server.properties file.
17:08:59.561 [DEBUG] [TestEventLogger]     [17:08:59] [Server thread/INFO] [FML]: Applying holder lookups
17:08:59.562 [DEBUG] [TestEventLogger]     [17:08:59] [Server thread/INFO] [FML]: Holder lookups applied
17:08:59.574 [DEBUG] [TestEventLogger]     [17:08:59] [Thread-7/INFO] [immersiveengineering]: Arc Recycling: Removed 0 old recipes
17:08:59.601 [DEBUG] [TestEventLogger]     [17:08:59] [Thread-7/INFO] [immersiveengineering]: Finished recipe profiler for Arc Recycling, took 24 milliseconds
17:08:59.997 [DEBUG] [TestEventLogger]     [17:08:59] [Server thread/INFO] [FML]: Injecting itemstacks
17:08:59.998 [DEBUG] [TestEventLogger]     [17:08:59] [Server thread/INFO] [FML]: Itemstack injection complete
17:09:00.014 [DEBUG] [TestEventLogger]     [17:09:00] [Server thread/ERROR] [minecraft/MinecraftServer]: Encountered an unexpected exception
17:09:00.015 [DEBUG] [TestEventLogger]     net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Immersive Engineering (immersiveengineering)
17:09:00.015 [DEBUG] [TestEventLogger] 
17:09:00.015 [DEBUG] [TestEventLogger]     Caused by: java.lang.IllegalAccessError: tried to access field net.minecraft.potion.PotionHelper.POTION_TYPE_CONVERSIONS from class blusunrize.immersiveengineering.common.IEContent
17:09:00.015 [DEBUG] [TestEventLogger]          at blusunrize.immersiveengineering.common.IEContent.postInit(IEContent.java:1055) ~[IEContent.class:?]
17:09:00.015 [DEBUG] [TestEventLogger]          at blusunrize.immersiveengineering.ImmersiveEngineering.postInit(ImmersiveEngineering.java:147) ~[ImmersiveEngineering.class:?]
17:09:00.015 [DEBUG] [TestEventLogger]          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_191]
17:09:00.015 [DEBUG] [TestEventLogger]          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_191]
17:09:00.015 [DEBUG] [TestEventLogger]          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_191]
17:09:00.015 [DEBUG] [TestEventLogger]          at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_191]
17:09:00.016 [DEBUG] [TestEventLogger]          at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:626) ~[forgeSrc-1.12.2-14.23.5.2768.jar:?]
17:09:00.016 [DEBUG] [TestEventLogger]          at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source) ~[?:?]
17:09:00.016 [DEBUG] [TestEventLogger]          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_191]
17:09:00.016 [DEBUG] [TestEventLogger]          at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_191]
17:09:00.016 [DEBUG] [TestEventLogger]          at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) ~[guava-21.0.jar:?]
17:09:00.016 [DEBUG] [TestEventLogger]          at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) ~[guava-21.0.jar:?]
17:09:00.016 [DEBUG] [TestEventLogger]          at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) ~[guava-21.0.jar:?]
17:09:00.016 [DEBUG] [TestEventLogger]          at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) ~[guava-21.0.jar:?]
17:09:00.016 [DEBUG] [TestEventLogger]          at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) ~[guava-21.0.jar:?]
17:09:00.016 [DEBUG] [TestEventLogger]          at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) ~[guava-21.0.jar:?]
17:09:00.016 [DEBUG] [TestEventLogger]          at com.google.common.eventbus.EventBus.post(EventBus.java:217) ~[guava-21.0.jar:?]
17:09:00.017 [DEBUG] [TestEventLogger]          at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:218) ~[forgeSrc-1.12.2-14.23.5.2768.jar:?]
17:09:00.017 [DEBUG] [TestEventLogger]          at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:196) ~[forgeSrc-1.12.2-14.23.5.2768.jar:?]
17:09:00.017 [DEBUG] [TestEventLogger]          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_191]
17:09:00.017 [DEBUG] [TestEventLogger]          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_191]
17:09:00.017 [DEBUG] [TestEventLogger]          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_191]
17:09:00.017 [DEBUG] [TestEventLogger]          at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_191]
17:09:00.017 [DEBUG] [TestEventLogger]          at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) ~[guava-21.0.jar:?]
17:09:00.017 [DEBUG] [TestEventLogger]          at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) ~[guava-21.0.jar:?]
17:09:00.017 [DEBUG] [TestEventLogger]          at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) ~[guava-21.0.jar:?]
17:09:00.017 [DEBUG] [TestEventLogger]          at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) ~[guava-21.0.jar:?]
17:09:00.017 [DEBUG] [TestEventLogger]          at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) ~[guava-21.0.jar:?]
17:09:00.018 [DEBUG] [TestEventLogger]          at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) ~[guava-21.0.jar:?]
17:09:00.018 [DEBUG] [TestEventLogger]          at com.google.common.eventbus.EventBus.post(EventBus.java:217) ~[guava-21.0.jar:?]
17:09:00.018 [DEBUG] [TestEventLogger]          at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:135) ~[LoadController.class:?]
17:09:00.018 [DEBUG] [TestEventLogger]          at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:749) ~[Loader.class:?]
17:09:00.018 [DEBUG] [TestEventLogger]          at net.minecraftforge.fml.server.FMLServerHandler.finishServerLoading(FMLServerHandler.java:108) ~[FMLServerHandler.class:?]
17:09:00.018 [DEBUG] [TestEventLogger]          at net.minecraftforge.fml.common.FMLCommonHandler.onServerStarted(FMLCommonHandler.java:338) ~[FMLCommonHandler.class:?]
17:09:00.018 [DEBUG] [TestEventLogger]          at net.minecraft.server.dedicated.DedicatedServer.init(DedicatedServer.java:222) ~[DedicatedServer.class:?]
17:09:00.018 [DEBUG] [TestEventLogger]          at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:552) [MinecraftServer.class:?]
17:09:00.018 [DEBUG] [TestEventLogger]          at java.lang.Thread.run(Thread.java:748) [?:1.8.0_191]
17:09:00.022 [DEBUG] [TestEventLogger]     [17:09:00] [Server thread/ERROR] [minecraft/MinecraftServer]: This crash report has been saved to: /home/milan/Documents/Minecraft Modding/ImmersiveRailroadingAutomation/run/test/./crash-reports/crash-2019-02-06_17.09.00-server.txt
17:09:00.022 [DEBUG] [TestEventLogger]     [17:09:00] [Server thread/INFO] [minecraft/MinecraftServer]: Stopping server
17:09:00.023 [DEBUG] [TestEventLogger]     [17:09:00] [Server thread/INFO] [minecraft/MinecraftServer]: Saving worlds
17:09:00.025 [DEBUG] [TestEventLogger]     [17:09:00] [Server thread/ERROR] [FML]: Skipping event FMLServerStoppedEvent and marking errored mod immersiverailroadingautomation since required dependency immersiveengineering has errored
17:09:00.025 [DEBUG] [TestEventLogger]     [17:09:00] [Server thread/INFO] [FML]: The state engine was in incorrect state AVAILABLE and forced into state SERVER_STOPPED. Errors may have been discarded.
17:09:00.027 [DEBUG] [TestEventLogger]     [17:09:00] [Server Shutdown Thread/INFO] [minecraft/MinecraftServer]: Stopping server
17:09:00.028 [DEBUG] [TestEventLogger]     [17:09:00] [Server Shutdown Thread/INFO] [minecraft/MinecraftServer]: Saving worlds
17:09:00.419 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: SUCCEEDED
17:09:00.419 [DEBUG] [org.gradle.internal.remote.internal.inet.SocketConnection] Discarding EOFException: java.io.EOFException
17:09:00.420 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Process 'Gradle Test Executor 1' finished with exit value 0 (state: SUCCEEDED)
17:09:00.425 [DEBUG] [TestEventLogger] 
17:09:00.425 [DEBUG] [TestEventLogger] Gradle Test Run :test PASSED
jjtParadox commented 5 years ago

Thank you for the bug report and further investigation. I can't yet find where the server startup error is being discarded, but I'll keep looking into it and update this issue once I do find it.

milandamen commented 5 years ago

I only found this out by running ./gradlew test --debug. I can't even run with --debug inside IntelliJ.

Though, when I was debugging some of this stuff in IntelliJ, I did not get past line 79 in src/main/kotlin/com/jjtparadox/barometer/tester/Tests.kt. It seemed to crash because of that line: super.run(notifier)

If you want to debug this, the problem I had was that ImmersiveEngineering does not work with my version of forge if I use Barometer to test; but it DOES work if I just runClient regularly.

Here's the full debug log: https://gist.github.com/milandamen/06493f7fc0bb3e48031b17bddcaaa209