STF uses the value riscv to determine it is running on a risc-v machine.
The openj9 implementation sets os.arch to riscv and so that value has been used directly until now,
The bisheng (Huawei) build sets os.arch to riscv64 which causes tests to fail because riscv64 is not recognised.
The failure output is:
STF 09:46:16.664 - ================== G E N E R A T I O N ==================
STF 09:46:16.700 - Checking JVM: /home/lumpfish/bishengjdk/jdk-11.0.10+9/
STF 09:46:16.707 - Starting process to generate scripts: /home/lumpfish/bishengjdk/jdk-11.0.10+9//bin/java -Dlog4j.skipJansi=true -Djava.system.class.loader=net.adoptopenjdk.stf.runner.StfClassLoader -classpath /home/lumpfish/git/openjdk-tests/system/openjdk-systemtest/../../systemtest_prereqs/log4j/log4j-api.jar:/home/lumpfish/git/openjdk-tests/system/openjdk-systemtest/../../systemtest_prereqs/log4j/log4j-core.jar:/home/lumpfish/git/openjdk-tests/system/stf/stf.core/scripts/../bin net.adoptopenjdk.stf.runner.StfRunner -properties "/tmp/stf/20210401-094616-ClassloadingLoadTest/stf_parameters.properties, , /home/lumpfish/git/openjdk-tests/system/stf/stf.core/config/stf.properties" -testDir "/tmp/stf/20210401-094616-ClassloadingLoadTest"
GEN stderr Exception in thread "main" java.lang.IllegalStateException: Failed to get property: stf-bin-dir
GEN stderr at net.adoptopenjdk.stf.environment.properties.OrderedProperties.getProperty(OrderedProperties.java:105)
GEN stderr at net.adoptopenjdk.stf.environment.properties.LayeredProperties.resolveProperty(LayeredProperties.java:112)
GEN stderr at net.adoptopenjdk.stf.environment.properties.LayeredProperties.getProperty(LayeredProperties.java:73)
GEN stderr at net.adoptopenjdk.stf.environment.StfEnvironmentCore.getProperty(StfEnvironmentCore.java:352)
GEN stderr at net.adoptopenjdk.stf.environment.StfEnvironmentCore.createDirectoryRefFromProperty(StfEnvironmentCore.java:290)
GEN stderr at net.adoptopenjdk.stf.environment.StfEnvironmentCore.<init>(StfEnvironmentCore.java:85)
GEN stderr at net.adoptopenjdk.stf.runner.StfRunner.executeTest(StfRunner.java:140)
GEN stderr at net.adoptopenjdk.stf.runner.StfRunner.main(StfRunner.java:69)
GEN stderr Caused by: net.adoptopenjdk.stf.StfException: Unknown architecture value: 'riscv64'. Expected one of '390|x86|ppc|x86|arm|riscv'
GEN stderr at net.adoptopenjdk.stf.environment.PlatformFinder.<init>(PlatformFinder.java:91)
GEN stderr at net.adoptopenjdk.stf.environment.PlatformFinder.getInstance(PlatformFinder.java:70)
GEN stderr at net.adoptopenjdk.stf.environment.PlatformFinder.getPlatform(PlatformFinder.java:147)
GEN stderr at net.adoptopenjdk.stf.environment.properties.OrderedProperties.getProperty(OrderedProperties.java:95)
GEN stderr ... 7 more
Generation failed
The fix is to recognise os.arch=riscv64 as well as os.arch=riscv .
STF uses the value
riscv
to determine it is running on a risc-v machine.The openj9 implementation sets
os.arch
toriscv
and so that value has been used directly until now,The bisheng (Huawei) build sets
os.arch
toriscv64
which causes tests to fail becauseriscv64
is not recognised.The failure output is:
The fix is to recognise
os.arch=riscv64
as well asos.arch=riscv
.