• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / etl / 42613095517
81%

Build:
DEFAULT BRANCH: main
Ran 09 Nov 2026 12:08PM UTC
Jobs 1
Files 254
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

09 Nov 2026 11:57AM UTC coverage: 81.451% (+0.2%) from 81.281%
42613095517

push

github

web-flow
test: crash-replay property for destinations (#1221)

* test: crash-replay property for destinations

Run the random CDC workload through a real pipeline into ClickHouse
(both engines), DuckLake, BigQuery, and Snowflake, and inject one
fault per case: a crash and restart, a lost write acknowledgement,
or a rejected write, on either the first copy write or a streaming
write. Afterwards each table in the destination must match the
source, with no lost rows and no duplicate keys.

- Move the workload generator to etl::test_utils::cdc_workload so
  destination tests can use it.
- WorkloadShape keeps each destination to changes it supports.
- ClickHouse turns on insert block dedup after the initial copy, as
  Replicated and Shared MergeTree do.
- DuckLake uses the production pool size.
- ClickHouse and DuckLake run on every PR. BigQuery runs in a new
  nightly workflow and Snowflake in the existing one.

* test: return slot read errors as TestCaseError

wait_for_sync_slot_removal returns a TestCaseError on timeout but
panicked on a failed slot read. Propagate the read error the same
way so proptest reports it as a case failure.

* ci: limit BigQuery nightly to integration tests

The nightly filter matched the lib binary too, so --run-ignored only
also ran three known-defect BigQuery unit tests that fail by design.
Restrict it to the etl-destinations::main integration binary.

* test: document ClickHouse crash-replay row fields

* test: treat missing tables as crash-replay failures

BigQuery and DuckLake read a missing destination table as zero rows,
so a case whose source table ended empty passed even when the
destination lost or never recreated the table. Table sync writes every
table at least once, so a missing table is now an error. BigQuery
retries it within the settle window to ride out stale NOT_FOUND.

* test: order crash-replay helpers before callers

Move-only change to follow the define-helpers-before-use rule.

103 of 129 new or added lines in 3 files covered. (79.84%)

21 existing lines in 2 files now uncovered.

64432 of 79105 relevant lines covered (81.45%)

32892.01 hits per line

Uncovered Changes

Lines Coverage ∆ File
12
67.61
-2.37% crates/etl-destinations/src/bigquery/test_utils.rs
9
95.39
crates/etl/src/test_utils/cdc_workload.rs
5
0.0
0.0% crates/xtask/src/commands/test_snowflake.rs

Coverage Regressions

Lines Coverage ∆ File
19
90.2
-0.1% crates/etl-destinations/src/ducklake/encoding.rs
2
87.47
-0.06% crates/etl-destinations/src/ducklake/batches.rs
Jobs
ID Job ID Ran Files Coverage
1 42613095517.1 09 Nov 2026 12:08PM UTC 254
81.45
GitHub Action Run
Source Files on build 42613095517
  • Tree
  • List 254
  • Changed 10
  • Source Changed 2
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #42613095517
  • 3cd6c009 on github
  • Prev Build on main (#42605265486)
  • Next Build on main (#42630231974)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc