dolthub / dolthub/doltlite

Windows CI runs a reduced native suite and can swallow failures

Closed
#2,898 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
268
Forks
18
Avg merge
2h 27m
Merged PRs (30d)
447

Description

Windows binaries ship. `doltlite_windows_suites` is 61 of 137 native suites. Combined with the unguarded Windows loop (see the suite-completion issue), a rebase or history regression can land on `master` as long as it is Unix-only in the manifest.

**Missing from Windows CI (among others)**

| Missing | Why it matters |
|---|---|
| `doltlite_rebase.sh`, `doltlite_rebase_schema.sh` | rebase holds the graph lock across replay |
| `doltlite_history.sh`, `doltlite_at.sh`, `doltlite_clustered_pk_pushdown.sh` | live bug class: TEXT/composite PK history seek. `doltlite_history.sh` is still mostly `INTEGER PRIMARY KEY` |
| `doltlite_snapshot_isolation.sh`, `doltlite_savepoint.sh`, `doltlite_txn_seek_visibility.sh` | isolation and cursor correctness |
| `doltlite_regression_test_c.sh` | the C regression corpus |

Windows also skips `crash_recovery_test`, `concurrent_branch_test`, `concurrent_write_test`, and specialized C tests.

Related, not Windows-specific: when historical key layout differs, `dolt_history_*` / `dolt_at_*` disable clustered seeks and scan. The TCL mapping test is in a bucket; the native history suite and `vc_oracle_history_test.sh` (hard-coded `h.id` / `h.v`) do not carry the same matrix.

**Fix**
- Move rebase, history, at, clustered-PK pushdown, snapshot isolation, savepoints, txn-seek, and `doltlite_regression_test_c.sh` onto `doltlite_windows_suites` (skip only what is truly Unix-only: `nofollow`, `/tmp` path assumptions after a wrapper).
- Run those suites through `run_guarded_suite.sh` / `run_doltlite_tests.sh`.
- Promote the historical PK-shape × schema-evolution matrix from `doltlite_historical_pk_mapping.test` into `doltlite_history.sh` / `vc_oracle_history_test.sh` so a seek skip cannot silently change results.
- Keep `doltlite_gc.sh` on Windows and add a rename-over-open case for `#1048` rather than treating GC as a Unix durability story.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with doltlite_windows_suites and the existing run_guarded_suite.sh and run_doltlite_tests.sh entry points, then compare the listed Windows suites with the current 61-suite set. Done means the specified suites run guarded on Windows, the historical PK-shape matrix is covered by doltlite_history.sh and vc_oracle_history_test.sh, and doltlite_gc.sh includes the #1048 rename-over-open case.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, shell
Domain
ci-cd, databases, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.