Over the last few months I've been working to improve Nim's support for various BSD systems, including adding CI. We currently have CI for both FreeBSD and OpenBSD. I'm now turning my eyes towards NetBSD, though we don't yet have a CI platform available for it.
I've set up a NetBSD virtual machine locally, and thought I'd maintain a thread here in the forums with the test failures as I work through fixing or disabling tests as and where necessary.
Here are my initial test failures using the current state of the devel branch as of today on a NetBSD 9.0 system:
NetBSD netbsd9-vm 9.0 NetBSD 9.0 (GENERIC) #0: Fri Feb 14 00:06:28 UTC 2020 [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC amd64
Failures:
Category: closure
Name: tests/closure/tboehmdeepcopy.nim C
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: dll
Name: tests/dll/nimhcr_unit.nim C
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
nimhcr_unit.nim(108) nimhcr_unit
/home/euant/src/Nim/lib/nimhcr.nim(346) hcrRegisterProc
/home/euant/src/Nim/lib/pure/reservedmem.nim(223) setLen
/home/euant/src/Nim/lib/pure/reservedmem.nim(97) setLen
/home/euant/src/Nim/lib/pure/includes/oserr.nim(94) raiseOSError
Error: unhandled exception: Permission denied [OSError]
-------------------------
Category: dll
Name: tests/dll/nimhcr_integration.nim C --forceBuild --hotCodeReloading:on
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
/home/euant/src/Nim/lib/nimhcr.nim(532) hcrInit
/home/euant/src/Nim/lib/nimhcr.nim(503) initModules
/home/euant/src/Nim/lib/nimhcr.nim(463) initPointerData
/home/euant/src/Nim/lib/nimhcr.nim(346) hcrRegisterProc
/home/euant/src/Nim/lib/pure/reservedmem.nim(223) setLen
/home/euant/src/Nim/lib/pure/reservedmem.nim(97) setLen
/home/euant/src/Nim/lib/pure/includes/oserr.nim(94) raiseOSError
Error: unhandled exception: Permission denied [OSError]
-------------------------
Category: dll
Name: tests/dll/nimhcr_unit.nim C -d:release
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
oserr.nim(94) raiseOSError
Error: unhandled exception: Permission denied [OSError]
-------------------------
Category: dll
Name: tests/dll/nimhcr_integration.nim C -d:release --forceBuild --hotCodeReloading:on
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
oserr.nim(94) raiseOSError
Error: unhandled exception: Permission denied [OSError]
-------------------------
Category: dll
Name: tests/dll/nimhcr_unit.nim C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: dll
Name: tests/dll/visibility.nim C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: dll
Name: tests/dll/nimhcr_unit.nim C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: dll
Name: tests/dll/visibility.nim C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcemscripten C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcemscripten C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/growobjcrash C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/growobjcrash C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcbench C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcbench C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak2 C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak2 C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak3 C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak3 C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak4 C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak4 C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/cycleleak C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/cycleleak C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/stackrefleak C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/stackrefleak C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/cyclecollector C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/cyclecollector C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: niminaction
Name: tests/niminaction/Chapter8/sfml/sfml_test.nim C++ --nilseqs:on
Action: compile
Result: reNimcCrash
-------- Expected -------
--------- Given --------
$ /home/euant/src/Nim/bin/nim cpp --hints:on -d:testing --nimblePath:tests/deps --nilseqs:on --nimCache:nimcache/tests/niminaction/Chapter8/sfml/sfml_test.nim_d8de44f831a39fe22ef81cd6a2f25664 --stdout '--hint[Path]:off' '--hint[Processing]:off' tests/niminaction/Chapter8/sfml/sfml_test.nim
Hint: used config file '/home/euant/src/Nim/config/nim.cfg' [Conf]
Hint: used config file '/home/euant/src/Nim/config/config.nims' [Conf]
Hint: used config file '/home/euant/src/Nim/tests/config.nims' [Conf]
CC: stdlib_system.nim
CC: stdlib_posix.nim
CC: stdlib_times.nim
CC: stdlib_os.nim
CC: sfml_test.nim
/home/euant/src/Nim/nimcache/tests/niminaction/Chapter8/sfml/sfml_test.nim_d8de44f831a39fe22ef81cd6a2f25664/@msfml_test.nim.cpp:12:10: fatal error: SFML/Graphics.hpp: No such file or directory
#include <SFML/Graphics.hpp>
^~~~~~~~~~~~~~~~~~~
compilation terminated.
Error: execution of an external compiler program 'g++ -c -std=gnu++14 -funsigned-char -w -fmax-errors=3 -fpermissive -I/home/euant/src/Nim/lib -I/usr/local/include -I/home/euant/src/Nim/tests/niminaction/Chapter8/sfml -o /home/euant/src/Nim/nimcache/tests/niminaction/Chapter8/sfml/sfml_test.nim_d8de44f831a39fe22ef81cd6a2f25664/@msfml_test.nim.cpp.o /home/euant/src/Nim/nimcache/tests/niminaction/Chapter8/sfml/sfml_test.nim_d8de44f831a39fe22ef81cd6a2f25664/@msfml_test.nim.cpp' failed with exit code: 1
-------------------------
Category: stdlib
Name: tests/stdlib/tfdleak.nim C
Action: run
Result: reOutputsDiffer
-------- Expected -------
--------- Given --------
leaked reopen
-------------------------
I also have a bunch of core dumps, which I shall explore in a follow-up post:
I'll be working through fixing these tests up and submitting PRs as and when I get a chance.
In case anybody else wishes to run the tests on NetBSD, there are a few steps to go through (these steps assume you are logged in as root):
pkgin install git \
sqlite3 \
sfml \
mozilla-rootcerts \
boehm-gc \
gmake \
nodejs \
pcre \
SDL2
mozilla-rootcerts install
mkdir -p $HOME/src
cd $HOME/src
git clone https://github.com/nim-lang/Nim.git Nim
cd Nim
git clone --depth 1 -q https://github.com/nim-lang/csources.git
gmake -C csources -j $(sysctl -n hw.ncpuonline)
bin/nim c koch
export PATH="$HOME/src/Nim/bin:$PATH"
if ! ./koch runCI; then
nim c -r tools/ci_testresults.nim
exit 1
fi
I've now ran the core dumps through gdb to get backtraces for them all in case somebody else has any insight into the causes:
cyclecollector.core
> gdb ./tests/gc/cyclecollector cyclecollector.core
Reading symbols from ./tests/gc/cyclecollector...
(No debugging symbols found in ./tests/gc/cyclecollector)
[New process 1]
Core was generated by `cyclecollector'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x000074b6c8e0acad in pthread_attr_get_np () from /usr/lib/libpthread.so.1
(gdb) bt
#0 0x000074b6c8e0acad in pthread_attr_get_np () from /usr/lib/libpthread.so.1
#1 0x000074b6c8e0b107 in pthread_getattr_np () from /usr/lib/libpthread.so.1
#2 0x000074b6c920e4c2 in GC_get_main_stack_base () from /usr/pkg/lib/libgc.so.1
#3 0x000074b6c92178b5 in GC_init () from /usr/pkg/lib/libgc.so.1
#4 0x0000000000402a6a in systemInit000 ()
#5 0x0000000000403266 in NimMain ()
#6 0x0000000000403567 in main ()
cycleleak.core
> gdb ./tests/gc/cycleleak cycleleak.core
Reading symbols from ./tests/gc/cycleleak...
(No debugging symbols found in ./tests/gc/cycleleak)
[New process 1]
Core was generated by `cycleleak'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f231f00acad in pthread_attr_get_np () from /usr/lib/libpthread.so.1
(gdb) bt
#0 0x00007f231f00acad in pthread_attr_get_np () from /usr/lib/libpthread.so.1
#1 0x00007f231f00b107 in pthread_getattr_np () from /usr/lib/libpthread.so.1
#2 0x00007f231f40e4c2 in GC_get_main_stack_base () from /usr/pkg/lib/libgc.so.1
#3 0x00007f231f4178b5 in GC_init () from /usr/pkg/lib/libgc.so.1
#4 0x0000000000402d50 in systemInit000 ()
#5 0x0000000000403966 in NimMain ()
#6 0x0000000000403e7b in main ()
gcbench.core
> gdb ./tests/gc/gcbench gcbench.core
Reading symbols from ./tests/gc/gcbench...
(No debugging symbols found in ./tests/gc/gcbench)
[New process 1]
Core was generated by `gcbench'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007218cb40acad in pthread_attr_get_np () from /usr/lib/libpthread.so.1
(gdb) bt
#0 0x00007218cb40acad in pthread_attr_get_np () from /usr/lib/libpthread.so.1
#1 0x00007218cb40b107 in pthread_getattr_np () from /usr/lib/libpthread.so.1
#2 0x00007218cb80e4c2 in GC_get_main_stack_base () from /usr/pkg/lib/libgc.so.1
#3 0x00007218cb8178b5 in GC_init () from /usr/pkg/lib/libgc.so.1
#4 0x0000000000405935 in systemInit000 ()
#5 0x0000000000408c13 in NimMain ()
#6 0x0000000000408f8f in main ()
It seems the failure is always in pthread_attr_get_np. I'm going to try and reduce this in some C code to see if I can replicate it...
Yep, that seems to do the trick. I ran the following from the command line:
> nim c -r tests/gc/gcleak2 C -d:release --gc:boehm --tlsEmulation:off
Hint: used config file '/home/euant/src/Nim/config/nim.cfg' [Conf]
Hint: used config file '/home/euant/src/Nim/config/config.nims' [Conf]
Hint: used config file '/home/euant/src/Nim/tests/config.nims' [Conf]
....CC: stdlib_io.nim
CC: stdlib_system.nim
CC: gcleak2.nim
Hint: [Link]
Hint: 29246 lines; 0.594s; 31.789MiB peakmem; Debug build; proj: gcleak2; out: gcleak2 [SuccessX]
Hint: /home/euant/src/Nim/tests/gc/gcleak2 C -d:release --gc:boehm --tlsEmulation:off [Exec]
no leak: 63264
I then tried commenting out this line and re-running the tests: https://github.com/nim-lang/Nim/blob/devel/config/nim.cfg#L126
Unfortunately, that didn't make any difference though.
Quick update:
I've re-ran the NetBSD tests and these are the current failures:
Category: closure
Name: tests/closure/tboehmdeepcopy.nim C
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: dll
Name: tests/dll/nimhcr_unit.nim C
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
nimhcr_unit.nim(108) nimhcr_unit
/home/euant/src/Nim/lib/nimhcr.nim(346) hcrRegisterProc
/home/euant/src/Nim/lib/pure/reservedmem.nim(223) setLen
/home/euant/src/Nim/lib/pure/reservedmem.nim(97) setLen
/home/euant/src/Nim/lib/pure/includes/oserr.nim(94) raiseOSError
Error: unhandled exception: Permission denied [OSError]
-------------------------
Category: dll
Name: tests/dll/nimhcr_integration.nim C --forceBuild --hotCodeReloading:on
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
/home/euant/src/Nim/lib/nimhcr.nim(532) hcrInit
/home/euant/src/Nim/lib/nimhcr.nim(503) initModules
/home/euant/src/Nim/lib/nimhcr.nim(463) initPointerData
/home/euant/src/Nim/lib/nimhcr.nim(346) hcrRegisterProc
/home/euant/src/Nim/lib/pure/reservedmem.nim(223) setLen
/home/euant/src/Nim/lib/pure/reservedmem.nim(97) setLen
/home/euant/src/Nim/lib/pure/includes/oserr.nim(94) raiseOSError
Error: unhandled exception: Permission denied [OSError]
-------------------------
Category: dll
Name: tests/dll/nimhcr_unit.nim C -d:release
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
oserr.nim(94) raiseOSError
Error: unhandled exception: Permission denied [OSError]
-------------------------
Category: dll
Name: tests/dll/nimhcr_integration.nim C -d:release --forceBuild --hotCodeReloading:on
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
oserr.nim(94) raiseOSError
Error: unhandled exception: Permission denied [OSError]
-------------------------
Category: dll
Name: tests/dll/nimhcr_unit.nim C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: dll
Name: tests/dll/visibility.nim C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: dll
Name: tests/dll/nimhcr_unit.nim C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: dll
Name: tests/dll/visibility.nim C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcemscripten C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcemscripten C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/growobjcrash C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/growobjcrash C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcbench C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcbench C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak2 C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak2 C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak3 C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak3 C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak4 C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/gcleak4 C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/cycleleak C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/cycleleak C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/stackrefleak C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/stackrefleak C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/cyclecollector C --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: gc
Name: tests/gc/cyclecollector C -d:release --gc:boehm
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
Category: niminaction
Name: tests/niminaction/Chapter8/sfml/sfml_test.nim C++ --nilseqs:on
Action: compile
Result: reNimcCrash
-------- Expected -------
--------- Given --------
$ /home/euant/src/Nim/bin/nim cpp --hints:on -d:testing --nimblePath:tests/deps --nilseqs:on --nimCache:nimcache/tests/niminaction/Chapter8/sfml/sfml_test.nim_d8de44f831a39fe22ef81cd6a2f25664 --stdout '--hint[Path]:off' '--hint[Processing]:off' tests/niminaction/Chapter8/sfml/sfml_test.nim
Hint: used config file '/home/euant/src/Nim/config/nim.cfg' [Conf]
Hint: used config file '/home/euant/src/Nim/config/config.nims' [Conf]
Hint: used config file '/home/euant/src/Nim/tests/config.nims' [Conf]
CC: stdlib_system.nim
CC: stdlib_posix.nim
CC: stdlib_times.nim
CC: stdlib_os.nim
CC: sfml_test.nim
/home/euant/src/Nim/nimcache/tests/niminaction/Chapter8/sfml/sfml_test.nim_d8de44f831a39fe22ef81cd6a2f25664/@msfml_test.nim.cpp:12:10: fatal error: SFML/Graphics.hpp: No such file or directory
#include <SFML/Graphics.hpp>
^~~~~~~~~~~~~~~~~~~
compilation terminated.
Error: execution of an external compiler program 'g++ -c -std=gnu++14 -funsigned-char -w -fmax-errors=3 -fpermissive -I/home/euant/src/Nim/lib -I/usr/local/include -I/usr/pkg/include -I/home/euant/src/Nim/tests/niminaction/Chapter8/sfml -o /home/euant/src/Nim/nimcache/tests/niminaction/Chapter8/sfml/sfml_test.nim_d8de44f831a39fe22ef81cd6a2f25664/@msfml_test.nim.cpp.o /home/euant/src/Nim/nimcache/tests/niminaction/Chapter8/sfml/sfml_test.nim_d8de44f831a39fe22ef81cd6a2f25664/@msfml_test.nim.cpp' failed with exit code: 1
-------------------------
Category: stdlib
Name: tests/stdlib/tfdleak.nim C
Action: run
Result: reOutputsDiffer
-------- Expected -------
--------- Given --------
leaked reopen
-------------------------
Category: stdlib
Name: tests/stdlib/tgetprotobyname.nim C
Action: run
Result: reNimcCrash
-------- Expected -------
--------- Given --------
$ /home/euant/src/Nim/bin/nim c -r --styleCheck:hint --panics:on --nimCache:nimcache/tests/stdlib/tgetprotobyname.nim_0d61f8370cad1d412f80b84d143e1257 tests/stdlib/tgetprotobyname.nim
Hint: used config file '/home/euant/src/Nim/config/nim.cfg' [Conf]
Hint: used config file '/home/euant/src/Nim/config/config.nims' [Conf]
Hint: used config file '/home/euant/src/Nim/tests/config.nims' [Conf]
...................CC: stdlib_assertions.nim
CC: stdlib_system.nim
CC: stdlib_posix.nim
CC: stdlib_times.nim
CC: stdlib_os.nim
CC: stdlib_nativesockets.nim
CC: tgetprotobyname.nim
Hint: [Link]
Hint: 52487 lines; 3.295s; 75.77MiB peakmem; Debug build; proj: tgetprotobyname; out: tgetprotobyname [SuccessX]
Hint: /home/euant/src/Nim/tests/stdlib/tgetprotobyname [Exec]
tgetprotobyname.nim(13) tgetprotobyname
nativesockets.nim(212) getProtoByName
Error: unhandled exception: protocol not found [OSError]
Error: execution of an external program failed: '/home/euant/src/Nim/tests/stdlib/tgetprotobyname '
-------------------------
Category: stdlib
Name: tests/stdlib/tssl.nim C
Action: run
Result: reExitcodesDiffer
-------- Expected -------
exitcode: 0
--------- Given --------
exitcode: 1
Output:
-------------------------
I'm working on disabling tests that I can't fix, and fixing those that I can.
The tgetprotobyname test failure is an interesting one.
The tgetprotobyname failure is now fixed by this commit: https://github.com/nim-lang/Nim/commit/b4fe0c88624e3af03715a93733644b0c71dfdcce
I'm currently setting up a Jenkins server running NetBSD with an aim to build at least once a day on the platform at first, then in the future look at getting @Araq to add a webhook or something to the repository to trigger builds. When there is public CI available on builds.sr.ht or anywhere else, we can look at moving to them, but I'd like to have some kind of initial coverage at least.
We're now down to a bunch of errors with the boehm GC (which may be related to the package on NetBSD, or may be down to TLS emulation - I still need to debug further) and tests/stdlib/tfdleak which is due to what seems to be a bug within NetBSD. Current failures:
11:47:29 Category: closure
11:47:29 Name: tests/closure/tboehmdeepcopy.nim C
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: dll
11:47:29 Name: tests/dll/visibility.nim C --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: dll
11:47:29 Name: tests/dll/visibility.nim C -d:release --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/gcemscripten C --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/gcemscripten C -d:release --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/growobjcrash C --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/growobjcrash C -d:release --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/gcbench C --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/gcbench C -d:release --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/gcleak C --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/gcleak C -d:release --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/gcleak2 C --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/gcleak2 C -d:release --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/gcleak3 C --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/gcleak3 C -d:release --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/gcleak4 C --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/gcleak4 C -d:release --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/cycleleak C --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/cycleleak C -d:release --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/stackrefleak C --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/stackrefleak C -d:release --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/cyclecollector C --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: gc
11:47:29 Name: tests/gc/cyclecollector C -d:release --gc:boehm
11:47:29 Action: run
11:47:29 Result: reExitcodesDiffer
11:47:29 -------- Expected -------
11:47:29 exitcode: 0
11:47:29 --------- Given --------
11:47:29 exitcode: 1
11:47:29
11:47:29 Output:
11:47:29
11:47:29 -------------------------
11:47:29
11:47:29 Category: stdlib
11:47:29 Name: tests/stdlib/tfdleak.nim C
11:47:29 Action: run
11:47:29 Result: reOutputsDiffer
11:47:29 -------- Expected -------
11:47:29
11:47:29 --------- Given --------
11:47:29 leaked reopen
11:47:29 -------------------------
I've now got Jenkins running on NetBSD building every day from the devel branch so we can track progress. The most recent build output is available here: http://jenkins.euantorano.co.uk/job/Nim/13/console