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
CI: Enable test/run-unittest.sh on Windows #2689
Conversation
✅ PR OK, no changes in deprecations or warnings Total deprecations: 14 Total warnings: 0 Build statistics: statistics (-before, +after)
executable size=5280256 bin/dub
rough build time=77s Full build output
|
28cdc32
to
97e83f3
Compare
@@ -39,10 +39,10 @@ FRONTEND="${FRONTEND:-}" | |||
|
|||
if [ -z ${FRONTEND:-} ]; then | |||
if [ "$DC_BIN" == "ldc2" ]; then | |||
FRONTEND=$(ldc2 --version | grep -Po "based on DMD v\K(2\.\d+\.\d)") | |||
FRONTEND=$(ldc2 --version | grep 'based on DMD v2.' | sed -E -n 's/^.*DMD v(2\.[0-9]+\.[0-9]).*$/\1/p') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The grep in my Windows VM complained about grep -P
only working for some locales.
test/issue2452/.no_test
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file is needed because the path of the unittest runner executable on Windows exceeds the 260 allowed chars... but there aren't any unittests to run either and no extra dub config, so skip that seemingly superfluous test build altogether.
rm -rf test/issue130-unicode-СНА* | ||
# ImportC probably requires set-up MSVC environment variables | ||
rm -rf test/use-c-sources | ||
fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure if there's a more elegant way to handle this, or making DMD's limitations on Windows more prominent.
97e83f3
to
c555639
Compare
dub --single test/run-unittest.d | ||
|
||
# FIXME: DMD fails a few tests on Windows; remove them for now | ||
if [[ '${{ matrix.dc }}' = dmd* ]]; then | ||
# DLL support is lacking | ||
rm -rf test/{1-dynLib-simple,2-dynLib-dep,2-dynLib-with-staticLib-dep} | ||
# Unicode in paths too | ||
rm -rf test/issue130-unicode-СНА* | ||
# ImportC probably requires set-up MSVC environment variables | ||
rm -rf test/use-c-sources | ||
fi | ||
test/run-unittest.sh |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have worked on this subject in the past. Check out my outcomes below:
master...shoo:dub:enh_test_windows
The difference from this PR's approach is that in my approach I changed run-unittest.d
to be more like run-unittest.sh
and not dependent on .sh
.
In windows, there are several ways to run .sh
. Cygwin(or MSYS2) / git-bash / WSL
GitHub Actions uses git-bash, which I think should be avoided for compatibility reasons.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AFAIK, the gnu tools bundled with git for windows originate from msys2. Why do you think it should be avoided for compatibility reasons? Since almost any Windows dev has git, he/she has bash + gnu tools too. I've been using bash on Windows for years, and it's absolutely okay, especially for such trivial stuff that is easier handled in bash than D.
Ping, why does this have to wait for so long? It significantly increases test coverage on Windows. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sorry, LGTM
No description provided.