Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ jobs:
craft-fonts-ref: aced4137c022f1f587624d48e81ec77e1914a9cc
os: '["ubuntu-24.04","windows-latest"]'
toolchain: "1.96.0"
# xtask ci runs cargo test (including doctests), not cargo nextest.
tools: ""
packages: >-
libxkbcommon-dev libwayland-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev
libgtk-3-dev
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
24 changes: 24 additions & 0 deletions crates/engine/tests/it/main.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
//! One integration-test executable avoids linking the same dependencies for every feature.
//! Keep feature tests in their own modules; the standalone session.rs target remains available.

mod bake;
mod bake_resolution;
mod bake_settings;
mod bake_tiles;
mod content_effects;
mod export_colour_space;
mod filter_swap;
mod filters;
mod instances;
mod materialcraft_link;
mod materialx;
mod materialx_import;
mod painter_gaps;
mod path_tool;
mod perf;
mod polygon_fill;
mod project_recovery;
mod sample;
mod tools;
mod udim;
mod uv_strokes;
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
27 changes: 27 additions & 0 deletions crates/ui-egui/tests/it/main.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
//! One integration-test executable avoids linking the same dependencies for every feature.
//! Keep feature tests in their own modules; the standalone ui_snapshots.rs target remains available.

mod bake_mode;
mod brush_drag;
mod close_unsaved;
mod color_picker;
mod curvature_generator;
mod effect_rows;
mod effect_sliders;
mod fill_channel_image;
mod fill_projection_section;
mod filter_picker;
mod history_panel;
mod layer_clipboard;
mod layer_rename;
mod path_list;
mod pen_pressure;
mod polygon_fill;
mod properties_popup;
mod shelf_drop;
mod shelf_hover_preview;
mod shift_lines_2d;
mod skew_paint;
mod split_divider;
mod start_window;
mod toolbar;
File renamed without changes.
File renamed without changes.
24 changes: 24 additions & 0 deletions docs/testing-ci.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Integration tests and CI

The engine and UI integration tests share one `it` executable per crate. This
avoids compiling and linking the same crate dependencies into a separate
executable for every feature. Feature modules keep their own helpers and tests.
When adding a file under `tests/it/`, register it with `mod name;` in that
folder's `main.rs` so Cargo runs it.

Run a feature module with a test-name filter, for example:

```sh
cargo test -p texturecraft-engine --test it bake::
```

The standalone engine `session` target and UI `ui_snapshots` target remain
available for the commands in `AGENTS.md`. Existing ignore attributes are
unchanged. Tests in the shared executable can run concurrently across modules;
keep temporary paths unique and avoid changing process-wide state.

CI continues to use the shared gate workflow and `cargo xtask ci` on Ubuntu and
Windows: formatting, Clippy, workspace tests (including doctests), layering and
isolated per-package WebAssembly checks. The caller disables the shared
workflow's optional tool installation because this gate uses `cargo test` and
does not use nextest.
Loading