Run PAL tests in CI#42049
Conversation
|
@janvorli In particular, when you review I'd like to know how difficult I've made new platform bringup. I think its still reasonable, but it isn't quite the same as before. |
There was a problem hiding this comment.
Why are these code changes necessary? e.g. ~9 days ago (#41622), master branch was building with ./src/coreclr/build-runtime.sh -skipgenerateversion -nopgooptimize -cmakeargs -DCLR_CMAKE_BUILD_TESTS=1 on Ubuntu, macOS and OpenIndiana hosts.
There was a problem hiding this comment.
With this change nearly everything is building into 1 large binary. These symbols were interfering with linking, and while they could be fixed by making them static, I've always found statics to be annoying to debug, so I didn't use static.
janvorli
left a comment
There was a problem hiding this comment.
I can see an error message after the PAL tests successfully complete:
Finished running PAL tests.
PAL Test Results:
Passed: 709
Failed: 0
src/pal/tests/palsuite/runpaltests.sh: line 230: cd: /tmp/PalTestOutput/default/eventprovidertest: No such file or directory
As for new platform bringup, this change is fine. All we need for bringup is the ability to build and run the tests without any managed components being involved and this change preserves that.
There was a problem hiding this comment.
The oneValueArg should now be removed here since it doesn't exist anymore.
There was a problem hiding this comment.
A micro nit - maybe use pushd / popd instead?
There was a problem hiding this comment.
It was a bit unexpected that the path I needed to pass to this script was not the root of the build, but rather its paltests subfolder. I would prefer changing it so that we pass in the build root on the command line (e.g. ....../artifacts/bin/coreclr/Linux.x64.Debug) and add the "paltests" in this script to it.
There was a problem hiding this comment.
By making the required parameter to being the paltests directory, it is now easy to dump these tests into our CI system. I do not intend to change this.
There was a problem hiding this comment.
Just being curious - why would it be a problem for the CI to pass in a path without the palsuite subfolder and adding it in the script?
cba53dd to
4495b3f
Compare
There was a problem hiding this comment.
nit:
| BUILD_ROOT_DIR=$1 | |
| BUILD_ROOD_DIR=$1 | |
| if [ -d "$(pwd)/$BUILD_ROOT_DIR" ]; then | |
| BUILD_ROOT_DIR="$(pwd)/$BUILD_ROOT_DIR" | |
| fi |
currently it does not work with the relative paths:
# does not work
$ src/coreclr/src/pal/tests/palsuite/runpaltests.sh artifacts//bin/coreclr/OSX.x64.Debug/paltests
# works
$ src/coreclr/src/pal/tests/palsuite/runpaltests.sh $(pwd)/artifacts//bin/coreclr/OSX.x64.Debug/paltestsboth cases will work with the suggested change.
There was a problem hiding this comment.
Also, now it is a directory instead of path to txt file, could you please update this doc section:
runtime/docs/workflow/testing/coreclr/unix-test-instructions.md
Lines 91 to 93 in 9e09fe3
to:
```sh src/coreclr/src/pal/tests/palsuite/runpaltests.sh artifacts//bin/coreclr/$(uname).x64.Debug/paltests # on macOS, replace $(uname) with OSX ```
Remove directories for non-existent CreateDirectoryW test Disable build of LoadLibraryA test6 Disable build of LoadLibraryA test8 Remove CharNextA and CharNextExA infra Add palsuite.h to child process Common paltests code Fix issues disable tests
|
Sorry about the conflicts, we cleaned up some unused PAL API. 😊 |
…t build to install to bin directory, and be runnable from thereInitial infra to launch pal tests in helix as part of normal test runFix issue where clr buidl subsets not involving runtime do not work on Unix buildsPAL test integration with non-innerloop coreclr test runsFix linker issue when compiling on CentOS 6Try againFix build so it stops at a good place when it fails.Spelling errorFix additional destinations processing in jit
4495b3f to
bf2ef58
Compare
Refactor the PAL test framework to be useable in our CI system, and enable it for testing
The existing PAL tests are problematic in a few ways for our CI.
The change here has 4 components