diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 4c793a4..14e005d 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -31,15 +31,18 @@ jobs: - jdkconf: JDK 17 jdkver: "17" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + with: + submodules: true + - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: ${{ matrix.jdkver || env.jdkver_latest }} - name: Run run: | - export OJDK_VERSION_NUMBER=${{ matrix.jdkver || env.jdkver_latest }} BOOTJDK_DIR=~/bootjdk JREJDK="jdk" + export OJDK_VERSION_NUMBER=${{ matrix.jdkver || env.jdkver_latest }} JREJDK="jdk" JAVA_TO_TEST="${JAVA_HOME}/bin/java" TEST_JDK_HOME="${JAVA_HOME}" ./testHeadlessComponents.sh - name: Pack results if: ${{ always() }} @@ -47,7 +50,7 @@ jobs: tar -cf "results-linux-jdk${{ matrix.jdkver || env.jdkver_latest }}.tar.gz" $WORKSPACE/testHeadlessComponent.log $WORKSPACE/testHeadlessComponent.jtr.xml - name: Upload results if: ${{ always() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: path: "results-linux-jdk${{ matrix.jdkver || env.jdkver_latest }}.tar.gz" continue-on-error: true @@ -71,15 +74,18 @@ jobs: - jdkconf: JDK 17 jdkver: "17" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + with: + submodules: true + - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: ${{ matrix.jdkver || env.jdkver_latest }} - name: Run run: | - export OJDK_VERSION_NUMBER=${{ matrix.jdkver || env.jdkver_latest }} BOOTJDK_DIR=~/bootjdk JREJDK="jre" + export OJDK_VERSION_NUMBER=${{ matrix.jdkver || env.jdkver_latest }} JREJDK="jre" JAVA_TO_TEST="${JAVA_HOME}/bin/java" TEST_JDK_HOME="${JAVA_HOME}" ./testHeadlessComponents.sh - name: Pack results if: ${{ always() }} @@ -87,7 +93,7 @@ jobs: tar -cf "results-linux-jre${{ matrix.jdkver || env.jdkver_latest }}.tar.gz" $WORKSPACE/testHeadlessComponent.log $WORKSPACE/testHeadlessComponent.jtr.xml - name: Upload results if: ${{ always() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: path: "results-linux-jre${{ matrix.jdkver || env.jdkver_latest }}.tar.gz" continue-on-error: true @@ -111,22 +117,25 @@ jobs: - jdkconf: JDK 17 jdkver: "17" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + with: + submodules: true + - uses: msys2/setup-msys2@v2 with: update: true install: wget tar git unzip - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: ${{ matrix.jdkver || env.jdkver_latest }} - name: Run shell: msys2 {0} run: | - export OJDK_VERSION_NUMBER=${{ matrix.jdkver || env.jdkver_latest }} BOOTJDK_DIR=~/bootjdk JREJDK="jre" + export OJDK_VERSION_NUMBER=${{ matrix.jdkver || env.jdkver_latest }} JREJDK="jre" JAVA_TO_TEST="${JAVA_HOME}/bin/java" TEST_JDK_HOME="${JAVA_HOME}" ./testHeadlessComponents.sh - name: Pack results if: ${{ always() }} @@ -135,7 +144,7 @@ jobs: tar -cf "results-windows-jre${{ matrix.jdkver || env.jdkver_latest }}.tar.gz" $WORKSPACE/testHeadlessComponent.log $WORKSPACE/testHeadlessComponent.jtr.xml - name: Upload results if: ${{ always() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: path: "results-windows-jre${{ matrix.jdkver || env.jdkver_latest }}.tar.gz" continue-on-error: true @@ -159,22 +168,25 @@ jobs: - jdkconf: JDK 17 jdkver: "17" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + with: + submodules: true + - uses: msys2/setup-msys2@v2 with: update: true install: wget tar git unzip - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: ${{ matrix.jdkver || env.jdkver_latest }} - name: Run shell: msys2 {0} run: | - export OJDK_VERSION_NUMBER=${{ matrix.jdkver || env.jdkver_latest }} BOOTJDK_DIR=~/bootjdk JREJDK="jre" + export OJDK_VERSION_NUMBER=${{ matrix.jdkver || env.jdkver_latest }} JREJDK="jre" JAVA_TO_TEST="${JAVA_HOME}/bin/java" TEST_JDK_HOME="${JAVA_HOME}" ./testHeadlessComponents.sh - name: Pack results if: ${{ always() }} @@ -183,7 +195,7 @@ jobs: tar -cf "results-windows-jdk${{ matrix.jdkver || env.jdkver_latest }}.tar.gz" $WORKSPACE/testHeadlessComponent.log $WORKSPACE/testHeadlessComponent.jtr.xml - name: Upload results if: ${{ always() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: path: "results-windows-jdk${{ matrix.jdkver || env.jdkver_latest }}.tar.gz" continue-on-error: true @@ -200,38 +212,33 @@ jobs: - JDK 17 - JDK Latest include: - - jdkconf: JDK 8 - jdkver: "8" - jdkconf: JDK 11 jdkver: "11" - jdkconf: JDK 17 jdkver: "17" steps: - - uses: actions/checkout@v3 - - name: Install Homebrew + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + + - name: Install Bash with brew run: | - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - echo 'eval $(/usr/local/bin/brew shellenv)' >> $HOME/.zprofile - eval $(/usr/local/bin/brew shellenv) - - - name: Install Bash with Homebrew - run: brew install bash - - - name: Update Shell Configuration - run: echo 'export PATH="/usr/local/bin:$PATH"' >> $HOME/.zprofile && exec -l $SHELL - - - name: Verify Bash Version - run: /usr/local/bin/bash --version + brew install bash + echo "/usr/local/bin/bash" >> $GITHUB_PATH + + - name: Check Bash version + run: bash --version - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: ${{ matrix.jdkver || env.jdkver_latest }} - name: Run run: | - export OJDK_VERSION_NUMBER=${{ matrix.jdkver || env.jdkver_latest }} BOOTJDK_DIR=~/bootjdk JREJDK="jre" WORKSPACE=/Users/runner/workspace - /usr/local/bin/bash testHeadlessComponents.sh + export OJDK_VERSION_NUMBER=${{ matrix.jdkver || env.jdkver_latest }} JREJDK="jre" WORKSPACE=/Users/runner/workspace JAVA_TO_TEST="${JAVA_HOME}/bin/java" TEST_JDK_HOME="${JAVA_HOME}" + bash testHeadlessComponents.sh - name: Pack results if: ${{ always() }} run: | @@ -239,7 +246,7 @@ jobs: tar -cf "results-macos-jre${{ matrix.jdkver || env.jdkver_latest }}.tar.gz" $WORKSPACE/testHeadlessComponent.log $WORKSPACE/testHeadlessComponent.jtr.xml - name: Upload results if: ${{ always() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: path: "results-macos-jre${{ matrix.jdkver || env.jdkver_latest }}.tar.gz" continue-on-error: true @@ -258,38 +265,33 @@ jobs: - JDK 17 - JDK Latest include: - - jdkconf: JDK 8 - jdkver: "8" - jdkconf: JDK 11 jdkver: "11" - jdkconf: JDK 17 jdkver: "17" steps: - - uses: actions/checkout@v3 - - name: Install Homebrew + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + + - name: Install Bash with brew run: | - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - echo 'eval $(/usr/local/bin/brew shellenv)' >> $HOME/.zprofile - eval $(/usr/local/bin/brew shellenv) - - - name: Install Bash with Homebrew - run: brew install bash - - - name: Update Shell Configuration - run: echo 'export PATH="/usr/local/bin:$PATH"' >> $HOME/.zprofile && exec -l $SHELL - - - name: Verify Bash Version - run: /usr/local/bin/bash --version + brew install bash + echo "/usr/local/bin/bash" >> $GITHUB_PATH + - name: Check Bash version + run: bash --version + - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: ${{ matrix.jdkver || env.jdkver_latest }} - name: Run run: | - export OJDK_VERSION_NUMBER=${{ matrix.jdkver || env.jdkver_latest }} BOOTJDK_DIR=~/bootjdk JREJDK="jdk" WORKSPACE=/Users/runner/workspace - /usr/local/bin/bash testHeadlessComponents.sh + export OJDK_VERSION_NUMBER=${{ matrix.jdkver || env.jdkver_latest }} JREJDK="jdk" WORKSPACE=/Users/runner/workspace JAVA_TO_TEST="${JAVA_HOME}/bin/java" TEST_JDK_HOME="${JAVA_HOME}" + bash testHeadlessComponents.sh - name: Pack results if: ${{ always() }} run: | @@ -297,7 +299,7 @@ jobs: tar -cf "results-macos-jdk${{ matrix.jdkver || env.jdkver_latest }}.tar.gz" $WORKSPACE/testHeadlessComponent.log $WORKSPACE/testHeadlessComponent.jtr.xml - name: Upload results if: ${{ always() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: path: "results-macos-jdk${{ matrix.jdkver || env.jdkver_latest }}.tar.gz" continue-on-error: true diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..257ec3f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "RFaT"] + path = RFaT + url = https://github.com/rh-openjdk/run-folder-as-tests.git diff --git a/RFaT b/RFaT new file mode 160000 index 0000000..80b2151 --- /dev/null +++ b/RFaT @@ -0,0 +1 @@ +Subproject commit 80b2151eec52bd84ba18744f20304f64577d5414 diff --git a/testHeadlessComponents.sh b/testHeadlessComponents.sh index efd47b6..db260d1 100755 --- a/testHeadlessComponents.sh +++ b/testHeadlessComponents.sh @@ -18,70 +18,6 @@ while [ -h "$SCRIPT_SOURCE" ]; do # resolve $SOURCE until the file is no longer done readonly SCRIPT_DIR="$( cd -P "$( dirname "$SCRIPT_SOURCE" )" && pwd )" -# detecting platform -platform="$(uname)" -if [ "$platform" == "Linux" ]; then - # Linux-specific code - OS="linux" - JAVA=$JAVA_HOME/bin/java -elif [ "$platform" == "Darwin" ]; then - # Mac-specific code - OS="mac" - JAVA=$JAVA_HOME/bin/java - #JAVA=java -elif [ "${platform#"MINGW64_NT"}" != "$platform" ]; then - # Windows (MinGW) specific code - OS="windows" - JAVA=$JAVA_HOME/bin/java -elif [ "${platform#"CYGWIN_NT"}" != "$platform" ]; then - # Windows (CygWin) specific code - OS="windows" - JAVA=$JAVA_HOME/bin/java -else - echo "Unsupported platform" - exit 1 -fi - -function unwrap_file_to_location() { - if [ "$OS" == "mac" -o "$OS" == "linux" ]; then - tar --strip-components=1 -xf $1 -C $2 - elif [ "$OS" == "windows" ]; then - unzip $1 -d $2 - # Get the name of the extracted folder (assuming only one folder is present) - ls $2 - extracted_folder_name=$(ls $2) - - # Ensure only one folder is found - if [ "$(ls $2 | wc -l)" -eq 1 ]; then - # Move the contents to the desired destination without creating a new directory - mv "$2/$extracted_folder_name"/* "$2" - else - echo "Error: More than one directory found in $2." - fi - fi -} - -function installAlternativeJDK() { - ARCH=$( uname -m ) - if [ "x$BOOTJDK_DIR" == "x" ]; then - BOOTJDK_DIR=~/bootjdk - fi - if [ "x$BOOTJDK_ARCHIVE_DIR" == "x" ]; then - BOOTJDK_ARCHIVE_DIR=$WORKSPACE/bootjdkarchive - mkdir -p $BOOTJDK_ARCHIVE_DIR - cd $BOOTJDK_ARCHIVE_DIR - curl -OLJks "https://api.adoptopenjdk.net/v3/binary/latest/$OJDK_VERSION_NUMBER/ga/$OS/$ARCH/jdk/hotspot/normal/adoptopenjdk" - rm -rf ${BOOTJDK_DIR} - mkdir -p ${BOOTJDK_DIR} - unwrap_file_to_location ${BOOTJDK_ARCHIVE_DIR}/* ${BOOTJDK_DIR} - else - rm -rf ${BOOTJDK_DIR} - mkdir -p ${BOOTJDK_DIR} - ls ${BOOTJDK_ARCHIVE_DIR} - unwrap_file_to_location ${BOOTJDK_ARCHIVE_DIR}/*${ARCH}.tarxz ${BOOTJDK_DIR} - fi -} - function run_java_with_headless { COMPONENTS_TO_TEST=$2 $JAVA -cp $cp -Djava.awt.headless=$1 MainRunner -test=$COMPONENTS_TO_TEST -jreSdkHeadless=$JREJDK -displayValue=$DISPLAY @@ -143,13 +79,7 @@ PASSED=0 IGNORED=0 BODY="" -if [ "x$RFaT" == "x" ]; then - readonly RFaT=`mktemp -d` - git clone https://github.com/rh-openjdk/run-folder-as-tests.git ${RFaT} 1>&2 - ls -l ${RFaT} 1>&2 -fi - -source ${RFaT}/jtreg-shell-xml.sh +source $SCRIPT_DIR/RFaT/jtreg-shell-xml.sh if [[ -z "${WORKSPACE}" ]]; then WORKSPACE=~/workspace @@ -172,21 +102,15 @@ popd LOGFILE=$TMPRESULTS/testHeadlessComponent.log -installAlternativeJDK +#TEST_JDK_HOME always contains link to the home directory of the available SDK -JAVAC_BINARY="${BOOTJDK_DIR}/bin/javac" -if [ "$OS" == "mac" ]; then - JAVAC_BINARY="${BOOTJDK_DIR}/Contents/Home/bin/javac" -fi +JAVAC_BINARY="${TEST_JDK_HOME}/bin/javac" -#use bootjdk javac -#other classes depend on this one, so we might as well just compile the main class -cp -r $SCRIPT_DIR/testHeadlessComponents $WORKSPACE -ls $WORKSPACE -pushd $WORKSPACE/testHeadlessComponents/jreTestingSwingComponents/src +#JAVA_TO_TEST can contain either link to SDK or JRE java executable, however always the java that we want to test with +JAVA=$JAVA_TO_TEST -cp=`mktemp -d` -$JAVAC_BINARY `find . -type f -name "*.java"` -d $cp +$JAVAC_BINARY `find $SCRIPT_DIR -type f -name "*.java"` +cp="$SCRIPT_DIR/testHeadlessComponents/jreTestingSwingComponents/src" declare -A resArray set +e