A crate providing supporting testing infrastructure for the
nitrokey crate and its users.
The crate simplifies test creation by providing an attribute macro that generates code for running a test on up to two devices (a Nitrokey Pro and Nitrokey Storage) and takes care of serializing all tests tagged with this attribute, and causes them to be skipped if the respective device is not present.
It also provides support for running tests belonging to a certain
group. There are three groups: "nodev" (representing tests that run
when no device is present), "pro" (encompassing tests eligible to
run on the Nitrokey Pro), and "storage" (for tests running against a
Nitrokey Storage device).
Running tests of a specific group (and only those) can be
accomplished by setting the
variable to the group of interest. Note that in this mode tests will
fail if the respective device is not present.
Right now we make a few simplifying assumptions that, although not changing what can be expressed and tested, can lead to unexpected error messages when not known:
- the parameter has to be an owned object, not a reference
- parameter types are pattern matched against "Storage", "Pro", and
"DeviceWrapper"; that means
use ... asdeclarations will not work properly
A procedural macro for the