adoptium / TKG

TestKitGen (TKG)
Apache License 2.0
17 stars 96 forks source link

Simplify ottawa.csv #532

Open llxia opened 4 months ago

llxia commented 4 months ago

The mode is a short name for a list of jvm options. We inherited the old logic from vmfarm.

TKG/resources/modes.xml - defines the list of jvm options for each mode TKG/resources/ottawa.csv - defines what mode can or cannot run on which platforms. The complexity escalates when it needs to support 64_nocmprssptrs, cmprssptrs, and mixed JVM using one file. And support both internal (old Axxon) and external cases.

Due to the large number of columns and rows, it's difficult to discern what has been altered in the ottawa.csv file. And we had cases in which we had to revert change after merging. (see https://github.com/adoptium/TKG/pull/511). Also, it is hard to add new platforms.

Below are the platforms that we have so far:

win_x86-32  win_x86-64_ncr  win_x86-64_cr   win_x86-64  linux_x86-32    linux_x86-64_ncr    linux_x86-64_cr linux_x86-64    linux_ppc-32    linux_ppc-64_ncr    linux_ppc-64_cr linux_ppc-64    linux_ppcle-64_ncr  linux_ppcle-64_cr   linux_ppc-64    linux_390-31    linux_390-64_ncr    linux_390-64_cr linux_390-64_cr_zt  linux_390-64    linux_390-64_zt aix_ppc-32  aix_ppc-64_ncr  aix_ppc-64_cr   aix_ppc-64  zos_390-31  zos_390-31_zt   zos_390-64_ncr  zos_390-64_cr   zos_390-64_cr_zt    zos_390-64  zos_390-64_zt   linux_arm   osx_x86-64_ncr  osx_x86-64_cr   osx_x86-64  osx_aarch64_ncr bsd_x86-64  sunos_sparcv9-64    sunos_x86-64    linux_aarch64_ncr   linux_aarch64_cr    linux_aarch64   linux_riscv64_ncr   linux_riscv64_cr    linux_riscv64   alpine-linux_x86-64 alpine-linux_aarch64    default-64  default-none64

I think we need to simplify ottawa.csv. To start, we could

I am open to ideas of replacing ottawa.csv with a better solution.

smlambert commented 4 months ago

💯 agree, and recalling that we had long ago discussions of moving away from modes completely, since the variations within the playlist can be directly a set of VM options.

What modes really provides is a check on whether certain options are valid on certain platforms. Perhaps there is a different way to relate this information to test targets.