aboutsummaryrefslogtreecommitdiff
path: root/nitrocli/src/tests
diff options
context:
space:
mode:
authorDaniel Mueller <deso@posteo.net>2019-01-20 13:56:48 -0800
committerDaniel Mueller <deso@posteo.net>2019-01-20 13:56:48 -0800
commit37f7800766fe12af43d0cdba13aea9545cbe7755 (patch)
treeea621deaf425db10494cb8af59ac3a8806c52e8b /nitrocli/src/tests
parentc3f1761ae147e562ec3565c7ba8a9cb1834759c2 (diff)
downloadnitrocli-37f7800766fe12af43d0cdba13aea9545cbe7755.tar.gz
nitrocli-37f7800766fe12af43d0cdba13aea9545cbe7755.tar.bz2
Add test for storage hidden subcommand
This change adds a test for the creation, opening, and closing of a hidden subvolume. In order to support that in a non-interactive fashion, we introduce and honor the NITROCLI_PASSWORD environment variable, that prevents an interactive password query.
Diffstat (limited to 'nitrocli/src/tests')
-rw-r--r--nitrocli/src/tests/mod.rs4
-rw-r--r--nitrocli/src/tests/storage.rs24
2 files changed, 28 insertions, 0 deletions
diff --git a/nitrocli/src/tests/mod.rs b/nitrocli/src/tests/mod.rs
index a3855f8..0337029 100644
--- a/nitrocli/src/tests/mod.rs
+++ b/nitrocli/src/tests/mod.rs
@@ -77,6 +77,7 @@ struct Nitrocli {
user_pin: Option<ffi::OsString>,
new_admin_pin: Option<ffi::OsString>,
new_user_pin: Option<ffi::OsString>,
+ password: Option<ffi::OsString>,
}
impl Nitrocli {
@@ -87,6 +88,7 @@ impl Nitrocli {
user_pin: Some(NITROKEY_DEFAULT_USER_PIN.into()),
new_admin_pin: None,
new_user_pin: None,
+ password: None,
}
}
@@ -100,6 +102,7 @@ impl Nitrocli {
user_pin: Some(NITROKEY_DEFAULT_USER_PIN.into()),
new_admin_pin: None,
new_user_pin: None,
+ password: Some("1234567".into()),
};
drop(device);
@@ -143,6 +146,7 @@ impl Nitrocli {
user_pin: self.user_pin.clone(),
new_admin_pin: self.new_admin_pin.clone(),
new_user_pin: self.new_user_pin.clone(),
+ password: self.password.clone(),
};
(f(ctx, args), stdout, stderr)
diff --git a/nitrocli/src/tests/storage.rs b/nitrocli/src/tests/storage.rs
index d017f34..be933ca 100644
--- a/nitrocli/src/tests/storage.rs
+++ b/nitrocli/src/tests/storage.rs
@@ -91,3 +91,27 @@ fn encrypted_open_close(device: nitrokey::Storage) -> crate::Result<()> {
Ok(())
}
+
+#[test_device]
+fn hidden_create_open_close(device: nitrokey::Storage) -> crate::Result<()> {
+ let mut ncli = Nitrocli::with_dev(device);
+ let out = ncli.handle(&["storage", "hidden", "create", "0", "50", "100"])?;
+ assert!(out.is_empty());
+
+ let out = ncli.handle(&["storage", "hidden", "open"])?;
+ assert!(out.is_empty());
+
+ let device = nitrokey::Storage::connect()?;
+ assert!(!device.get_status()?.encrypted_volume.active);
+ assert!(device.get_status()?.hidden_volume.active);
+ drop(device);
+
+ let out = ncli.handle(&["storage", "hidden", "close"])?;
+ assert!(out.is_empty());
+
+ let device = nitrokey::Storage::connect()?;
+ assert!(!device.get_status()?.encrypted_volume.active);
+ assert!(!device.get_status()?.hidden_volume.active);
+
+ Ok(())
+}