Currently we can do PR testing for the JITServer with the jittas branch with a comment like:
Jenkins test sanity.functional+jitaas xlinux jdk8,jdk11 depends eclipse/openj9-omr#jitaas
We would like to have the same functionality for the master branch as well, but in the master branch the JITServer code is protected by #ifdef JITSERVER_SUPPORT.
One possibility is to set the following env var: JITSERVER_SUPPORT=1 whenever +jitaas is seen in the comment that triggers the testing.
@AdamBrousseau proposed a better alternative: create new platform/spec on the compile side similar to how we do compressed vs XL. This is going to be a duplicate spec with an extra env variable.
FYI: @pshipton @jdekonin
We should be using the 鈥攅nable-jitserver configure option (https://github.com/ibmruntimes/openj9-openjdk-jdk8/pull/346), and adding the support for that, similarly to how the cmake build works. If that is what create new platform/spec means, then I agree.
Yes. When I originally said new spec with extra env variable I didn't know about the work to add the new configure option. It would be a dup spec with one more config option. I would prefer to add this after #7809 is merged but I'm not sure if that will land in time for this work.
Few things to confirm.
TEST_FLAG. This will mean mixed history on a test job between JITServer tests and regular tests.TEST_FLAG +jitaas. I'm wondering if I can remove this hackish check and explicitly set it based on the new spec.ie. You would then be able to do
Jenkins test sanity.functional xlinux,xlinuxjit jdk8,11
Instead of
Jenkins test sanity.functional xlinux jdk8,11
Jenkins test sanity.functional+jitaas xlinuxjit jdk8,11
The side effect is you can only have jitserver testing on jitserver specs. Which I assume would be the case but please confirm.
Note to self, this mechanism is still used for +aot so it can't be completely removed but it can be removed for this case.
If we did want separate test jobs, we may need to pass a different IMPL (implementation) in order to get different test job names (jitserver?). Not sure if that makes sense or how much extra work that would be on the test side.
cc @smlambert
Do not believe there is any reason to having separate test job names, because these test jobs would be related to a parent pipelines that is jitserver specific (and so can be found & queried in jenkins & trss from parent jitserver build, fyi @llxia).
If you did want that, do not override JDK_IMPL or any of the core parameters that have a specific meaning and usage in underlying scripts (as it would have disastrous effects). If different name needed, recommendation would be to use a different SUFFIX a parameter that exists only to allow for different job names (currently _Nightly, _Release and _personal).
I don't have a preference for the options above.
Jenkins test sanity.functional xlinuxjit jdk8,11 is more compact while
Jenkins test sanity.functional+jitaas xlinuxjit jdk8,11 looks more like the AOT case.
Testing the xlinuxjit build in non-jitserver mode has little value now and in the future when jitserver code will be compiled-in by default will have no value.
Most helpful comment
Do not believe there is any reason to having separate test job names, because these test jobs would be related to a parent pipelines that is jitserver specific (and so can be found & queried in jenkins & trss from parent jitserver build, fyi @llxia).
If you did want that, do not override JDK_IMPL or any of the core parameters that have a specific meaning and usage in underlying scripts (as it would have disastrous effects). If different name needed, recommendation would be to use a different SUFFIX a parameter that exists only to allow for different job names (currently _Nightly, _Release and _personal).