~@shu—hung: https://github.com/racket/racket/runs/1586174409 is run after your PR is merged. It contains failures, and yet it is reported as succeed. Do you know what’s going on?~
Re foreign tests: https://github.com/ilammy/msvc-dev-cmd might be useful to get cl.exe (required by dynext, which in turn is required by the foreign tests) installed.
Hmm. It looks like VS2019 is already installed, too.
Would changing 10.0 to 2019 fix the problem?
Yep, https://github.com/racket/racket/blob/master/racket/src/worksp/build.bat indicates that cl should be available already.
From the README in worksp, build depends on msvcprep.bat which in turn calls vcvarsall.bat to set the environment variables. So I tried running msvcprep.bat before running the core tests, but it still doesn’t work. https://github.com/shhyou/racket/commit/92d5d0afaf32636edfa0f288ed8f61dfee7e17de
A long shot: The dynext library checks the CC environment variable before looking for cl.exe. The CC environmet variable is not set, right?
Nevermind: it also checks whether CC works
Okay: a bug the setup code in the foreign.rktl tests on Windows deletes the existing content of PATH. However, there are some other issues with the include path. Probably the content of those variables should be kept as well. https://github.com/racket/racket/blob/master/pkgs/racket-test-core/tests/racket/foreign-test.rktl#L78-L86
Another test failuare in the date.rktl tests is beyond what I can understand. The call (seconds->date -1), (seconds->date -86300) and (seconds->date -86400) are failing specifically for Racket CS on Windows. At the rumble layer, time-utc->date is failing for (make-time 'time-utc 0 -1), (make-time 'time-utc 0 -86400) and so on.
I can open an issue for this later.