From 8733901e5c91a4fe49fcf2a15a710a6c516c9050 Mon Sep 17 00:00:00 2001 From: Anna Babu Palathingal <148897727+annaibm@users.noreply.github.com> Date: Thu, 19 Sep 2024 16:45:01 -0400 Subject: [PATCH] Update feature flag handling for required features - Removed `null` statement from `required` feature check to ensure all required features are processed. - Allows the code to continue checking all feature flags, even after finding a required flag in `testFlags`. - Added test_not_arch_390_z15plus_0 into passed list for running TKG test PR in github actions as no microarch version is detected. related:https://github.ibm.com/runtimes/backlog/issues/1525 Signed-off-by: Anna Babu Palathingal --- scripts/testTKG/test_platformRequirements.py | 1 + src/org/testKitGen/TestInfoParser.java | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/scripts/testTKG/test_platformRequirements.py b/scripts/testTKG/test_platformRequirements.py index a41d4c5b..dd10f6b8 100644 --- a/scripts/testTKG/test_platformRequirements.py +++ b/scripts/testTKG/test_platformRequirements.py @@ -149,6 +149,7 @@ def run_test(): skipped.add('test_not_arch_390_0') else: passed.add('test_not_arch_390_0') + passed.add('test_not_arch_390_z15plus_0') if 'test_arch_390_z15_0' not in passed: skipped.add('test_arch_390_z15_0') diff --git a/src/org/testKitGen/TestInfoParser.java b/src/org/testKitGen/TestInfoParser.java index 6a4b9428..f9c6a3ae 100644 --- a/src/org/testKitGen/TestInfoParser.java +++ b/src/org/testKitGen/TestInfoParser.java @@ -88,11 +88,15 @@ public TestInfo parse() { ti.addFeature(featElements[0].toLowerCase(), featElements[1].toLowerCase()); } Set testFlags = new HashSet<>(arg.getTestFlag()); + boolean requiredFeatureFound = false; + boolean hasRequiredFeature = false; for (Map.Entry entry : ti.getFeatures().entrySet()) { String featureOpt = entry.getValue().toLowerCase(); if (featureOpt.equals("required")) { - if (!isFeatureInTestFlags(testFlags, entry.getKey())) { - return null; + hasRequiredFeature = true; + if (isFeatureInTestFlags(testFlags, entry.getKey())) { + requiredFeatureFound = true; + break; } } else if (featureOpt.equals("nonapplicable")) { // Do not generate make target if the test is not applicable for one feature defined in TEST_FLAG @@ -106,7 +110,9 @@ public TestInfo parse() { System.exit(1); } } - + if (hasRequiredFeature && !requiredFeatureFound) { + return null; + } if (testFlags.contains("aot")) { for (Map.Entry entry : ti.getFeatures().entrySet()) { if (doesFeatureMatchTestFlag("aot", entry.getKey())) {