From 2115e2383aad125f81866810a3b7cd7199cde34b Mon Sep 17 00:00:00 2001 From: Gang Zhao Date: Wed, 26 Feb 2025 23:03:57 -0800 Subject: [PATCH] Add more test jobs in Github Action (#1632) Summary: Pull Request resolved: https://github.com/facebook/hermes/pull/1632 Differential Revision: D70209452 --- .github/workflows/build.yml | 106 ++++++++++++++++++++++- lib/Platform/Intl/impl_icu/IntlUtils.cpp | 2 + 2 files changed, 105 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a7b1d07ef73..70fe9eae129 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -38,6 +38,29 @@ jobs: name: macos-hermes path: output + test-macos-test262: + runs-on: macos-latest + steps: + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: 15.4 + - uses: actions/checkout@v4.1.0 + with: + path: hermes + - name: Setup dependencies + run: |- + brew install cmake ninja + # Check out test262 at a pinned revision to reduce flakiness + git clone https://github.com/tc39/test262 + cd test262 + git checkout 62626e083bd506124aac6c799464d76c2c42851b + - name: Run Hermes tests and test262 with Intl + run: |- + cmake -S hermes -B build -GNinja -DHERMES_ENABLE_INTL=ON -DCMAKE_BUILD_TYPE=Debug + cmake --build ./build + cmake --build ./build --target check-hermes + python3 ./utils/test_runner.py --test-intl test262/test -b build/bin + test-linux: runs-on: ubuntu-20.04 steps: @@ -45,11 +68,88 @@ jobs: run: |- sudo apt update sudo apt install -y git openssh-client cmake build-essential \ - libicu-dev zip python3 + libicu-dev zip python3 ninja-build + - uses: actions/checkout@v4.1.0 + with: + path: hermes + - name: Run Hermes regression tests + run: |- + cmake -S hermes -GNinja -B build -DCMAKE_BUILD_TYPE=Debug + cmake --build build --target check-hermes all + + test-linux-arm64: + runs-on: ubuntu-24.04-arm + steps: + - name: Install dependencies + run: |- + sudo apt update + sudo apt install -y git openssh-client cmake build-essential \ + libicu-dev zip python3 ninja-build - uses: actions/checkout@v4.1.0 with: path: hermes - name: Run Hermes regression tests run: |- - cmake -S hermes -B build -DCMAKE_BUILD_TYPE=Debug - cmake --build build --target check-hermes all -j 4 + cmake -S hermes -GNinja -B build -DCMAKE_BUILD_TYPE=Debug + cmake --build build --target check-hermes all + - name: Run Hermes regression tests (JIT enabled) + run: |- + cmake -S hermes -GNinja -B build -DCMAKE_BUILD_TYPE=Debug -DHERMESVM_ALLOW_JIT=2 + export LIT_HERMES_EXTRA_FLAGS="-Xforce-jit" + cmake --build build --target check-hermes all + + test-linux-test262: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4.1.0 + with: + path: hermes + - name: Setup dependencies + run: |- + sudo apt update + sudo apt install -y git openssh-client cmake build-essential \ + libreadline-dev libicu-dev zip python3 ninja-build + # Check out test262 at a pinned revision to reduce flakiness + git clone https://github.com/tc39/test262 + cd test262 + git checkout 62626e083bd506124aac6c799464d76c2c42851b + - name: Run test262 with Intl + run: |- + cmake -S hermes -GNinja -B build -DHERMES_ENABLE_INTL=ON -DCMAKE_CXX_FLAGS=-O2 -DCMAKE_C_FLAGS=-O2 -DCMAKE_BUILD_TYPE=Debug + cmake --build ./build + # Not running Hermes test until more of Intl is built out: + # toLocaleLowerCase and toLocaleUpperCase are the two main ones. + # cmake --build ./build --target check-hermes + python3 hermes/utils/test_runner.py --test-intl test262/test -b build/bin + + test-linux-arm-test262: + runs-on: ubuntu-24.04-arm + steps: + - uses: actions/checkout@v4.1.0 + with: + path: hermes + - name: Setup dependencies + run: |- + sudo apt update + sudo apt install -y git openssh-client cmake build-essential \ + libreadline-dev libicu-dev zip python3 ninja-build + # Check out test262 at a pinned revision to reduce flakiness + git clone https://github.com/tc39/test262 + cd test262 + git checkout 62626e083bd506124aac6c799464d76c2c42851b + - name: Run test262 with Intl + run: |- + cmake -S hermes -GNinja -B build -DHERMES_ENABLE_INTL=ON -DCMAKE_CXX_FLAGS=-O2 -DCMAKE_C_FLAGS=-O2 -DCMAKE_BUILD_TYPE=Debug + cmake --build ./build + # Not running Hermes test until more of Intl is built out: + # toLocaleLowerCase and toLocaleUpperCase are the two main ones. + # cmake --build ./build --target check-hermes + python3 hermes/utils/test_runner.py --test-intl test262/test -b build/bin + - name: Run test262 with Intl (JIT enabled) + run: |- + cmake -S hermes -GNinja -B build -DHERMES_ENABLE_INTL=ON -DCMAKE_CXX_FLAGS=-O2 -DCMAKE_C_FLAGS=-O2 -DHERMESVM_ALLOW_JIT=2 -DCMAKE_BUILD_TYPE=Debug + cmake --build ./build + # Not running Hermes test until more of Intl is built out: + # toLocaleLowerCase and toLocaleUpperCase are the two main ones. + # cmake --build ./build --target check-hermes + python3 hermes/utils/test_runner.py --test-intl test262/test -b build/bin --vm-args="-Xforce-jit" diff --git a/lib/Platform/Intl/impl_icu/IntlUtils.cpp b/lib/Platform/Intl/impl_icu/IntlUtils.cpp index 1eb5259f9df..889f0bd367e 100644 --- a/lib/Platform/Intl/impl_icu/IntlUtils.cpp +++ b/lib/Platform/Intl/impl_icu/IntlUtils.cpp @@ -7,6 +7,8 @@ #include "IntlUtils.h" +#include + namespace hermes { namespace platform_intl { namespace impl_icu {