Skip to content

Commit 966a4e5

Browse files
committed
Add batching Test Suite tests to avoid an OOM SIGKILL
1 parent fcf09c5 commit 966a4e5

1 file changed

Lines changed: 35 additions & 16 deletions

File tree

tools/ci/src/main.rs

Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -476,22 +476,41 @@ fn main() -> Result<()> {
476476

477477
// TODO: This doesn't work on at least user Linux machines, because something here apparently uses `sudo`?
478478

479-
// Exclude smoketests from `cargo test --all` since they require pre-built binaries.
480-
// Smoketests have their own dedicated command: `cargo ci smoketests`
481-
cmd!(
482-
"cargo",
483-
"test",
484-
"--all",
485-
"--exclude",
486-
"spacetimedb-smoketests",
487-
"--exclude",
488-
"spacetimedb-sdk",
489-
"--",
490-
"--test-threads=2",
491-
"--skip",
492-
"unreal"
493-
)
494-
.run()?;
479+
// Run tests crate-by-crate to prevent memory accumulation and OOM in CI.
480+
// This replaces `cargo test --all` which accumulates 10GB+ memory.
481+
// Each crate runs in a separate process, ensuring memory is freed between crates.
482+
let crates_to_test = [
483+
"spacetimedb-sats",
484+
"spacetimedb-data-structures",
485+
"spacetimedb-metrics",
486+
"spacetimedb-primitives",
487+
"spacetimedb-schema",
488+
"spacetimedb-table",
489+
"spacetimedb-sql-parser",
490+
"spacetimedb-expr",
491+
"spacetimedb-lib",
492+
"spacetimedb-standalone",
493+
"spacetimedb-testing",
494+
"spacetimedb-cli",
495+
"spacetimedb-client-api",
496+
"spacetimedb-core",
497+
"spacetimedb",
498+
];
499+
500+
for crate_name in crates_to_test {
501+
println!("Running tests for crate: {}", crate_name);
502+
cmd!(
503+
"cargo",
504+
"test",
505+
"-p",
506+
crate_name,
507+
"--",
508+
"--test-threads=1",
509+
"--skip",
510+
"unreal"
511+
)
512+
.run()?;
513+
}
495514
// SDK procedure tests intentionally make localhost HTTP requests.
496515
cmd!(
497516
"cargo",

0 commit comments

Comments
 (0)