From 05a35310f50b414127fd0b9881eb0bf0bd7b4ba0 Mon Sep 17 00:00:00 2001 From: Andrew Leonard Date: Thu, 6 Nov 2025 10:12:36 +0000 Subject: [PATCH 1/6] Fix runtest.sh Mac minimize windows+Finder logic Signed-off-by: Andrew Leonard --- buildenv/jenkins/src/ListJavaFonts.java | 12 +++ buildenv/jenkins/src/MinimizeMacWindows.java | 49 ++++++++- jck/interactives/arctic_tests/runTests.sh | 100 +++++-------------- jck/interactives/playlist.xml | 6 +- 4 files changed, 89 insertions(+), 78 deletions(-) create mode 100644 buildenv/jenkins/src/ListJavaFonts.java diff --git a/buildenv/jenkins/src/ListJavaFonts.java b/buildenv/jenkins/src/ListJavaFonts.java new file mode 100644 index 0000000000..d32b152564 --- /dev/null +++ b/buildenv/jenkins/src/ListJavaFonts.java @@ -0,0 +1,12 @@ +import java.awt.GraphicsEnvironment; + +// List the System Java fonts installed +public class ListJavaFonts { + public static void main(String[] args) { + String java_fonts[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); + + for(String font : java_fonts) { + System.out.println(font); + } + } +} diff --git a/buildenv/jenkins/src/MinimizeMacWindows.java b/buildenv/jenkins/src/MinimizeMacWindows.java index b5a0a158c6..ddc96afd2c 100644 --- a/buildenv/jenkins/src/MinimizeMacWindows.java +++ b/buildenv/jenkins/src/MinimizeMacWindows.java @@ -1,11 +1,13 @@ import java.awt.Robot; import java.awt.event.KeyEvent; +import java.awt.Desktop; +import java.io.File; public class MinimizeMacWindows { public static void main(String... args) throws Exception { - System.out.println("MinimizeMacWindows: Minimizing all other app windows Cmd+Alt+H"); - + // Minimize all windows... + System.out.println("MinimizeMacWindows: Issuing Alt-Cmd-H to minimize all 'other' Windows"); Robot r = new Robot(); r.keyPress(KeyEvent.VK_META); r.delay(250); @@ -19,5 +21,48 @@ public static void main(String... args) throws Exception { r.delay(250); r.keyRelease(KeyEvent.VK_META); r.delay(250); + + System.out.println("MinimizeMacWindows: Issuing Alt-Cmd-M to minimize all 'front' Windows"); + r.keyPress(KeyEvent.VK_META); + r.delay(250); + r.keyPress(KeyEvent.VK_ALT); + r.delay(250); + r.keyPress(KeyEvent.VK_M); + r.delay(250); + r.keyRelease(KeyEvent.VK_M); + r.delay(250); + r.keyRelease(KeyEvent.VK_ALT); + r.delay(250); + r.keyRelease(KeyEvent.VK_META); + r.delay(250); + + // Now open and close all Finder windows... so that the Finder is all closed and does not re-open on completion + System.out.println("MinimizeMacWindows: Issuing Alt-Cmd-Space open 'Finder' so as to become 'front' Window"); + r.keyPress(KeyEvent.VK_META); + r.delay(250); + r.keyPress(KeyEvent.VK_ALT); + r.delay(250); + r.keyPress(KeyEvent.VK_SPACE); + r.delay(250); + r.keyRelease(KeyEvent.VK_SPACE); + r.delay(250); + r.keyRelease(KeyEvent.VK_ALT); + r.delay(250); + r.keyRelease(KeyEvent.VK_META); + r.delay(250); + + System.out.println("MinimizeMacWindows: Issuing Alt-Cmd-W to close 'front' 'Finder' Window"); + r.keyPress(KeyEvent.VK_META); + r.delay(250); + r.keyPress(KeyEvent.VK_ALT); + r.delay(250); + r.keyPress(KeyEvent.VK_W); + r.delay(250); + r.keyRelease(KeyEvent.VK_W); + r.delay(250); + r.keyRelease(KeyEvent.VK_ALT); + r.delay(250); + r.keyRelease(KeyEvent.VK_META); + r.delay(250); } } diff --git a/jck/interactives/arctic_tests/runTests.sh b/jck/interactives/arctic_tests/runTests.sh index 045c53b26b..ee03a79f31 100755 --- a/jck/interactives/arctic_tests/runTests.sh +++ b/jck/interactives/arctic_tests/runTests.sh @@ -19,9 +19,8 @@ SLEEP_TIME=5 export LC_ALL=POSIX setupLinuxEnv() { + TEST_ROOT_DIR="$1" echo "Setup Linux Environment" - # Fetch the prebuilt arctic jar (will be pulled from prereq build eventually) - # wget -q https://ci.adoptium.net/job/Build_Arctic/5/artifact/upload/arctic-0.8.1.jar # Set environment variables, makes the assumption that JDK21 is the default java in /usr/bin/java export ARCTIC_JDK=/usr/bin/java @@ -67,75 +66,28 @@ setupLinuxEnv() { } setupMacEnv() { + TEST_ROOT_DIR="$1" export AWT_FORCE_HEADFUL=true echo "Setup Mac Environment" # Point to specific system installed Temurin-21 export ARCTIC_JDK=/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/bin/java - cat < JMinWindows.java - import java.awt.Robot; - import java.awt.event.KeyEvent; - import java.awt.Desktop; - import java.io.File; - public class JMinWindows { - public static void main(String... args) throws Exception { - System.out.println("JMinWindows: Opening Finder on home folder so Finder becomes active front window and will get closed by Alt-Cmd-M"); - Desktop.getDesktop().open(new File(System.getProperty("user.home"))); - System.out.println("JMinWindows: Issuing Alt-Cmd-H to minimize all 'other' Windows"); - Robot r = new Robot(); - r.keyPress(KeyEvent.VK_META); - r.delay(250); - r.keyPress(KeyEvent.VK_ALT); - r.delay(250); - r.keyPress(KeyEvent.VK_H); - r.delay(250); - r.keyRelease(KeyEvent.VK_H); - r.delay(250); - r.keyRelease(KeyEvent.VK_ALT); - r.delay(250); - r.keyRelease(KeyEvent.VK_META); - r.delay(250); - System.out.println("JMinWindows: Issuing Alt-Cmd-M to minimize all Finder Windows"); - r.keyPress(KeyEvent.VK_META); - r.delay(250); - r.keyPress(KeyEvent.VK_ALT); - r.delay(250); - r.keyPress(KeyEvent.VK_M); - r.delay(250); - r.keyRelease(KeyEvent.VK_M); - r.delay(250); - r.keyRelease(KeyEvent.VK_ALT); - r.delay(250); - r.keyRelease(KeyEvent.VK_META); - r.delay(250); - } - } -EOF - - javac JMinWindows.java - java -Djava.awt.headless=false JMinWindows - - echo "Running java ListJavaFonts..." - -cat < ListJavaFonts.java - import java.awt.GraphicsEnvironment; - public class ListJavaFonts { - public static void main( String[] args ) { - String java_fonts[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); - for(String font : java_fonts) System.out.println( font ); - } - } -EOF - - javac ListJavaFonts.java - echo "================================================" - java ListJavaFonts - echo "================================================" - + echo "Minimize all Mac Windows on Desktop" + javac "${TEST_ROOT_DIR}/buildenv/jenkins/src/MinimizeMacWindows.java" + echo "================================================" + java -Djava.awt.headless=false -cp "${TEST_ROOT_DIR}/buildenv/jenkins/src" MinimizeMacWindows + echo "================================================" + + echo "Running java ListJavaFonts..." + javac "${TEST_ROOT_DIR}/buildenv/jenkins/src/ListJavaFonts.java" + echo "================================================" + java -cp "${TEST_ROOT_DIR}/buildenv/jenkins/src" ListJavaFonts + echo "================================================" } setupWindowsEnv() { + TEST_ROOT_DIR="$1" echo "Setup Windows Environment" # Point to specific system installed openjdk-21 @@ -144,12 +96,12 @@ setupWindowsEnv() { JOPTIONS="-Djava.net.preferIPv4Stack=true -Djdk.attach.allowAttachSelf=true -Dsun.rmi.activation.execPolicy=none -Djdk.xml.maxXMLNameLimit=4000" -# Verify that the contents are present in jck_run -TEST_GROUP=$1 -SPEC=$2 -VERSION=$3 -JCK_VERSION_NUMBER=$4 -TEST_SUB_DIR=$5 +TEST_ROOT=$1 +TEST_GROUP=$2 +SPEC=$3 +VERSION=$4 +JCK_VERSION_NUMBER=$5 +TEST_SUB_DIR=$6 STARTING_SCOPE=$VERSION if [ $VERSION -eq 8 ]; then STARTING_SCOPE="default" @@ -160,17 +112,17 @@ if [[ $SPEC =~ osx.* ]]; then OSNAME="mac" JENKINS_HOME_DIR="/Users/jenkins" PPROP_LINE='s#arctic.common.repository.json.path.*$#arctic.common.repository.json.path = /Users/jenkins/jck_run/arctic/mac/arctic_tests#g' - setupMacEnv + setupMacEnv "${TEST_ROOT}" elif [[ $SPEC =~ linux.* ]]; then OSNAME="linux" JENKINS_HOME_DIR=/home/jenkins PPROP_LINE='s#arctic.common.repository.json.path.*$#arctic.common.repository.json.path = /home/jenkins/jck_run/arctic/linux/arctic_tests#g' - setupLinuxEnv + setupLinuxEnv "${TEST_ROOT}" elif [[ $SPEC =~ win.* ]]; then OSNAME="windows" JENKINS_HOME_DIR="c:/Users/jenkins" PPROP_LINE='s#arctic.common.repository.json.path.*$#arctic.common.repository.json.path = c:/Users/jenkins/jck_run/arctic/windows/arctic_tests#g' - setupWindowsEnv + setupWindowsEnv "${TEST_ROOT}" fi ARCTIC_GROUP="${TEST_SUB_DIR}" @@ -346,8 +298,10 @@ for i in "${active_versions[@]}"; do fi # Check testcase started successfully. - ps -p $test_pid - rc=$? + if [[ $skipped == false ]]; then + ps -p $test_pid + rc=$? + fi if [[ $skipped == true ]] || [[ $rc != 0 ]]; then if [[ $skipped == false ]]; then echo "ERROR: Test class failed prior to playback." diff --git a/jck/interactives/playlist.xml b/jck/interactives/playlist.xml index c171948cfe..b2c890586c 100644 --- a/jck/interactives/playlist.xml +++ b/jck/interactives/playlist.xml @@ -19,7 +19,7 @@ NoOptions - $(TEST_ROOT)$(D)jck$(D)interactives$(D)arctic_tests$(D)runTests.sh custom ${SPEC} ${JDK_VERSION} ${JCK_VERSION_NUMBER} ${JCKINTERACTIVES_CUSTOM_TARGET}; \ + $(TEST_ROOT)$(D)jck$(D)interactives$(D)arctic_tests$(D)runTests.sh $(Q)$(TEST_ROOT)$(Q) custom ${SPEC} ${JDK_VERSION} ${JCK_VERSION_NUMBER} ${JCKINTERACTIVES_CUSTOM_TARGET}; \ $(TEST_STATUS) @@ -34,7 +34,7 @@ NoOptions - $(TEST_ROOT)$(D)jck$(D)interactives$(D)arctic_tests$(D)runTests.sh java_awt ${SPEC} ${JDK_VERSION} ${JCK_VERSION_NUMBER} api/java_awt; \ + $(TEST_ROOT)$(D)jck$(D)interactives$(D)arctic_tests$(D)runTests.sh $(Q)$(TEST_ROOT)$(Q) java_awt ${SPEC} ${JDK_VERSION} ${JCK_VERSION_NUMBER} api/java_awt; \ $(TEST_STATUS) @@ -55,7 +55,7 @@ NoOptions - $(TEST_ROOT)$(D)jck$(D)interactives$(D)arctic_tests$(D)runTests.sh javax_swing ${SPEC} ${JDK_VERSION} ${JCK_VERSION_NUMBER} api/javax_swing; \ + $(TEST_ROOT)$(D)jck$(D)interactives$(D)arctic_tests$(D)runTests.sh $(Q)$(TEST_ROOT)$(Q) javax_swing ${SPEC} ${JDK_VERSION} ${JCK_VERSION_NUMBER} api/javax_swing; \ $(TEST_STATUS) From 9531da40f38610f460c5057ed11981e7acdf98c4 Mon Sep 17 00:00:00 2001 From: Andrew Leonard Date: Thu, 6 Nov 2025 10:32:39 +0000 Subject: [PATCH 2/6] Fix runtest.sh Mac minimize windows+Finder logic Signed-off-by: Andrew Leonard --- buildenv/jenkins/aqaTestPipeline.groovy | 2 ++ 1 file changed, 2 insertions(+) diff --git a/buildenv/jenkins/aqaTestPipeline.groovy b/buildenv/jenkins/aqaTestPipeline.groovy index e629986bcc..cb6388b0d4 100644 --- a/buildenv/jenkins/aqaTestPipeline.groovy +++ b/buildenv/jenkins/aqaTestPipeline.groovy @@ -350,6 +350,8 @@ def remoteTriggerTemurinJCK () { blockBuildUntilComplete: true, job: 'AQA_Test_Pipeline', parameters: MapParameters(parameters: [MapParameter(name: 'SDK_RESOURCE', value: 'customized'), + MapParameter(name: 'ADOPTOPENJDK_REPO', value: params.ADOPTOPENJDK_REPO), + MapParameter(name: 'ADOPTOPENJDK_BRANCH', value: params.ADOPTOPENJDK_BRANCH), MapParameter(name: 'TARGETS', value: TARGETS), MapParameter(name: 'JCK_GIT_REPO', value: env.JCK_GIT_REPO), MapParameter(name: 'CUSTOMIZED_SDK_URL', value: params.CUSTOMIZED_SDK_URL), From cd708c0d269e40e63f68333fece8aceb56dc1212 Mon Sep 17 00:00:00 2001 From: Andrew Leonard Date: Thu, 6 Nov 2025 16:19:40 +0000 Subject: [PATCH 3/6] Fix runtest.sh Mac minimize windows+Finder logic Signed-off-by: Andrew Leonard --- jck/interactives/arctic_tests/runTests.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/jck/interactives/arctic_tests/runTests.sh b/jck/interactives/arctic_tests/runTests.sh index ee03a79f31..76a1c623de 100755 --- a/jck/interactives/arctic_tests/runTests.sh +++ b/jck/interactives/arctic_tests/runTests.sh @@ -84,6 +84,10 @@ setupMacEnv() { echo "================================================" java -cp "${TEST_ROOT_DIR}/buildenv/jenkins/src" ListJavaFonts echo "================================================" + + echo "Killing all Preview and TextEdit apps" + killall Preview 2>/dev/null || true + killall TextEdit 2>/dev/null || true } setupWindowsEnv() { From 5a654e43dd10d7aa4aaaa6840bbd8dc28f332eff Mon Sep 17 00:00:00 2001 From: Andrew Leonard Date: Thu, 6 Nov 2025 19:13:45 +0000 Subject: [PATCH 4/6] Fix runtest.sh Mac minimize windows+Finder logic Signed-off-by: Andrew Leonard --- buildenv/jenkins/src/MinimizeMacWindows.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/buildenv/jenkins/src/MinimizeMacWindows.java b/buildenv/jenkins/src/MinimizeMacWindows.java index ddc96afd2c..823c86591e 100644 --- a/buildenv/jenkins/src/MinimizeMacWindows.java +++ b/buildenv/jenkins/src/MinimizeMacWindows.java @@ -36,7 +36,7 @@ public static void main(String... args) throws Exception { r.keyRelease(KeyEvent.VK_META); r.delay(250); - // Now open and close all Finder windows... so that the Finder is all closed and does not re-open on completion + // Now open and minimize all Finder windows... so that the Finder is minimized System.out.println("MinimizeMacWindows: Issuing Alt-Cmd-Space open 'Finder' so as to become 'front' Window"); r.keyPress(KeyEvent.VK_META); r.delay(250); @@ -51,14 +51,14 @@ public static void main(String... args) throws Exception { r.keyRelease(KeyEvent.VK_META); r.delay(250); - System.out.println("MinimizeMacWindows: Issuing Alt-Cmd-W to close 'front' 'Finder' Window"); + System.out.println("MinimizeMacWindows: Issuing Alt-Cmd-M to minimize the 'front' 'Finder' Window"); r.keyPress(KeyEvent.VK_META); r.delay(250); r.keyPress(KeyEvent.VK_ALT); r.delay(250); - r.keyPress(KeyEvent.VK_W); + r.keyPress(KeyEvent.VK_M); r.delay(250); - r.keyRelease(KeyEvent.VK_W); + r.keyRelease(KeyEvent.VK_M); r.delay(250); r.keyRelease(KeyEvent.VK_ALT); r.delay(250); From fc7e6ce1ca1f54afde8cf3daa2fc4f728382e5b7 Mon Sep 17 00:00:00 2001 From: Andrew Leonard Date: Thu, 6 Nov 2025 19:45:30 +0000 Subject: [PATCH 5/6] Fix runtest.sh Mac minimize windows+Finder logic Signed-off-by: Andrew Leonard --- buildenv/jenkins/src/MinimizeMacWindows.java | 57 ++++++++++---------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/buildenv/jenkins/src/MinimizeMacWindows.java b/buildenv/jenkins/src/MinimizeMacWindows.java index 823c86591e..b9422ee8e8 100644 --- a/buildenv/jenkins/src/MinimizeMacWindows.java +++ b/buildenv/jenkins/src/MinimizeMacWindows.java @@ -5,64 +5,65 @@ public class MinimizeMacWindows { public static void main(String... args) throws Exception { + int delay = 3000; // Minimize all windows... System.out.println("MinimizeMacWindows: Issuing Alt-Cmd-H to minimize all 'other' Windows"); Robot r = new Robot(); r.keyPress(KeyEvent.VK_META); - r.delay(250); + r.delay(delay); r.keyPress(KeyEvent.VK_ALT); - r.delay(250); + r.delay(delay); r.keyPress(KeyEvent.VK_H); - r.delay(250); + r.delay(delay); r.keyRelease(KeyEvent.VK_H); - r.delay(250); + r.delay(delay); r.keyRelease(KeyEvent.VK_ALT); - r.delay(250); + r.delay(delay); r.keyRelease(KeyEvent.VK_META); - r.delay(250); + r.delay(delay); System.out.println("MinimizeMacWindows: Issuing Alt-Cmd-M to minimize all 'front' Windows"); r.keyPress(KeyEvent.VK_META); - r.delay(250); + r.delay(delay); r.keyPress(KeyEvent.VK_ALT); - r.delay(250); + r.delay(delay); r.keyPress(KeyEvent.VK_M); - r.delay(250); + r.delay(delay); r.keyRelease(KeyEvent.VK_M); - r.delay(250); + r.delay(delay); r.keyRelease(KeyEvent.VK_ALT); - r.delay(250); + r.delay(delay); r.keyRelease(KeyEvent.VK_META); - r.delay(250); + r.delay(delay); - // Now open and minimize all Finder windows... so that the Finder is minimized + // Now open and close all Finder windows... so that the Finder is closed System.out.println("MinimizeMacWindows: Issuing Alt-Cmd-Space open 'Finder' so as to become 'front' Window"); r.keyPress(KeyEvent.VK_META); - r.delay(250); + r.delay(delay); r.keyPress(KeyEvent.VK_ALT); - r.delay(250); + r.delay(delay); r.keyPress(KeyEvent.VK_SPACE); - r.delay(250); + r.delay(delay); r.keyRelease(KeyEvent.VK_SPACE); - r.delay(250); + r.delay(delay); r.keyRelease(KeyEvent.VK_ALT); - r.delay(250); + r.delay(delay); r.keyRelease(KeyEvent.VK_META); - r.delay(250); + r.delay(delay); - System.out.println("MinimizeMacWindows: Issuing Alt-Cmd-M to minimize the 'front' 'Finder' Window"); + System.out.println("MinimizeMacWindows: Issuing Alt-Cmd-W to close the 'front' 'Finder' Window"); r.keyPress(KeyEvent.VK_META); - r.delay(250); + r.delay(delay); r.keyPress(KeyEvent.VK_ALT); - r.delay(250); - r.keyPress(KeyEvent.VK_M); - r.delay(250); - r.keyRelease(KeyEvent.VK_M); - r.delay(250); + r.delay(delay); + r.keyPress(KeyEvent.VK_W); + r.delay(delay); + r.keyRelease(KeyEvent.VK_W); + r.delay(delay); r.keyRelease(KeyEvent.VK_ALT); - r.delay(250); + r.delay(delay); r.keyRelease(KeyEvent.VK_META); - r.delay(250); + r.delay(delay); } } From a1dea5fa873bc7e503d5c0ab7c5ac402b571053c Mon Sep 17 00:00:00 2001 From: Andrew Leonard Date: Fri, 7 Nov 2025 10:41:03 +0000 Subject: [PATCH 6/6] Fix runtest.sh Mac minimize windows+Finder logic Signed-off-by: Andrew Leonard --- buildenv/jenkins/src/MinimizeMacWindows.java | 33 +------------------- jck/interactives/arctic_tests/runTests.sh | 7 +++-- 2 files changed, 6 insertions(+), 34 deletions(-) diff --git a/buildenv/jenkins/src/MinimizeMacWindows.java b/buildenv/jenkins/src/MinimizeMacWindows.java index b9422ee8e8..b97cfa1380 100644 --- a/buildenv/jenkins/src/MinimizeMacWindows.java +++ b/buildenv/jenkins/src/MinimizeMacWindows.java @@ -1,11 +1,9 @@ import java.awt.Robot; import java.awt.event.KeyEvent; -import java.awt.Desktop; -import java.io.File; public class MinimizeMacWindows { public static void main(String... args) throws Exception { - int delay = 3000; + int delay = 500; // Minimize all windows... System.out.println("MinimizeMacWindows: Issuing Alt-Cmd-H to minimize all 'other' Windows"); @@ -36,34 +34,5 @@ public static void main(String... args) throws Exception { r.delay(delay); r.keyRelease(KeyEvent.VK_META); r.delay(delay); - - // Now open and close all Finder windows... so that the Finder is closed - System.out.println("MinimizeMacWindows: Issuing Alt-Cmd-Space open 'Finder' so as to become 'front' Window"); - r.keyPress(KeyEvent.VK_META); - r.delay(delay); - r.keyPress(KeyEvent.VK_ALT); - r.delay(delay); - r.keyPress(KeyEvent.VK_SPACE); - r.delay(delay); - r.keyRelease(KeyEvent.VK_SPACE); - r.delay(delay); - r.keyRelease(KeyEvent.VK_ALT); - r.delay(delay); - r.keyRelease(KeyEvent.VK_META); - r.delay(delay); - - System.out.println("MinimizeMacWindows: Issuing Alt-Cmd-W to close the 'front' 'Finder' Window"); - r.keyPress(KeyEvent.VK_META); - r.delay(delay); - r.keyPress(KeyEvent.VK_ALT); - r.delay(delay); - r.keyPress(KeyEvent.VK_W); - r.delay(delay); - r.keyRelease(KeyEvent.VK_W); - r.delay(delay); - r.keyRelease(KeyEvent.VK_ALT); - r.delay(delay); - r.keyRelease(KeyEvent.VK_META); - r.delay(delay); } } diff --git a/jck/interactives/arctic_tests/runTests.sh b/jck/interactives/arctic_tests/runTests.sh index 76a1c623de..e5d10b8e07 100755 --- a/jck/interactives/arctic_tests/runTests.sh +++ b/jck/interactives/arctic_tests/runTests.sh @@ -86,8 +86,11 @@ setupMacEnv() { echo "================================================" echo "Killing all Preview and TextEdit apps" - killall Preview 2>/dev/null || true - killall TextEdit 2>/dev/null || true + killall Preview 2>/dev/null + killall TextEdit 2>/dev/null + + echo "Tell Finder to close every window using AppleScript" + osascript -e 'tell application "Finder" to close every window' } setupWindowsEnv() {