Skip to content

Commit a9e84a0

Browse files
committed
Run compact stress tests
1 parent 474a223 commit a9e84a0

1 file changed

Lines changed: 97 additions & 76 deletions

File tree

.github/workflows/zjit-macos.yml

Lines changed: 97 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,23 @@ jobs:
2222
fail-fast: false
2323
matrix:
2424
include:
25-
- test_task: 'check'
25+
- test_task: 'test-all'
2626
run_opts: '--zjit-call-threshold=1'
2727
specopts: '-T --zjit-call-threshold=1'
2828
configure: '--enable-zjit=dev'
2929

30-
- test_task: 'check'
30+
- test_task: 'test-all'
3131
run_opts: '--zjit-disable-hir-opt --zjit-call-threshold=1'
3232
specopts: '-T --zjit-disable-hir-opt -T --zjit-call-threshold=1'
3333
configure: '--enable-zjit=dev'
3434

35-
- test_task: 'zjit-check' # zjit-test + quick feedback of test_zjit.rb
36-
configure: '--enable-yjit=dev --enable-zjit'
37-
rust_version: "1.85.0"
35+
#- test_task: 'zjit-check' # zjit-test + quick feedback of test_zjit.rb
36+
# configure: '--enable-yjit=dev --enable-zjit'
37+
# rust_version: "1.85.0"
3838

39-
- test_task: 'ruby'
40-
hint: 'combo build test'
41-
configure: '--enable-yjit --enable-zjit'
39+
#- test_task: 'ruby'
40+
# hint: 'combo build test'
41+
# configure: '--enable-yjit --enable-zjit'
4242

4343
env:
4444
GITPULLOPTIONS: --no-tags origin ${{ github.ref }}
@@ -109,6 +109,27 @@ jobs:
109109
continue-on-error: true
110110
timeout-minutes: 3
111111

112+
- name: Run compact_stress tests
113+
run: |
114+
test -n "${LAUNCHABLE_STDOUT}" && exec 1> >(tee "${LAUNCHABLE_STDOUT}")
115+
test -n "${LAUNCHABLE_STDERR}" && exec 2> >(tee "${LAUNCHABLE_STDERR}")
116+
117+
set -x
118+
make -s test-all TESTS="../src/test/ruby/test_regexp.rb ../src/test/ruby/test_enumerator.rb -n /compact_stress/ --repeat-count=10" \
119+
RUN_OPTS="$RUN_OPTS" \
120+
SPECOPTS="$SPECOPTS" \
121+
TESTOPTS="$TESTOPTS"
122+
timeout-minutes: 60
123+
env:
124+
RUBY_TESTOPTS: '-q --tty=no'
125+
EXCLUDES: '../src/test/.excludes-zjit'
126+
TEST_BUNDLED_GEMS_ALLOW_FAILURES: ''
127+
SYNTAX_SUGGEST_TIMEOUT: '30'
128+
PRECHECK_BUNDLED_GEMS: 'no'
129+
LAUNCHABLE_STDOUT: ${{ steps.launchable.outputs.stdout_report_path }}
130+
LAUNCHABLE_STDERR: ${{ steps.launchable.outputs.stderr_report_path }}
131+
continue-on-error: ${{ matrix.continue-on-test_task || false }}
132+
112133
- name: make ${{ matrix.test_task }}
113134
run: |
114135
test -n "${LAUNCHABLE_STDOUT}" && exec 1> >(tee "${LAUNCHABLE_STDOUT}")
@@ -143,76 +164,76 @@ jobs:
143164
SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
144165
if: ${{ failure() }}
145166

146-
result:
147-
if: ${{ always() }}
148-
name: ${{ github.workflow }} result
149-
runs-on: ubuntu-latest
150-
needs: [make]
151-
steps:
152-
- run: exit 1
153-
working-directory:
154-
if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}
167+
#result:
168+
# if: ${{ always() }}
169+
# name: ${{ github.workflow }} result
170+
# runs-on: ubuntu-latest
171+
# needs: [make]
172+
# steps:
173+
# - run: exit 1
174+
# working-directory:
175+
# if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}
155176

156177
# Separated from `make` job to avoid making it a required status check for now
157-
ruby-bench:
158-
strategy:
159-
matrix:
160-
include:
161-
# Test --call-threshold=2 with 2 iterations in total
162-
- ruby_opts: '--zjit-call-threshold=2'
163-
bench_opts: '--warmup=1 --bench=1 --excludes=shipit'
164-
configure: '--enable-zjit=dev_nodebug' # --enable-zjit=dev is too slow
165-
166-
runs-on: macos-14
167-
168-
if: >-
169-
${{!(false
170-
|| contains(github.event.head_commit.message, '[DOC]')
171-
|| contains(github.event.pull_request.title, '[DOC]')
172-
|| contains(github.event.pull_request.labels.*.name, 'Documentation')
173-
|| (github.event.pull_request.user.login == 'dependabot[bot]' && !startsWith(github.head_ref, 'dependabot/cargo'))
174-
)}}
175-
176-
steps:
177-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
178-
with:
179-
persist-credentials: false
180-
181-
- uses: ./.github/actions/setup/macos
182-
183-
- uses: ./.github/actions/setup/directories
184-
with:
185-
srcdir: src
186-
builddir: build
187-
makeup: true
188-
189-
- name: Run configure
190-
run: ../src/configure -C --disable-install-doc --prefix="$(pwd)/install" ${{ matrix.configure }}
191-
192-
- run: make install
193-
194-
# setup/directories set MAKEFLAGS=-j4 for macOS, which randomly fails sqlite3.gem builds
195-
- name: Unset MAKEFLAGS
196-
run: echo "MAKEFLAGS=" >> "$GITHUB_ENV"
197-
198-
- name: Checkout ruby-bench
199-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
200-
with:
201-
persist-credentials: false
202-
repository: ruby/ruby-bench
203-
path: ruby-bench
204-
205-
# If you want to skip failing benchmark, consider using `--excludes`.
206-
# e.g. `bench_opts: '--warmup=1 --bench=1 --excludes=railsbench,lobsters'`
207-
- name: Run ruby-bench
208-
run: ruby run_benchmarks.rb -e "zjit::../build/install/bin/ruby ${{ matrix.ruby_opts }}" ${{ matrix.bench_opts }}
209-
working-directory: ruby-bench
210-
211-
- uses: ./.github/actions/slack
212-
with:
213-
label: ruby-bench ${{ matrix.bench_opts }} ${{ matrix.ruby_opts }}
214-
SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
215-
if: ${{ failure() }}
178+
#ruby-bench:
179+
# strategy:
180+
# matrix:
181+
# include:
182+
# # Test --call-threshold=2 with 2 iterations in total
183+
# - ruby_opts: '--zjit-call-threshold=2'
184+
# bench_opts: '--warmup=1 --bench=1 --excludes=shipit'
185+
# configure: '--enable-zjit=dev_nodebug' # --enable-zjit=dev is too slow
186+
187+
# runs-on: macos-14
188+
189+
# if: >-
190+
# ${{!(false
191+
# || contains(github.event.head_commit.message, '[DOC]')
192+
# || contains(github.event.pull_request.title, '[DOC]')
193+
# || contains(github.event.pull_request.labels.*.name, 'Documentation')
194+
# || (github.event.pull_request.user.login == 'dependabot[bot]' && !startsWith(github.head_ref, 'dependabot/cargo'))
195+
# )}}
196+
197+
# steps:
198+
# - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
199+
# with:
200+
# persist-credentials: false
201+
202+
# - uses: ./.github/actions/setup/macos
203+
204+
# - uses: ./.github/actions/setup/directories
205+
# with:
206+
# srcdir: src
207+
# builddir: build
208+
# makeup: true
209+
210+
# - name: Run configure
211+
# run: ../src/configure -C --disable-install-doc --prefix="$(pwd)/install" ${{ matrix.configure }}
212+
213+
# - run: make install
214+
215+
# # setup/directories set MAKEFLAGS=-j4 for macOS, which randomly fails sqlite3.gem builds
216+
# - name: Unset MAKEFLAGS
217+
# run: echo "MAKEFLAGS=" >> "$GITHUB_ENV"
218+
219+
# - name: Checkout ruby-bench
220+
# uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
221+
# with:
222+
# persist-credentials: false
223+
# repository: ruby/ruby-bench
224+
# path: ruby-bench
225+
226+
# # If you want to skip failing benchmark, consider using `--excludes`.
227+
# # e.g. `bench_opts: '--warmup=1 --bench=1 --excludes=railsbench,lobsters'`
228+
# - name: Run ruby-bench
229+
# run: ruby run_benchmarks.rb -e "zjit::../build/install/bin/ruby ${{ matrix.ruby_opts }}" ${{ matrix.bench_opts }}
230+
# working-directory: ruby-bench
231+
232+
# - uses: ./.github/actions/slack
233+
# with:
234+
# label: ruby-bench ${{ matrix.bench_opts }} ${{ matrix.ruby_opts }}
235+
# SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
236+
# if: ${{ failure() }}
216237

217238
defaults:
218239
run:

0 commit comments

Comments
 (0)