From 32af79dc00603be7176ecabf2612610eba095f07 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 1/2] 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`. related:https://github.ibm.com/runtimes/backlog/issues/1525 Signed-off-by: Anna Babu Palathingal --- src/org/testKitGen/TestInfoParser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/org/testKitGen/TestInfoParser.java b/src/org/testKitGen/TestInfoParser.java index 6a4b9428..cefbd7da 100644 --- a/src/org/testKitGen/TestInfoParser.java +++ b/src/org/testKitGen/TestInfoParser.java @@ -91,8 +91,8 @@ public TestInfo parse() { for (Map.Entry entry : ti.getFeatures().entrySet()) { String featureOpt = entry.getValue().toLowerCase(); if (featureOpt.equals("required")) { - if (!isFeatureInTestFlags(testFlags, entry.getKey())) { - return null; + if (isFeatureInTestFlags(testFlags, entry.getKey())) { + break; } } else if (featureOpt.equals("nonapplicable")) { // Do not generate make target if the test is not applicable for one feature defined in TEST_FLAG From 21e1cb7180c1935e56274aef05a3e326a40ded68 Mon Sep 17 00:00:00 2001 From: Anna Babu Palathingal <148897727+annaibm@users.noreply.github.com> Date: Fri, 20 Sep 2024 14:49:23 -0400 Subject: [PATCH 2/2] added !requiredFeatureFound --- src/org/testKitGen/TestInfoParser.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/org/testKitGen/TestInfoParser.java b/src/org/testKitGen/TestInfoParser.java index cefbd7da..bc078f24 100644 --- a/src/org/testKitGen/TestInfoParser.java +++ b/src/org/testKitGen/TestInfoParser.java @@ -88,10 +88,12 @@ public TestInfo parse() { ti.addFeature(featElements[0].toLowerCase(), featElements[1].toLowerCase()); } Set testFlags = new HashSet<>(arg.getTestFlag()); + boolean requiredFeatureFound = false; for (Map.Entry entry : ti.getFeatures().entrySet()) { String featureOpt = entry.getValue().toLowerCase(); if (featureOpt.equals("required")) { if (isFeatureInTestFlags(testFlags, entry.getKey())) { + requiredFeatureFound = true; break; } } else if (featureOpt.equals("nonapplicable")) { @@ -106,7 +108,9 @@ public TestInfo parse() { System.exit(1); } } - + if (!requiredFeatureFound) { + return null; + } if (testFlags.contains("aot")) { for (Map.Entry entry : ti.getFeatures().entrySet()) { if (doesFeatureMatchTestFlag("aot", entry.getKey())) {