CI: one test binary per crate, nextest, line tables only (#3855)

* CI: line tables only for workspace crates, no debug info for dependencies

* CI: one integration-test binary per crate

Each crate's tests/*.rs files become modules of tests/it/main.rs. Files that change
process-wide state (Color Settings, the font database, installed plug-ins, the working
directory), the fuzz sweeps and the test targets the Affinity corpus workflow names stay
their own binaries.

* Docs: name the integration tests' new paths

* CI: xtask test with nextest and doctests, one wasm check, clippy --keep-going

cargo xtask ci runs the tests with cargo nextest (cargo test when it is not installed),
builds them with --lib --bins --tests, runs the doctests as their own step, and checks
the wasm crates in one cargo check --keep-going call.
This commit is contained in:
aiongg
2026-10-23 21:36:10 -04:00
committed by GitHub
parent 5037a1ac4b
commit 8cc69ed45c
94 changed files with 235 additions and 197 deletions
+2 -2
View File
@@ -273,7 +273,7 @@ impl Op {
pub fn command(&self, s: &Session) -> (String, Value) {
let doc = s.active().map(|d| d.doc.clone());
// Children of compound paths are excluded: grouping one of them nests a group inside the
// compound (known bug, see crates/engine/tests/known_bugs.rs).
// compound (known bug, see crates/engine/tests/it/known_bugs.rs).
let art: Vec<_> = doc
.as_ref()
.map(|d| {
@@ -313,7 +313,7 @@ impl Op {
Op::Ungroup => c("object.ungroup", json!({})),
Op::Arrange(i) => {
let i = *i as usize % ARRANGE.len();
// Known bug (crates/engine/tests/known_bugs.rs): Bring to Front/Forward panics when
// Known bug (crates/engine/tests/it/known_bugs.rs): Bring to Front/Forward panics when
// the selection spans several parents. Avoid generating that case.
let multi_parent = doc.as_ref().zip(s.active()).is_some_and(|(d, st)| {
let mut parents: Vec<_> = st.selection.objects.iter().map(|id| d.parent_of(*id)).collect();