Skip to content

Commit 1d34101

Browse files
committed
Re-skip Translation_Tests; add isolation probes for testReconstructTable
Bisect: testReconstructTable hangs for the full 10-min budget once Translation_Tests run before it. With Translation_Tests skipped (prior state at a618745), reconstructor tests complete in ~0.3 s. - Skip WP_SQLite_Driver_Translation_Tests in the main run to unblock the workflow. Lose 56 tests temporarily. - Add two probes: 1) testReconstructTable in isolation (expect pass). 2) Translation_Tests + testReconstructTable (expect hang, confirms). The probes give us a signal for what's actually corrupting Turso state so we can target the fix instead of guessing.
1 parent 4c4f491 commit 1d34101

1 file changed

Lines changed: 40 additions & 11 deletions

File tree

.github/workflows/phpunit-tests-turso.yml

Lines changed: 40 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -896,6 +896,37 @@ jobs:
896896
-ex "bt 40" \
897897
--args "$(command -v php)" || true
898898
899+
- name: Probe testReconstructTable in isolation
900+
continue-on-error: true
901+
env:
902+
LD_PRELOAD: ${{ steps.preload.outputs.value }}
903+
working-directory: packages/mysql-on-sqlite
904+
# Run just this one test by itself. Previous runs show it hangs at
905+
# ~10 min when executed after the other tests. If it passes here in
906+
# ~1 s, the hang is caused by accumulated process state from the
907+
# preceding tests (likely leaked FuncSlot p_app refs).
908+
run: |
909+
set +e
910+
timeout --kill-after=10 60 \
911+
php ./vendor/bin/phpunit -c ./phpunit.xml.dist \
912+
--filter '^WP_SQLite_Information_Schema_Reconstructor_Tests::testReconstructTable$'
913+
echo "testReconstructTable isolated exit: $?"
914+
915+
- name: Probe testReconstructTable after Translation_Tests
916+
continue-on-error: true
917+
env:
918+
LD_PRELOAD: ${{ steps.preload.outputs.value }}
919+
working-directory: packages/mysql-on-sqlite
920+
# Run Translation_Tests then testReconstructTable in one process.
921+
# If this hangs, Translation_Tests specifically are leaving Turso in
922+
# a bad state. If it passes, the trigger is something earlier.
923+
run: |
924+
set +e
925+
timeout --kill-after=10 180 \
926+
php ./vendor/bin/phpunit -c ./phpunit.xml.dist \
927+
--filter '^(WP_SQLite_Driver_Translation_Tests|WP_SQLite_Information_Schema_Reconstructor_Tests::testReconstructTable)'
928+
echo "Translation+reconstruct exit: $?"
929+
899930
- name: Run PHPUnit tests against Turso DB
900931
env:
901932
LD_PRELOAD: ${{ steps.preload.outputs.value }}
@@ -908,17 +939,15 @@ jobs:
908939
# any <error> or <failure>, the step fails.
909940
run: |
910941
set +e
911-
# Skipped for this run:
912-
# - WP_SQLite_Driver_Translation_Tests: several cases hang Turso
913-
# (ALTER TABLE flow, BOOLEAN columns, etc.). 57 tests.
914-
# - WP_MySQL_Server_Suite_Lexer_Tests: tokenises a 5.7 MB CSV in
915-
# a single PHP loop; hangs past our 10-minute step budget on
916-
# this runner. Pure PHP (doesn't touch Turso), skipping until
917-
# it can run in its own process.
918-
# Only the two CSV-driven server-suite tests remain skipped — they
919-
# tokenize/parse a 5.7 MB fixture in a single loop and run for well
920-
# over 10 min under LD_PRELOAD (not a Turso issue).
921-
skip_regex='^(?!WP_MySQL_Server_Suite_).+'
942+
# Currently skipped:
943+
# - WP_MySQL_Server_Suite_*: tokenise/parse a 5.7 MB fixture in a
944+
# single loop, runs well over 10 min under LD_PRELOAD (not a
945+
# Turso issue; pure PHP work).
946+
# - WP_SQLite_Driver_Translation_Tests: all 56 tests complete,
947+
# but leave Turso in a state where the next test hangs
948+
# (testReconstructTable 10-min timeout). Re-skip until the
949+
# state-leak is understood.
950+
skip_regex='^(?!WP_MySQL_Server_Suite_|WP_SQLite_Driver_Translation_Tests).+'
922951
timeout --kill-after=10 600 \
923952
php ./vendor/bin/phpunit -c ./phpunit.xml.dist \
924953
--debug \

0 commit comments

Comments
 (0)