d1d384d304
Adds a live-against-the-device test which ensures keys can be successfully listed.
41 lines
1020 B
Rust
41 lines
1020 B
Rust
//! Integration tests
|
|
|
|
#![forbid(unsafe_code)]
|
|
#![warn(missing_docs, rust_2018_idioms, trivial_casts, unused_qualifications)]
|
|
|
|
use lazy_static::lazy_static;
|
|
use std::{env, sync::Mutex};
|
|
use yubikey_piv::{key::Key, YubiKey};
|
|
|
|
lazy_static! {
|
|
/// Provide thread-safe access to a YubiKey
|
|
static ref YUBIKEY: Mutex<YubiKey> = init_yubikey();
|
|
}
|
|
|
|
/// One-time test initialization and setup
|
|
fn init_yubikey() -> Mutex<YubiKey> {
|
|
// Only show logs if `RUST_LOG` is set
|
|
if env::var("RUST_LOG").is_ok() {
|
|
env_logger::builder().format_timestamp(None).init();
|
|
}
|
|
|
|
Mutex::new(YubiKey::open().unwrap())
|
|
}
|
|
|
|
#[test]
|
|
#[ignore]
|
|
fn test_verify_pin() {
|
|
let mut yubikey = YUBIKEY.lock().unwrap();
|
|
assert!(yubikey.verify_pin(b"000000").is_err());
|
|
assert!(yubikey.verify_pin(b"123456").is_ok());
|
|
}
|
|
|
|
#[test]
|
|
#[ignore]
|
|
fn test_list_keys() {
|
|
let mut yubikey = YUBIKEY.lock().unwrap();
|
|
let keys_result = Key::list(&mut yubikey);
|
|
assert!(keys_result.is_ok());
|
|
dbg!(keys_result.unwrap());
|
|
}
|