Skip to content

Commit f06c9ad

Browse files
dsarnoclaude
andcommitted
ci(forensic): use bash on Windows runner (chickensoft sets up Git Bash)
PowerShell *> redirect against the godot wrapper script swallowed output, leaving the Windows job INDETERMINATE on the previous run. The existing godot-tests-windows job in ci.yml already uses shell: bash on windows-latest with the same chickensoft setup, so unifying the synthetic to a single bash step works on all three OSes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent a66347c commit f06c9ad

1 file changed

Lines changed: 13 additions & 44 deletions

File tree

Lines changed: 13 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
name: Forensic / issue-245 dictionary hot-reload
22

3-
# Manual one-shot to verify the macOS-only "newly-injected typed Dictionary
4-
# field stays NIL after hot-reload" bug across Linux, macOS, and Windows
5-
# Godot 4.6.2-stable runners. Triggered via workflow_dispatch only.
3+
# Manual one-shot to verify the "newly-introduced typed Dictionary field
4+
# stays NIL after hot-reload" bug across Linux, macOS, and Windows Godot
5+
# 4.6.2-stable runners. Initial macOS run from a Mac confirmed the crash;
6+
# this workflow checks Linux + Windows + a second macOS for completeness.
67

78
on:
89
workflow_dispatch:
@@ -30,62 +31,30 @@ jobs:
3031
version: 4.6.2
3132
use-dotnet: false
3233

33-
- name: Run synthetic dictionary-injection test (Linux/macOS)
34-
if: matrix.os != 'windows-latest'
34+
- name: Run synthetic dictionary-injection test
3535
shell: bash
3636
run: |
3737
set +e
3838
godot --headless --editor \
3939
--path docs/forensic/issue-245/repro-dictinject \
40-
--quit-after 1500 > /tmp/synthetic.log 2>&1
40+
--quit-after 1500 > synthetic.log 2>&1
4141
rc=$?
4242
echo "::group::Full Godot output"
43-
cat /tmp/synthetic.log
43+
cat synthetic.log
4444
echo "::endgroup::"
4545
echo "exit code: $rc"
4646
echo
4747
echo "===== Verdict ====="
48-
if grep -q "post-reload property names" /tmp/synthetic.log; then
49-
grep "post-reload property names" /tmp/synthetic.log
48+
if grep -q "post-reload property names" synthetic.log; then
49+
grep "post-reload property names" synthetic.log
5050
fi
51-
if grep -q "inst.get('injected_dict')" /tmp/synthetic.log; then
52-
grep "inst.get('injected_dict')" /tmp/synthetic.log
51+
if grep -q "inst.get('injected_dict')" synthetic.log; then
52+
grep "inst.get('injected_dict')" synthetic.log
5353
fi
54-
if grep -q "Program crashed with signal" /tmp/synthetic.log; then
54+
if grep -q "Program crashed with signal" synthetic.log; then
5555
echo "RESULT: CRASH (Dictionary::keys on null _p)"
56-
elif grep -q "DONE — no SIGABRT" /tmp/synthetic.log; then
56+
elif grep -q "DONE — no SIGABRT" synthetic.log; then
5757
echo "RESULT: OK (no crash, hot-reload initialized field correctly)"
5858
else
5959
echo "RESULT: INDETERMINATE (test did not complete normally; rc=$rc)"
6060
fi
61-
62-
- name: Run synthetic dictionary-injection test (Windows)
63-
if: matrix.os == 'windows-latest'
64-
shell: pwsh
65-
run: |
66-
$log = "$env:TEMP\synthetic.log"
67-
# `godot.exe` is on PATH after setup-godot
68-
& godot --headless --editor `
69-
--path docs/forensic/issue-245/repro-dictinject `
70-
--quit-after 1500 *> $log
71-
$rc = $LASTEXITCODE
72-
Write-Host "::group::Full Godot output"
73-
Get-Content $log
74-
Write-Host "::endgroup::"
75-
Write-Host "exit code: $rc"
76-
Write-Host ""
77-
Write-Host "===== Verdict ====="
78-
$content = Get-Content $log -Raw
79-
if ($content -match "post-reload property names: .*") {
80-
Write-Host $matches[0]
81-
}
82-
if ($content -match "inst\.get\('injected_dict'\): .*") {
83-
Write-Host $matches[0]
84-
}
85-
if ($content -match "Program crashed with signal") {
86-
Write-Host "RESULT: CRASH (Dictionary::keys on null _p)"
87-
} elseif ($content -match "DONE — no SIGABRT") {
88-
Write-Host "RESULT: OK (no crash, hot-reload initialized field correctly)"
89-
} else {
90-
Write-Host "RESULT: INDETERMINATE (test did not complete normally; rc=$rc)"
91-
}

0 commit comments

Comments
 (0)