adoptium / aqa-systemtest

Java load testing and other full system application tests
Apache License 2.0
19 stars 65 forks source link

Enforce using bash for jck schema scripts on linux #439

Closed andrew-m-leonard closed 3 years ago

andrew-m-leonard commented 3 years ago

The xjc.sh script is based on ksh minumum syntax and as such will not work with standard "sh". This PR mandates the use of bash on linux platforms. The javatest framework launches the scripts via a Java ProcessCommand and as such will not use a shell.

Signed-off-by: Andrew Leonard anleonar@redhat.com

andrew-m-leonard commented 3 years ago

Fixes: https://github.com/temurin-compliance/temurin-compliance/issues/30

andrew-m-leonard commented 3 years ago

schemagen.sh also has the same problem

Mesbah-Alam commented 3 years ago

@andrew-m-leonard - does this change cause the associated shell scripts to work properly? Is there a grinder link?

I never tried the change you added in this PR, however, in the past, I was able to reproduce the failure on some bash versions (e.g. GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)), while it worked on some others (e.g. GNU bash, version 4.1.2(2)-release (x86_64-redhat-linux-gnu)).

andrew-m-leonard commented 3 years ago

@Mesbah-Alam yes links 46-49: https://ci.eclipse.org/temurin-compliance/view/JCK8/job/Test_openjdk8_hs_sanity.jck_x86-64_linux/46/

andrew-m-leonard commented 3 years ago

@andrew-m-leonard - does this change cause the associated shell scripts to work properly? Is there a grinder link?

I never tried the change you added in this PR, however, in the past, I was able to reproduce the failure on some bash versions (e.g. GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)), while it worked on some others (e.g. GNU bash, version 4.1.2(2)-release (x86_64-redhat-linux-gnu)).

@Mesbah-Alam it would have also depended on whether you had the default dash sh configured on your machines in question.

lumpfish commented 3 years ago

Remember that all STF is doing is creating overrides for interview questions which cannot be predetermined in a static .jti file, whether that is because they are dynamic (e.g. hostname / ip address of the test machine) or platform specific (e.g. you might need to prepend 'bash' to a command on some platforms). That will still need to be done somehow before invoking the javatest harness if something else (other than STF) is used to invoke the harness.