From 7effe4fa6023d1beb08f52123fe2198a9d5ffb8e Mon Sep 17 00:00:00 2001 From: Zeeshan Lakhani Date: Fri, 21 Jul 2023 15:16:48 +0900 Subject: [PATCH] refactor: simplify cov --- .github/workflows/coverage.yml | 25 +++++-------------------- homestar-runtime/tests/cli.rs | 31 ++++++++++++++++++------------- 2 files changed, 23 insertions(+), 33 deletions(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 1f3df710d..15b575aac 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -29,26 +29,11 @@ jobs: - name: Cache Project uses: Swatinem/rust-cache@v2 - - name: Generate Code coverage - env: - CARGO_INCREMENTAL: '0' - LLVM_PROFILE_FILE: "homestar-%p-%m.profraw" - RUSTFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests' - RUSTDOCFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests' - # covering nexttest's doc-test issue - run: cargo test --all-features - - - name: Install grcov - run: "curl -L https://github.com/mozilla/grcov/releases/download/v0.8.12/grcov-x86_64-unknown-linux-gnu.tar.bz2 | tar jxf -" - - - name: Run grcov - run: "./grcov . --llvm --binary-path target/debug/ -s . -t lcov --branch --ignore-not-existing --ignore '/*' -o lcov.info" - - - name: Install covfix - run: cargo install --force rust-covfix - - - name: Run covfix - run: rust-covfix lcov.info -o lcov.info --verbose + - name: Install cargo-llvm-cov + uses: taiki-e/install-action@cargo-llvm-cov + + - name: Generate Code Coverage + run: cargo llvm-cov --all-features --workspace --doctests --lcov --output-path lcov.info - name: Upload to codecov.io uses: codecov/codecov-action@v3 diff --git a/homestar-runtime/tests/cli.rs b/homestar-runtime/tests/cli.rs index 1a7d4b60c..4bbf4bb51 100644 --- a/homestar-runtime/tests/cli.rs +++ b/homestar-runtime/tests/cli.rs @@ -54,6 +54,7 @@ fn test_help_serial() -> Result<()> { .stdout(predicate::str::contains("run")) .stdout(predicate::str::contains("help")) .stdout(predicate::str::contains("version")); + let _ = stop_bin(); Ok(()) } @@ -71,6 +72,8 @@ fn test_version_serial() -> Result<()> { crate_name!(), env!("CARGO_PKG_VERSION") ))); + let _ = stop_bin(); + Ok(()) } @@ -78,6 +81,7 @@ fn test_version_serial() -> Result<()> { #[serial] fn test_server_not_running_serial() -> Result<()> { let _ = stop_bin(); + Command::new(BIN.as_os_str()) .arg("ping") .assert() @@ -111,6 +115,7 @@ fn test_server_not_running_serial() -> Result<()> { predicate::str::contains("Connection refused") .or(predicate::str::contains("server was already shutdown")), ); + let _ = stop_bin(); Ok(()) } @@ -162,26 +167,25 @@ fn test_server_serial() -> Result<()> { let _ = Command::new(BIN.as_os_str()).arg("stop").output(); - match homestar_proc.try_wait() { - Ok(Some(_)) => Ok(()), - Ok(None) => { - let _status_code = match homestar_proc.wait_timeout(Duration::from_secs(1)).unwrap() { - Some(status) => status.code(), - None => { - homestar_proc.kill().unwrap(); - homestar_proc.wait().unwrap().code() - } - }; - Ok(()) - } - Err(_e) => Ok(()), + if let Ok(None) = homestar_proc.try_wait() { + let _status_code = match homestar_proc.wait_timeout(Duration::from_secs(1)).unwrap() { + Some(status) => status.code(), + None => { + homestar_proc.kill().unwrap(); + homestar_proc.wait().unwrap().code() + } + }; } + let _ = stop_bin(); + + Ok(()) } #[test] #[serial] fn test_daemon_serial() -> Result<()> { let _ = stop_bin(); + Command::new(BIN.as_os_str()) .arg("start") .arg("-d") @@ -215,6 +219,7 @@ fn test_daemon_serial() -> Result<()> { let _result = signal::kill(Pid::from_raw(pid), Signal::SIGTERM); Command::new(BIN.as_os_str()).arg("ping").assert().failure(); + let _ = stop_bin(); Ok(()) }