diff --git a/serde_macros/Cargo.toml b/serde_macros/Cargo.toml index aafbfe05..264f2dac 100644 --- a/serde_macros/Cargo.toml +++ b/serde_macros/Cargo.toml @@ -8,17 +8,27 @@ repository = "https://github.com/serde-rs/serde" documentation = "https://github.com/serde-rs/serde" keywords = ["serde", "serialization"] include = ["Cargo.toml", "src/**/*.rs"] +build = "build.rs" [lib] name = "serde_macros" plugin = true [features] -unstable-testing = ["clippy", "serde/unstable-testing", "serde_codegen/unstable-testing"] +unstable-testing = [ + "clippy", + "skeptic", + "serde/unstable-testing", + "serde_codegen/unstable-testing" +] + +[build-dependencies] +skeptic = { version = "^0.6.0", optional = true } [dependencies] clippy = { version = "^0.*", optional = true } serde_codegen = { version = "=0.8.0", default-features = false, features = ["unstable"] } +skeptic = { version = "^0.6.0", optional = true } [dev-dependencies] clippy = "^0.*" diff --git a/serde_macros/build.rs b/serde_macros/build.rs new file mode 100644 index 00000000..b7320275 --- /dev/null +++ b/serde_macros/build.rs @@ -0,0 +1,17 @@ +#[cfg(feature = "nightly-testing")] +mod inner { + extern crate skeptic; + + pub fn main() { + skeptic::generate_doc_tests(&["../README.md"]); + } +} + +#[cfg(not(feature = "nightly-testing"))] +mod inner { + pub fn main() {} +} + +fn main() { + inner::main() +} diff --git a/serde_macros/tests/skeptic.rs b/serde_macros/tests/skeptic.rs new file mode 100644 index 00000000..39a3a51d --- /dev/null +++ b/serde_macros/tests/skeptic.rs @@ -0,0 +1,3 @@ +#![cfg(feature = "nightly-testing")] + +include!(concat!(env!("OUT_DIR"), "/skeptic-tests.rs")); diff --git a/serde_macros/tests/test.rs b/serde_macros/tests/test.rs index e0462787..94d8338b 100644 --- a/serde_macros/tests/test.rs +++ b/serde_macros/tests/test.rs @@ -6,3 +6,4 @@ extern crate test; include!("../../testing/tests/test.rs.in"); mod compile_tests; +mod skeptic;