diff --git a/.github/workflows/clippy.sh b/.github/workflows/clippy.sh index 01b1dc720e..141abb33a2 100755 --- a/.github/workflows/clippy.sh +++ b/.github/workflows/clippy.sh @@ -38,6 +38,7 @@ clippy crates/spirv-builder clippy examples/runners/ash clippy examples/runners/wgpu +clippy_no_features crates/testsuite clippy_no_features examples/runners/cpu clippy_no_features examples/shaders/sky-shader clippy_no_features examples/shaders/simplest-shader diff --git a/.github/workflows/test.sh b/.github/workflows/test.sh index ad6c762263..6c0d28308b 100755 --- a/.github/workflows/test.sh +++ b/.github/workflows/test.sh @@ -50,6 +50,7 @@ fi cargo_test examples/runners/wgpu +cargo_test_no_features crates/testsuite cargo_test_no_features examples/runners/cpu cargo_test_no_features examples/shaders/sky-shader cargo_test_no_features examples/shaders/simplest-shader diff --git a/Cargo.lock b/Cargo.lock index ec4b5905a2..6b6b7852d2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2209,6 +2209,17 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "testsuite" +version = "0.1.0" +dependencies = [ + "cfg-if 0.1.10", + "lazy_static", + "pretty_assertions", + "rustc_codegen_spirv", + "spirv-builder", +] + [[package]] name = "textwrap" version = "0.11.0" diff --git a/Cargo.toml b/Cargo.toml index ba6c57d754..aed33f58c8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,7 @@ members = [ "crates/spirv-std", "crates/spirv-tools", "crates/spirv-tools-sys", + "crates/testsuite", ] [patch.crates-io] diff --git a/crates/spirv-builder/src/lib.rs b/crates/spirv-builder/src/lib.rs index fe12897890..f3dd01b9e8 100644 --- a/crates/spirv-builder/src/lib.rs +++ b/crates/spirv-builder/src/lib.rs @@ -1,6 +1,3 @@ -#[cfg(test)] -mod test; - mod depfile; use raw_string::{RawStr, RawString}; diff --git a/crates/testsuite/Cargo.toml b/crates/testsuite/Cargo.toml new file mode 100644 index 0000000000..77ed35ca3b --- /dev/null +++ b/crates/testsuite/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "testsuite" +version = "0.1.0" +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +spirv-builder = { path = "../spirv-builder", default-features = false } +rustc_codegen_spirv = { path = "../rustc_codegen_spirv", default-features = false } +lazy_static = "1.4" +pretty_assertions = "0.6" +cfg-if = "0.1.10" diff --git a/crates/spirv-builder/src/test/basic.rs b/crates/testsuite/src/basic.rs similarity index 100% rename from crates/spirv-builder/src/test/basic.rs rename to crates/testsuite/src/basic.rs diff --git a/crates/spirv-builder/src/test/control_flow.rs b/crates/testsuite/src/control_flow.rs similarity index 100% rename from crates/spirv-builder/src/test/control_flow.rs rename to crates/testsuite/src/control_flow.rs diff --git a/crates/spirv-builder/src/test/mod.rs b/crates/testsuite/src/lib.rs similarity index 97% rename from crates/spirv-builder/src/test/mod.rs rename to crates/testsuite/src/lib.rs index 2b25871631..1d838b36d3 100644 --- a/crates/spirv-builder/src/test/mod.rs +++ b/crates/testsuite/src/lib.rs @@ -1,5 +1,9 @@ -mod basic; -mod control_flow; +cfg_if::cfg_if! { + if #[cfg(test)] { + mod basic; + mod control_flow; + } +} use lazy_static::lazy_static; use rustc_codegen_spirv::rspirv; @@ -74,7 +78,7 @@ fn setup(src: &str) -> Result> { fn build(src: &str) -> PathBuf { let project = setup(src).expect("Failed to set up project"); - crate::SpirvBuilder::new(&project) + spirv_builder::SpirvBuilder::new(&project) .print_metadata(false) .build() .expect("Failed to build test")