Skip to content
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

#12103 - CI for OpenBSD #12105

Open
wants to merge 14 commits into
base: devel
from

Conversation

@euantorano
Copy link
Contributor

commented Sep 1, 2019

This is a work in progress fix for #12103 - it adds CI support for OpenBSD and I'll be adding FreeBSD support too if everyone's happy with the OpenBSD one.

I've got a build running right now - build #86238. In past runs there have been a few failures which look like they may be genuine errors - I'll probably end up creating a few issues for these once confirmed.

euantorano added 3 commits Sep 1, 2019
@euantorano

This comment has been minimized.

Copy link
Contributor Author

commented Sep 1, 2019

Looks like there are quite a few failures. A bunch of them are related to libgc, which I should hopefully be able to fix. Some of the more interesting ones are:

$ /home/build/Nim/bin/nim c --hints:on -d:testing --nimblePath:tests/deps --incremental:on --nimCache:nimcache/tests/ic/thallo.nim_0d61f8370cad1d412f80b84d143e1257 tests/ic/thallo_temp.nim
Hint: used config file '/home/build/Nim/config/nim.cfg' [Conf]
Hint: used config file '/home/build/Nim/config/config.nims' [Conf]
Hint: used config file '/home/build/Nim/tests/config.nims' [Conf]
Hint: system [Processing]
io.nim(647)              readFile
Error: unhandled exception: cannot open: /home/build/Nim/iterators.nim [IOError]

(the above is repeated a whole lot... not sure why?)

Output:
tgetaddrinfo.nim(22)     tgetaddrinfo
nativesockets.nim(262)   getAddrInfo
oserr.nim(94)            raiseOSError
Error: unhandled exception: Additional info: "service not supported for ai_socktype" [OSError]
FAIL: tests/async/tioselectors.nim C
Test "tests/async/tioselectors.nim" in category "async"
Failure: reExitcodesDiffer
Expected:
exitcode: 0
Gotten:
mexitcode: 1

Output:
tioselectors.nim(471)    tioselectors
tioselectors.nim(324)    vnode_test
tioselectors.nim(264)    chmodPath
fatal.nim(48)            sysFatal
Error: unhandled exception: value out of range: 511 [RangeError]
FAIL: tests/cpp/tasync_cpp.nim C++
Test "tests/cpp/tasync_cpp.nim" in category "cpp"
Failure: reNimcCrash
$ /home/build/Nim/bin/nim cpp --nilseqs:on --nimblePath:tests/deps tests/cpp/tasync_cpp.nim
Hint: used config file '/home/build/Nim/config/nim.cfg' [Conf]
Hint: used config file '/home/build/Nim/config/config.nims' [Conf]
Hint: used config file '/home/build/Nim/tests/config.nims' [Conf]
Hint: system [Processing]
Hint: widestrs [Processing]
Hint: io [Processing]
Hint: tasync_cpp [Processing]
Hint: jester [Processing]
Hint: net [Processing]
Hint: nativesockets [Processing]
Hint: os [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: math [Processing]
Hint: bitops [Processing]
Hint: macros [Processing]
Hint: algorithm [Processing]
Hint: unicode [Processing]
Hint: pathnorm [Processing]
Hint: osseps [Processing]
Hint: posix [Processing]
Hint: times [Processing]
Hint: options [Processing]
Hint: typetraits [Processing]
Hint: sets [Processing]
Hint: hashes [Processing]
Hint: monotimes [Processing]
Hint: strtabs [Processing]
Hint: re [Processing]
Hint: pcre [Processing]
Hint: rtarrays [Processing]
Hint: tables [Processing]
Hint: uri [Processing]
Hint: mimetypes [Processing]
Hint: asyncnet [Processing]
Hint: asyncdispatch [Processing]
Hint: heapqueue [Processing]
Hint: lists [Processing]
Hint: asyncstreams [Processing]
Hint: asyncfutures [Processing]
Hint: deques [Processing]
Hint: cstrutils [Processing]
Hint: selectors [Processing]
Hint: kqueue [Processing]
Hint: md5 [Processing]
Hint: logging [Processing]
Hint: httpcore [Processing]
Hint: asyncfile [Processing]
Hint: macrocache [Processing]
Hint: json [Processing]
Hint: lexbase [Processing]
Hint: streams [Processing]
Hint: parsejson [Processing]
Hint: strformat [Processing]
Hint: errorpages [Processing]
Hint: htmlgen [Processing]
Hint: utils [Processing]
Hint: cgi [Processing]
Hint: cookies [Processing]
Hint: request [Processing]
Hint: asynchttpserver [Processing]
Hint: patterns [Processing]
tasync_cpp.nim(9, 8) Warning: imported and not used: 'jester' [UnusedImport]
tasync_cpp.nim(10, 23) Warning: imported and not used: 'asyncnet' [UnusedImport]
Hint: clang++ -c  -w  -I/home/build/Nim/lib -I/home/build/Nim/tests/cpp -o /home/build/.cache/nim/tasync_cpp_d/stdlib_assertions.nim.cpp.o /home/build/.cache/nim/tasync_cpp_d/stdlib_assertions.nim.cpp [Exec]
Hint: clang++ -c  -w  -I/home/build/Nim/lib -I/home/build/Nim/tests/cpp -o /home/build/.cache/nim/tasync_cpp_d/stdlib_io.nim.cpp.o /home/build/.cache/nim/tasync_cpp_d/stdlib_io.nim.cpp [Exec]
Hint: clang++ -c  -w  -I/home/build/Nim/lib -I/home/build/Nim/tests/cpp -o /home/build/.cache/nim/tasync_cpp_d/stdlib_system.nim.cpp.o /home/build/.cache/nim/tasync_cpp_d/stdlib_system.nim.cpp [Exec]
Hint: clang++ -c  -w  -I/home/build/Nim/lib -I/home/build/Nim/tests/cpp -o /home/build/.cache/nim/tasync_cpp_d/stdlib_math.nim.cpp.o /home/build/.cache/nim/tasync_cpp_d/stdlib_math.nim.cpp [Exec]
Hint: clang++ -c  -w  -I/home/build/Nim/lib -I/home/build/Nim/tests/cpp -o /home/build/.cache/nim/tasync_cpp_d/stdlib_strutils.nim.cpp.o /home/build/.cache/nim/tasync_cpp_d/stdlib_strutils.nim.cpp [Exec]
Hint: clang++ -c  -w  -I/home/build/Nim/lib -I/home/build/Nim/tests/cpp -o /home/build/.cache/nim/tasync_cpp_d/stdlib_pathnorm.nim.cpp.o /home/build/.cache/nim/tasync_cpp_d/stdlib_pathnorm.nim.cpp [Exec]
Hint: clang++ -c  -w  -I/home/build/Nim/lib -I/home/build/Nim/tests/cpp -o /home/build/.cache/nim/tasync_cpp_d/stdlib_posix.nim.cpp.o /home/build/.cache/nim/tasync_cpp_d/stdlib_posix.nim.cpp [Exec]
Hint: clang++ -c  -w  -I/home/build/Nim/lib -I/home/build/Nim/tests/cpp -o /home/build/.cache/nim/tasync_cpp_d/stdlib_times.nim.cpp.o /home/build/.cache/nim/tasync_cpp_d/stdlib_times.nim.cpp [Exec]
/home/build/.cache/nim/tasync_cpp_d/stdlib_times.nim.cpp:1509:19: error: no matching function for call to 'localtime'
        struct tm* T2_ = localtime((&a));
                         ^~~~~~~~~
/usr/include/time.h:131:12: note: candidate function not viable: no known conversion from 'long *' to 'const time_t *' (aka 'const long long *') for 1st argument
struct tm *localtime(const time_t *);
           ^
1 error generated.
Error: execution of an external program failed: 'clang++ -c  -w  -I/home/build/Nim/lib -I/home/build/Nim/tests/cpp -o /home/build/.cache/nim/tasync_cpp_d/stdlib_times.nim.cpp.o /home/build/.cache/nim/tasync_cpp_d/stdlib_times.nim.cpp'

The above is valid - time_t is a long on Linux and long long on OpenBSD... Might have to have to patch the times module.

There are a couple of out of memory ones too, we probably just want to disable those tests for OpenBSD.

.gitignore Show resolved Hide resolved

@euantorano euantorano marked this pull request as ready for review Sep 3, 2019

@euantorano

This comment has been minimized.

Copy link
Contributor Author

commented Sep 3, 2019

Here's a run of the FreeBSD CI, which unfortunately fails due to #12113. I've marked this PR as ready for review rather than WIP.

@euantorano

This comment has been minimized.

Copy link
Contributor Author

commented Sep 5, 2019

Current OpenBSD test failures are pasted here, as of current PRs: https://paste.sr.ht/%7Eeuantorano/f69c3bd1374e96ce0b0b2ec848b43f4b1ed0e248

@Araq

This comment has been minimized.

Copy link
Member

commented Sep 10, 2019

Ready to be merged?

@euantorano

This comment has been minimized.

Copy link
Contributor Author

commented Sep 10, 2019

@Araq the FreeBSD CI doesn’t work at all (see #12113) and there are still several OpenBSD failures. So really, it’s up to you. I can move the FreeBSD one to a separate PR and we can get started with OpenBSD if that would be easy?

Well also need either you or @dom96 (or somebody else with repository access) to set up the sr.ht integration.

@Araq

This comment has been minimized.

Copy link
Member

commented Sep 10, 2019

I can move the FreeBSD one to a separate PR and we can get started with OpenBSD if that would be easy?

Sure, just tell me what to do. Tests can be disabled for specific platforms via disabled: "openbsd" (requires a testament patch but should be trivial).

@euantorano

This comment has been minimized.

Copy link
Contributor Author

commented Sep 10, 2019

euantorano added 2 commits Sep 10, 2019
@euantorano

This comment has been minimized.

Copy link
Contributor Author

commented Sep 10, 2019

@Araq Ok, should be good to merge now. Once this is merged, I'll open more issues for other OpenBSD specific issues and try to sort them out. For reference, this is the most recent CI run using this manifest and the current output from a run against the repository's devel branch: https://builds.sr.ht/~euantorano/job/88615

I'll open a new PR for FreeBSD once this is merged as the moment koch runCI doesn't work at all there, which makes having FreeBSD CI kind of pointless until I work out why and sort out a patch.

@Araq Araq closed this Sep 11, 2019

@Araq Araq reopened this Sep 11, 2019

euantorano added 2 commits Sep 11, 2019

@euantorano euantorano changed the title #12103 - CI for OpenBSD and FreeBSD #12103 - CI for OpenBSD Sep 11, 2019

euantorano added 4 commits Sep 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.