Skip to content

Commit ab68ae8

Browse files
Fix ext build: separate dirs per Ruby variant, -I for loading
Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 3971310 commit ab68ae8

1 file changed

Lines changed: 18 additions & 41 deletions

File tree

.github/workflows/test-ruby-gc-bug.yaml

Lines changed: 18 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -93,48 +93,25 @@ jobs:
9393
path: /tmp/*.asm
9494

9595
# ── Build io-event extension and run tests ─────────────────────────────
96-
- name: Build io-event extension (FIXED Ruby)
96+
- name: Build + test all variants
9797
run: |
98-
export PATH=$HOME/.rubies/ruby-fixed/bin:$PATH
99-
gem install sus --no-document
100-
ruby ext/io/event/extconf.rb
101-
make -C ext/io/event
102-
103-
- name: Run worker_pool test with FIXED Ruby
104-
id: test_fixed
105-
run: |
106-
export PATH=$HOME/.rubies/ruby-fixed/bin:$PATH
107-
ruby -I lib -rsus test/io/event/worker_pool.rb 2>&1 | tail -5
108-
echo "exit:$?"
109-
continue-on-error: true
110-
111-
- name: Build io-event extension (BUGGY Ruby)
112-
run: |
113-
export PATH=$HOME/.rubies/ruby-buggy/bin:$PATH
114-
gem install sus --no-document
115-
ruby ext/io/event/extconf.rb
116-
make -C ext/io/event
117-
118-
- name: Run worker_pool test with BUGGY Ruby (expect crash)
119-
id: test_buggy
120-
run: |
121-
export PATH=$HOME/.rubies/ruby-buggy/bin:$PATH
122-
(ruby -I lib -rsus test/io/event/worker_pool.rb 2>&1 | tail -5; echo "exit:$?") || true
123-
continue-on-error: true
124-
125-
- name: Build io-event extension (CASE_C Ruby)
126-
run: |
127-
export PATH=$HOME/.rubies/ruby-caseC/bin:$PATH
128-
gem install sus --no-document
129-
ruby ext/io/event/extconf.rb
130-
make -C ext/io/event
131-
132-
- name: Run worker_pool test with CASE_C Ruby (does O0 fix the crash?)
133-
id: test_caseC
134-
run: |
135-
export PATH=$HOME/.rubies/ruby-caseC/bin:$PATH
136-
(ruby -I lib -rsus test/io/event/worker_pool.rb 2>&1 | tail -5; echo "exit:$?") || true
137-
continue-on-error: true
98+
for variant in fixed buggy caseC; do
99+
echo "=== Building io-event for ruby-${variant} ==="
100+
export PATH=$HOME/.rubies/ruby-${variant}/bin:$PATH
101+
gem install sus --no-document -q
102+
103+
mkdir -p /tmp/ext-${variant}
104+
cp -r ext/* /tmp/ext-${variant}/
105+
cd /tmp/ext-${variant}
106+
ruby $GITHUB_WORKSPACE/ext/extconf.rb
107+
make -j$(nproc) 2>&1 | tail -3
108+
cd $GITHUB_WORKSPACE
109+
110+
echo "=== Running worker_pool test with ruby-${variant} ==="
111+
(timeout 60 ruby -I lib -I /tmp/ext-${variant} -rsus \
112+
test/io/event/worker_pool.rb 2>&1 | tail -10; echo "exit_${variant}:$?") || true
113+
echo "--- end ${variant} ---"
114+
done
138115
139116
- name: Summary
140117
if: always()

0 commit comments

Comments
 (0)