From c7f06f852b79a018ca1e7382b98ed1ee5b017ec5 Mon Sep 17 00:00:00 2001 From: Gary Guo Date: Sun, 7 May 2023 00:29:39 +0100 Subject: [PATCH] Run the example as a CI test --- .github/workflows/ci.yml | 21 +++++++++++++++------ example/src/main.rs | 7 ++++--- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d83ae19..b92a6e4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,13 +10,22 @@ env: CARGO_TERM_COLOR: always jobs: - build: - + test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - name: Build - run: cargo build --verbose - - name: Run tests - run: cargo test --verbose + - name: Install Rust + run: rustup update nightly && rustup default nightly + - name: Run Example Binary + run: (cargo run --release 2>&1 | tee ../run.log) || true + working-directory: example + - name: Check Log + run: | + grep "panicked at 'panic', example/src/main.rs:36:5" run.log + grep 'note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace' run.log + grep 'dropped: "string"' run.log + grep 'caught' run.log + grep "panicked at 'panic', example/src/main.rs:46:5" run.log + grep "panicked at 'panic on drop', example/src/main.rs:25:9" run.log + grep "thread panicked while processing panic. aborting." run.log diff --git a/example/src/main.rs b/example/src/main.rs index 24ada05..c5295a3 100644 --- a/example/src/main.rs +++ b/example/src/main.rs @@ -14,7 +14,7 @@ struct PrintOnDrop(String); impl Drop for PrintOnDrop { fn drop(&mut self) { - println!("dropped: {:?}", self.0); + eprintln!("dropped: {:?}", self.0); } } @@ -26,6 +26,7 @@ impl Drop for PanicOnDrop { } } +#[track_caller] fn foo() { panic!("panic"); } @@ -38,9 +39,9 @@ fn bar() { fn main() { let _ = unwinding::panic::catch_unwind(|| { bar(); - println!("done"); + eprintln!("done"); }); - println!("caught"); + eprintln!("caught"); let _p = PanicOnDrop; foo(); }