|author||Robin Krahl <email@example.com>||2019-01-05 10:49:31 +0100|
|committer||Robin Krahl <firstname.lastname@example.org>||2019-01-05 10:49:31 +0100|
Update README after test refactoring
Diffstat (limited to 'README.md')
1 files changed, 19 insertions, 25 deletions
@@ -7,7 +7,9 @@ A libnitrokey wrapper for Rust providing access to Nitrokey devices.
The required [`libnitrokey`] version is built from source. The host system
-must provide `libhidapi-libusb0` in the default library search path.
+must provide `libhidapi-libusb0` (Linux) or `libhidapi` (non-Linux) in the
+default library search path. Depending on your system, you might also have to
+install the [Nitrokey udev rules].
Currently, this crate provides access to the common features of the Nitrokey
Pro and the Nitrokey Storage: general configuration, OTP generation and the
@@ -29,37 +31,27 @@ supported by `nitrokey-rs`:
-This crate has three test suites that can be selected using features. One test
-suite assumes that no Nitrokey device is connected. It is run if no other test
-suite is selected. The two other test suites require a Nitrokey Pro (feature
-`test-pro`) or a Nitrokey Storage (feature `test-storage`) to be connected.
+This crate has tests for different scenarios: Some tests require that no
+Nitrokey device is connected, others require a Nitrokey Storage or a Nitrokey
+Pro. We use the [`nitrokey-test`] crate to select the test cases. You can
+just run `cargo test` to auto-detect connected Nitrokey devices and to run the
+appropriate tests. If you want to manually select the tests, set the
+`NITROKEY_TEST_GROUP` environment variable to `nodev` (no device connected),
+`pro` (Nitrokey Pro connected) or `storage` (Nitrokey Storage connected).
-Use the `--features` option for Cargo to select one of the test suites. You
-should select more than one of the test suites at the same time. Note that the
-test suites that require a Nitrokey device assume that the device’s passwords
-are the factory defaults (admin password `12345678` and user password
-`123456`). Running the test suite with a device with different passwords might
-lock your device! Also note that the test suite might delete or overwrite data
-on all connected devices.
-As the tests currently are not synchronized, you have to make sure that they
-are not executed in parallel. To do so, pass the option `--test-threads 1` to
-the test executable.
-In conclusion, you can use these commands to run the test suites:
-$ cargo test
-$ cargo test --features test-pro -- --test-threads 1
-$ cargo test --features test-storage -- --test-threads 1
+Note that the tests assume that the device’s passwords are the factory defaults
+(admin PIN `12345678`, user PIN `123456`, update password `12345678`) and that
+an AES key has been built. Some tests will overwrite the data stored on the
+Nitrokey device or perform a factory reset. Never execute the tests if you
+unless yout want to destroy all data on all connected Nitrokey devices!
The `totp_no_pin` and `totp_pin` tests can occasionally fail due to bad timing.
Thanks to Nitrokey UG for providing a Nitrokey Storage to support the
-development of this crate.
+development of this crate. Thanks to Daniel Mueller for contributions to
+`nitrokey-rs` and for the `nitrokey-test` crate.
@@ -72,7 +64,9 @@ This project is licensed under the [MIT License]. `libnitrokey` is licensed
under the [LGPL-3.0].
+[Nitrokey udev rules]: https://www.nitrokey.com/documentation/frequently-asked-questions-faq#openpgp-card-not-available
[pull request #114]: https://github.com/Nitrokey/libnitrokey/pull/114
[MIT license]: https://opensource.org/licenses/MIT