Open nathan-at-least opened 1 year ago
Ensure doc example uses modern rust, is automatically tested, and checks for errors.
This PR updates the schemer-rusqlite doc example in three ways:
schemer-rusqlite
extern crate
#[macro_use]
main
cargo test
unwrap
$ cargo test -p schemer-rusqlite Finished test [unoptimized + debuginfo] target(s) in 0.03s Running unittests src/lib.rs (target/debug/deps/schemer_rusqlite-c8c258f066245d88) running 4 tests test tests::test_migration_chain ... ok test tests::test_single_migration ... ok test tests::test_branching_dag ... ok test tests::test_multi_component_dag ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests schemer-rusqlite running 2 tests test src/lib.rs - RusqliteAdapter<'a,E>::new (line 97) ... ok test src/lib.rs - (line 6) ... FAILED failures: ---- src/lib.rs - (line 6) stdout ---- Test executable failed (exit status: 101). stderr: [39/1145] thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Adapter(SqliteFailure(Error { code: Unknown, extended_code: 1 }, Some("no such table: _schemer")))', src/lib.rs:40:19 stack backtrace: [… backtrace elided] failures: src/lib.rs - (line 6) test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.74s error: doctest failed, to rerun pass `-p schemer-rusqlite --doc`
The rendered docs now look like this on my system:
Rationale
Ensure doc example uses modern rust, is automatically tested, and checks for errors.
Summary
This PR updates the
schemer-rusqlite
doc example in three ways:extern crate
and#[macro_use]
statements to follow edition 2021 style.main
to the top-level: this is very important because it ensurecargo test
exercises the expressions.unwrap
on all results: this exposes an error!Exposed Error
Rendering
The rendered docs now look like this on my system: