SpinalHDL / SpinalWorkshop

Labs to learn SpinalHDL
143 stars 40 forks source link

Internal error when running tests: sbt.ForkMain$Run$RunAborted: java.net.SocketException: Broken pipe (Write failed) #3

Open electrodude opened 5 years ago

electrodude commented 5 years ago

I'm working on the Counter lab and got it to compile successfully (thought I don't know if my solution is actually correct): sbt "runMain workshop.counter.CounterMain" outputs the following (where the actual directory containing this SpinalWorkshop repository was replaced with $WORK_DIR):

[info] Loading project definition from $WORK_DIR/SpinalWorkshop/project
[info] Set current project to SpinalWorkshop (in build file:$WORK_DIR/SpinalWorkshop/)
[info] Running workshop.counter.CounterMain 
[info] [Runtime] SpinalHDL v1.3.2    git head : 41815ceafff4e72c2e3a3e1ff7e9ada5202a0d26
[info] [Runtime] JVM max memory : 3543.5MiB
[info] [Runtime] Current date : 2019.05.14 14:53:09
[info] [Progress] at 0.000 : Elaborate components
[info] [Progress] at 0.098 : Checks and transforms
[info] [Progress] at 0.167 : Generate VHDL
[info] [Progress] at 0.174 :   emit Counter
[info] [Info] Number of registers : 4
[info] [Done] at 0.212
[success] Total time: 1 s, completed May 14, 2019 2:53:10 PM

However, when I run sbt "testOnly workshop.counter.CounterTester" from the root directory of this repo, I get the following output:

[info] Loading project definition from $WORK_DIR/SpinalWorkshop/project                 
[info] Set current project to SpinalWorkshop (in build file:$WORK_DIR/SpinalWorkshop/)  
Internal error when running tests: sbt.ForkMain$Run$RunAborted: java.net.SocketException: Broken pipe (Write failed)

It hangs forever after printing that last line.

I am doing this on Gentoo, using Portage-provided dev-java/icedtea-bin-3.10.0-r1:8 and dev-java/sbt-0.13.13, and using manually-installed Verilator v4.012 compiled from git and installed to /usr/local/bin/verilator

Dolu1990 commented 5 years ago

Hoo, probably some incompatibility between SBT Scala and that specific JDK ? I never tested with it. Do you have access to others JDK ?

Also, you can get a more recent SBT version ? That repository is using a 1.2.7 You don't realy need this exacte version, anything 1.x.x should be fine.

Let's me know how it go :)

electrodude commented 5 years ago

I updated sbt to version 1.2.8, and also updated iverilog from 0.9.6 to 10.2 and manually installed Cocotb, which I hadn't installed previously. That didn't fix it. I also installed Gentoo's dev-java/openjdk-bin-8.212_p03-r2 and dev-java/openjdk-jre-bin-8.212_p03-r1, which aren't supported by Gentoo yet, and tried them, but they didn't fix it either. I didn't try with Oracle's JVM because Oracle makes it a pain to install on Gentoo.

Dolu1990 commented 5 years ago

I'm sorry i don't realy know what to do, as it seem to be a SBT/JDK/OS bad relationship :/

Did you tried with intellij ?

Else what you can do, is to modify the test to be a regular Scala main instead of a scala unit test. This should be fine.

electrodude commented 5 years ago

I never managed to figure this out; I gave up and did the SpinalWorkshop projects on another machine running CentOS via SSH. SpinalHDL works fine on my own machine for stuff other than the SpinalWorkshop projects.