Skip to content

Commit

Permalink
sign: Skip gpg tests if gpg is not installed
Browse files Browse the repository at this point in the history
This adds a guard to the gpg signing tests which will skip the test if
`gpg` is not installed on the system.

This is done in order to avoid requiring all collaborators to have setup
all the tools on their local machines that are required to test commit
signing.
  • Loading branch information
julienvincent committed Feb 21, 2024
1 parent 9f05aa8 commit f97e929
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion lib/tests/test_gpg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use std::fs::Permissions;
use std::io::Write;
#[cfg(unix)]
use std::os::unix::prelude::PermissionsExt;
use std::process::Stdio;
use std::process::{Command, Stdio};

use assert_matches::assert_matches;
use insta::assert_debug_snapshot;
Expand Down Expand Up @@ -75,6 +75,15 @@ impl GpgEnvironment {
}
}

macro_rules! gpg_guard {
() => {
if Command::new("gpg").arg("--version").status().is_err() {
eprintln!("Skipping test because gpg is not installed on the system");
return;
}
};
}

fn backend(env: &GpgEnvironment) -> GpgBackend {
// don't really need faked time for current tests,
// but probably will need it for end-to-end cli tests
Expand All @@ -87,6 +96,8 @@ fn backend(env: &GpgEnvironment) -> GpgBackend {

#[test]
fn gpg_signing_roundtrip() {
gpg_guard!();

let env = GpgEnvironment::new().unwrap();
let backend = backend(&env);
let data = b"hello world";
Expand All @@ -111,6 +122,8 @@ fn gpg_signing_roundtrip() {

#[test]
fn gpg_signing_roundtrip_explicit_key() {
gpg_guard!();

let env = GpgEnvironment::new().unwrap();
let backend = backend(&env);
let data = b"hello world";
Expand Down Expand Up @@ -142,6 +155,8 @@ fn gpg_signing_roundtrip_explicit_key() {

#[test]
fn unknown_key() {
gpg_guard!();

let env = GpgEnvironment::new().unwrap();
let backend = backend(&env);
let signature = br"-----BEGIN PGP SIGNATURE-----
Expand Down Expand Up @@ -173,6 +188,8 @@ fn unknown_key() {

#[test]
fn invalid_signature() {
gpg_guard!();

let env = GpgEnvironment::new().unwrap();
let backend = backend(&env);
let signature = br"-----BEGIN PGP SIGNATURE-----
Expand Down

0 comments on commit f97e929

Please sign in to comment.