Move the configuration of cards for card-functionality test suite into the file config/test-cards.toml
.
Add an example for this config file in `config/test-cards-example.toml`. Add handling for this toml configuration.
This commit is contained in:
parent
1af3a4b5ee
commit
d2c4152595
4 changed files with 64 additions and 16 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -6,4 +6,4 @@ target/
|
||||||
Cargo.lock
|
Cargo.lock
|
||||||
_test/
|
_test/
|
||||||
notes/
|
notes/
|
||||||
|
card-functionality/config/test-cards.toml
|
||||||
|
|
|
@ -17,3 +17,6 @@ anyhow = "1"
|
||||||
thiserror = "1.0"
|
thiserror = "1.0"
|
||||||
env_logger = "0.8"
|
env_logger = "0.8"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
|
toml = "0.5"
|
||||||
|
serde = "1.0"
|
||||||
|
serde_derive = "1.0"
|
26
card-functionality/config/test-cards-example.toml
Normal file
26
card-functionality/config/test-cards-example.toml
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
# Define which cards the test suite should be performed on.
|
||||||
|
#
|
||||||
|
# NOTE that this test suite is DESTRUCTIVE.
|
||||||
|
# It will overwrite all data on test cards!
|
||||||
|
#
|
||||||
|
# The test suite looks for the configuration in 'config/test-cards.toml',
|
||||||
|
# you should configure your own set of test-card identifiers there.
|
||||||
|
#
|
||||||
|
# Normally you'll probably want to test all cards via the pcsc transport.
|
||||||
|
#
|
||||||
|
# The scdc transport is offered as an alternative, but not recommended.
|
||||||
|
# (However, currently emulated Gnuk can only be used via scdc for unknown
|
||||||
|
# reasons)
|
||||||
|
|
||||||
|
pcsc = [
|
||||||
|
# Yubikey 5
|
||||||
|
"0006:12345678",
|
||||||
|
|
||||||
|
# FLOSS Card 3.4
|
||||||
|
"0005:0000A835",
|
||||||
|
]
|
||||||
|
|
||||||
|
scdc = [
|
||||||
|
# Gnuk emulated
|
||||||
|
"D276000124010200FFFEF1420A7A0000",
|
||||||
|
]
|
|
@ -26,6 +26,7 @@
|
||||||
//! the command data field").
|
//! the command data field").
|
||||||
|
|
||||||
use anyhow::{anyhow, Error, Result};
|
use anyhow::{anyhow, Error, Result};
|
||||||
|
use serde_derive::Deserialize;
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
|
|
||||||
use sequoia_openpgp::parse::Parse;
|
use sequoia_openpgp::parse::Parse;
|
||||||
|
@ -41,8 +42,8 @@ mod util;
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
enum TestCard {
|
enum TestCard {
|
||||||
Pcsc(&'static str),
|
Pcsc(String),
|
||||||
Scdc(&'static str),
|
Scdc(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl TestCard {
|
impl TestCard {
|
||||||
|
@ -377,21 +378,39 @@ fn run_test(
|
||||||
t(&mut ca, param)
|
t(&mut ca, param)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Deserialize)]
|
||||||
|
struct TestConfig {
|
||||||
|
pcsc: Option<Vec<String>>,
|
||||||
|
scdc: Option<Vec<String>>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl TestConfig {
|
||||||
|
fn get_cards(&self) -> Vec<TestCard> {
|
||||||
|
let mut cards = vec![];
|
||||||
|
|
||||||
|
if let Some(pcsc) = &self.pcsc {
|
||||||
|
for card in pcsc {
|
||||||
|
cards.push(TestCard::Pcsc(card.to_string()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(scdc) = &self.scdc {
|
||||||
|
for card in scdc {
|
||||||
|
cards.push(TestCard::Scdc(card.to_string()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cards
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn main() -> Result<()> {
|
fn main() -> Result<()> {
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
|
|
||||||
let cards = vec![
|
let config = std::fs::read_to_string("config/test-cards.toml")?;
|
||||||
// TestCard::Scdc("D276000124010200FFFEF1420A7A0000"), /* Gnuk emulated */
|
let config: TestConfig = toml::from_str(&config)?;
|
||||||
// TestCard::Scdc("D2760001240103040006160191800000"), /* Yubikey 5 */
|
|
||||||
// TestCard::Scdc("D276000124010200FFFE571831460000"), /* Gnuk Rysim (green) */
|
let cards = config.get_cards();
|
||||||
// TestCard::Scdc("D276000124010200FFFE4231EB6E0000"), /* Gnuk FST */
|
|
||||||
// TestCard::Scdc("D27600012401030400050000A8350000"), /* FLOSS Card 3.4 */
|
|
||||||
// TestCard::Pcsc("FFFE:F1420A7A"), /* Gnuk emulated */
|
|
||||||
TestCard::Pcsc("0006:16019180"), /* Yubikey 5 */
|
|
||||||
TestCard::Pcsc("FFFE:57183146"), /* Gnuk Rysim (green) */
|
|
||||||
TestCard::Pcsc("FFFE:4231EB6E"), /* Gnuk FST */
|
|
||||||
TestCard::Pcsc("0005:0000A835"), /* FLOSS Card 3.4 */
|
|
||||||
];
|
|
||||||
|
|
||||||
for mut card in cards {
|
for mut card in cards {
|
||||||
println!("** Run tests on card {:?} **", card);
|
println!("** Run tests on card {:?} **", card);
|
||||||
|
|
Loading…
Reference in a new issue