aqa-systemtest
aqa-systemtest copied to clipboard
Backlog: Use ISO-8859-1 encoding in System test compilation tasks
Using ISO-8859-1 encoding value for the system test compilation tasks allows system tests to be compiled without having the step to copy gitattributes.zos properties files in the common.xml script.
We should get rid of the copy steps from the common.xml and update all the build files in openjdk-systemtest openj9-systemtest and stf repos to use ISO-8859-1 as compilation encoding.
This will mean we will also no longer require to set the src-encoding property in top.xml
With the changes, GIT does check out the system test source files in the correct encoding on z/OS, the compilation also works fine.
Test: Test_grinder/job/Grinder/2340/console
However, the tests fail to run as the encoding of the file stf.pl is wrong, as evident here:
10:45:58 Running test TestJlmRemoteMemoryNoAuth_0 ...
10:45:58 ===============================================
10:45:58 TestJlmRemoteMemoryNoAuth_0 Start Time: Thu Oct 10 10:45:58 2019 Epoch Time (ms): 1570718758593
10:45:58 "/home/jenkins/workspace/Grinder/openjdkbinary/j2sdk-image/bin/java" -Xshareclasses:destroyAll; "/home/jenkins/workspace/Grinder/openjdkbinary/j2sdk-image/bin/java" -Xshareclasses:groupAccess,destroyAll; echo "cache cleanup done";
10:45:58
10:45:58 Attempting to destroy all caches in cacheDir /home/jenkins/javasharedresources/
10:45:58
10:45:58 JVMSHRC023E Cache does not exist
10:46:00 JVMSHRC005I No shared class caches available
10:46:01 cache cleanup done
10:46:01 variation: NoOptions
10:46:01 JVM_OPTIONS: -Xcompressedrefs
10:46:01 { itercnt=1; \
10:46:01 mkdir -p "/home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../TestConfig/test_output_15707187129285/TestJlmRemoteMemoryNoAuth_0"; \
10:46:01 cd "/home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../TestConfig/test_output_15707187129285/TestJlmRemoteMemoryNoAuth_0"; \
10:46:01 perl /home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../../jvmtest/system/jlm/..//stf/stf.core/scripts/stf.pl \
10:46:01 -test-root="/home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../../jvmtest/system/jlm/..//stf;/home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../../jvmtest/system/jlm/..//openjdk-systemtest" \
10:46:01 -systemtest-prereqs="/home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../../jvmtest/system/jlm/..//systemtest_prereqs" \
10:46:01 -java-args="-Xcompressedrefs " \
10:46:01 -results-root="/home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../TestConfig/test_output_15707187129285/TestJlmRemoteMemoryNoAuth_0" \
10:46:01 -test=TestJlmRemoteMemoryNoAuth; \
10:46:01 if [ $? -eq 0 ] ; then echo ""; echo "TestJlmRemoteMemoryNoAuth_0""_PASSED"; echo ""; cd /home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../..; else echo ""; echo "TestJlmRemoteMemoryNoAuth_0""_FAILED"; echo ""; fi; } 2>&1 | tee -a "/home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../TestConfig/test_output_15707187129285/TestTargetResult";
10:46:01 Unrecognized character \x23; marked by <-- HERE after <-- HERE near column 1 at /home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../../jvmtest/system/jlm/..//stf/stf.core/scripts/stf.pl line 1.
10:46:01
10:46:01 TestJlmRemoteMemoryNoAuth_0_FAILED
10:46:01
Need to investigate further to find out how to ensure the perl scripts that are part of the stf test repo get checked out by GIT in the correct format.
Why ISO-8859-1 rather than UTF-8?
Since ISO-8859-1 and UTF-8 both encode ASCII the same way, but UTF-8 allows multibyte encoding, we could test out UTF-8 instead, as well. I guess ISO-8859-1 was chosen here as we use this encoding in build.xml files of other projects too (e.g functional tests) .