aqa-tests
aqa-tests copied to clipboard
tck are not using cncurency
Current jcks are split (https://github.com/adoptium/aqa-tests/tree/master/jck/splitter) into the chunks (eg https://github.com/adoptium/aqa-tests/blob/06f6219f7a91af8bdf756ddb67d60fb1ca58e13a/jck/runtime.api/playlist.xml#L815) , which once run, looks (from https://github.com/adoptium/aqa-tests/blob/06f6219f7a91af8bdf756ddb67d60fb1ca58e13a/jck/jck.mk#L152 ) like
===============================================
Running test jck-runtime-api-javax_activity_0 ...
===============================================
jck-runtime-api-javax_activity_0 Start Time: Fri Sep 27 00:42:07 2024 Epoch Time (ms): 1727397727349
variation: NoOptions
JVM_OPTIONS:
{ \
echo ""; echo "TEST SETUP:"; \
echo "Nothing to be done for setup."; \
mkdir -p "/home/tester/jck-via-aqavit-1727351423/aqa-tck-work/aqa-tests/TKG/../TKG/output_1727397727920/jck-runtime-api-javax_activity_0"; \
cd "/home/tester/jck-via-aqavit-1727351423/aqa-tck-work/aqa-tests/TKG/../TKG/output_1727397727920/jck-runtime-api-javax_activity_0"; \
echo ""; echo "TESTING:"; \
"/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-7.fc40.2.x86_64/bin/java" -Djvm.options=" " -Dother.opts="" -cp /home/tester/jck-via-aqavit-1727351423/aqa-tck-work/aqa-tests/TKG/../jck/jtrunner/bin JavatestUtil testRoot=/home/tester/jck-via-aqavit-1727351423/aqa-tck-work/aqa-tests/TKG/.. jckRoot=/home/tester/jck-via-aqavit-1727351423/aqa-tck jckversion=jck8d workdir="/home/tester/jck-via-aqavit-1727351423/aqa-tck-work/aqa-tests/TKG/../TKG/output_1727397727920/jck-runtime-api-javax_activity_0" configAltPath=/home/tester/jck-via-aqavit-1727351423/aqa-tck-work/aqa-tests/TKG/../jck/jtrunner/config testJava="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-7.fc40.2.x86_64/bin/java" riJava="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-7.fc40.2.x86_64/bin/java" task=cmdfilegen spec=linux_x86-64 tests=api/javax_activity testsuite=RUNTIME; \
"/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-7.fc40.2.x86_64/bin/java" -jar /home/tester/jck-via-aqavit-1727351423/aqa-tck/JCK-runtime-8d/lib/javatest.jar -config /home/tester/jck-via-aqavit-1727351423/aqa-tck-work/aqa-tests/TKG/../jck/jtrunner/config/jck8d/runtime.jti @"/home/tester/jck-via-aqavit-1727351423/aqa-tck-work/aqa-tests/TKG/../TKG/output_1727397727920/jck-runtime-api-javax_activity_0"/generated.jtb; \
if [ $? -eq 0 ]; then echo "-----------------------------------"; echo "jck-runtime-api-javax_activity_0""_PASSED"; echo "-----------------------------------"; cd /home/tester/jck-via-aqavit-1727351423/aqa-tck-work/aqa-tests/TKG/..; else echo "-----------------------------------"; echo "jck-runtime-api-javax_activity_0""_FAILED"; echo "-----------------------------------"; fi; \
"/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-7.fc40.2.x86_64/bin/java" -Djvm.options=" " -Dother.opts="" -cp /home/tester/jck-via-aqavit-1727351423/aqa-tck-work/aqa-tests/TKG/../jck/jtrunner/bin JavatestUtil testRoot=/home/tester/jck-via-aqavit-1727351423/aqa-tck-work/aqa-tests/TKG/.. jckRoot=/home/tester/jck-via-aqavit-1727351423/aqa-tck jckversion=jck8d configAltPath=/home/tester/jck-via-aqavit-1727351423/aqa-tck-work/aqa-tests/TKG/../jck/jtrunner/config workdir="/home/tester/jck-via-aqavit-1727351423/aqa-tck-work/aqa-tests/TKG/../TKG/output_1727397727920/jck-runtime-api-javax_activity_0" spec=linux_x86-64 task=summarygen tests=api/javax_activity testsuite=RUNTIME; \
echo ""; echo "TEST TEARDOWN:"; \
echo "Nothing to be done for teardown."; \
} 2>&1 | tee -a "/home/tester/jck-via-aqavit-1727351423/aqa-tck-work/aqa-tests/TKG/../TKG/output_1727397727920/TestTargetResult";
That suggests javatest.jar's -concurrency is not used. That is causing tck to run at least on half speed less then possible., often much slower. There are however some parts (namely awt) which may suffer from high cocnurency.
I would like to suggest following change:
- there will be defined set of sub suites (starting with awt), which will enforce cocnurency 1.
- This still will be possible for user to override.
- for other suites, the cores will be detected. and concurrency will be set to half of them.
- If this fails, default would be 2
- user will be able to overwrite this
- the overwrite for defined set (first bullet) will be different ten this one
wdyt? (note, this is battle tested in RH, we even run with much higher concurency then N/2 by default)