Repository navigation
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=77sFull build output |
28cdc32 to
97e83f3
Compare
| 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.
The grep in my Windows VM complained about grep -P only working for some locales.
There was a problem hiding this comment.
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.
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.
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.
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. |
No description provided.