Skip to content

Commit b470808

Browse files
committed
Adds strum as a integration test requirement.
-Adds integration-test feature in order to conditionally add dependencies. -Updates the TpmFormatZeroWarning so it is possible to iterate over all the items when creating integration tests. Signed-off-by: Jesper Brynolf <jesper.brynolf@gmail.com>
1 parent fdb394a commit b470808

File tree

7 files changed

+19
-43
lines changed

7 files changed

+19
-43
lines changed

tss-esapi/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ oid = { version = "0.2.1", optional = true }
2727
picky-asn1 = { version = "0.3.0", optional = true }
2828
picky-asn1-x509 = { version = "0.6.1", optional = true }
2929
cfg-if = "1.0.0"
30+
strum = { version = "0.25.0", optional = true }
31+
strum_macros = { version = "0.25.0", optional = true }
3032

3133
[dev-dependencies]
3234
env_logger = "0.9.0"
@@ -39,3 +41,4 @@ semver = "1.0.7"
3941
default = ["abstraction"]
4042
generate-bindings = ["tss-esapi-sys/generate-bindings"]
4143
abstraction = ["oid", "picky-asn1", "picky-asn1-x509"]
44+
integration-tests = ["strum", "strum_macros"]

tss-esapi/src/constants/return_code/tpm/format_zero/warning.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use std::convert::TryFrom;
2323
/// These are the values from the specification without
2424
/// the indicator that indicates that it is a TPM format
2525
/// zero warning (i.e. [TPM2_RC_WARN]).
26+
#[cfg_attr(feature = "integration-tests", derive(strum_macros::EnumIter))]
2627
#[derive(FromPrimitive, ToPrimitive, Copy, Clone, Debug, PartialEq, Eq, Hash)]
2728
#[repr(u8)]
2829
pub enum TpmFormatZeroWarning {

tss-esapi/tests/all-fedora.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ cargo clippy --all-targets --all-features -- -D clippy::all -D clippy::cargo
4141
###################
4242
# Build the crate #
4343
###################
44-
RUST_BACKTRACE=1 cargo build --features generate-bindings
44+
RUST_BACKTRACE=1 cargo build --features "generate-bindings integration-tests"
4545

4646
#################
4747
# Run the tests #
4848
#################
49-
TEST_TCTI=tabrmd:bus_type=session RUST_BACKTRACE=1 RUST_LOG=info cargo test --features generate-bindings -- --test-threads=1 --nocapture
49+
TEST_TCTI=tabrmd:bus_type=session RUST_BACKTRACE=1 RUST_LOG=info cargo test --features "generate-bindings integration-tests" -- --test-threads=1 --nocapture

tss-esapi/tests/all-ubuntu.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ fi
2121
# Generate bindings for non-"standard" versions #
2222
#################################################
2323
if [[ "$TPM2_TSS_VERSION" != "2.3.3" ]]; then
24-
FEATURES="--features=generate-bindings"
24+
FEATURES="generate-bindings integration-tests"
2525
else
26-
FEATURES=""
26+
FEATURES="integration-tests"
2727
fi
2828

2929
#################################
@@ -41,9 +41,9 @@ cargo clippy --all-targets --all-features -- -D clippy::all -D clippy::cargo
4141
###################
4242
# Build the crate #
4343
###################
44-
RUST_BACKTRACE=1 cargo build $FEATURES
44+
RUST_BACKTRACE=1 cargo build --features "$FEATURES"
4545

4646
#################
4747
# Run the tests #
4848
#################
49-
TEST_TCTI=mssim: RUST_BACKTRACE=1 RUST_LOG=info cargo test $FEATURES -- --test-threads=1 --nocapture
49+
TEST_TCTI=mssim: RUST_BACKTRACE=1 RUST_LOG=info cargo test --features "$FEATURES" -- --test-threads=1 --nocapture

tss-esapi/tests/coverage.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ tpm2_startup -c -T mssim
1616
# Install and run tarpaulin #
1717
#############################
1818
cargo install cargo-tarpaulin
19-
cargo tarpaulin --tests --out Xml --exclude-files="tests/*,../*" -- --test-threads=1 --nocapture
19+
cargo tarpaulin --features integration-tests --tests --out Xml --exclude-files="tests/*,../*" -- --test-threads=1 --nocapture

tss-esapi/tests/integration_tests/error_tests/return_code_tests/tpm_tests/tpm_format_zero_tests/tpm_format_zero_warning_tests.rs

Lines changed: 7 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright 2022 Contributors to the Parsec project.
22
// SPDX-License-Identifier: Apache-2.
33
use std::convert::TryFrom;
4+
use strum::IntoEnumIterator;
45
use tss_esapi::{
56
constants::{
67
return_code::TpmFormatZeroWarning,
@@ -231,43 +232,14 @@ fn test_display_implementation() {
231232
);
232233
}
233234

234-
macro_rules! test_error_number_method {
235-
(TpmFormatZeroWarning::$zero_warning:ident) => {
236-
let zero_warning_rc = TpmFormatZeroWarningResponseCode::from(TpmFormatZeroWarning::$zero_warning);
235+
#[test]
236+
fn test_error_number() {
237+
TpmFormatZeroWarning::iter().for_each(|item| {
238+
let zero_warning_rc = TpmFormatZeroWarningResponseCode::from(item);
237239
assert_eq!(
238-
TpmFormatZeroWarning::$zero_warning,
240+
item,
239241
zero_warning_rc.error_number(),
240242
"The TpmFormatZeroWarningResponseCode `error_number()` method did not return the expected TpmFormatZeroWarning"
241243
);
242-
};
243-
}
244-
245-
#[test]
246-
fn test_error_number() {
247-
test_error_number_method!(TpmFormatZeroWarning::ContextGap);
248-
test_error_number_method!(TpmFormatZeroWarning::ObjectMemory);
249-
test_error_number_method!(TpmFormatZeroWarning::SessionMemory);
250-
test_error_number_method!(TpmFormatZeroWarning::ObjectHandles);
251-
test_error_number_method!(TpmFormatZeroWarning::Locality);
252-
test_error_number_method!(TpmFormatZeroWarning::Yielded);
253-
test_error_number_method!(TpmFormatZeroWarning::Canceled);
254-
test_error_number_method!(TpmFormatZeroWarning::Testing);
255-
test_error_number_method!(TpmFormatZeroWarning::ReferenceH0);
256-
test_error_number_method!(TpmFormatZeroWarning::ReferenceH1);
257-
test_error_number_method!(TpmFormatZeroWarning::ReferenceH2);
258-
test_error_number_method!(TpmFormatZeroWarning::ReferenceH3);
259-
test_error_number_method!(TpmFormatZeroWarning::ReferenceH4);
260-
test_error_number_method!(TpmFormatZeroWarning::ReferenceH5);
261-
test_error_number_method!(TpmFormatZeroWarning::ReferenceH6);
262-
test_error_number_method!(TpmFormatZeroWarning::ReferenceS0);
263-
test_error_number_method!(TpmFormatZeroWarning::ReferenceS1);
264-
test_error_number_method!(TpmFormatZeroWarning::ReferenceS2);
265-
test_error_number_method!(TpmFormatZeroWarning::ReferenceS3);
266-
test_error_number_method!(TpmFormatZeroWarning::ReferenceS4);
267-
test_error_number_method!(TpmFormatZeroWarning::ReferenceS5);
268-
test_error_number_method!(TpmFormatZeroWarning::ReferenceS6);
269-
test_error_number_method!(TpmFormatZeroWarning::NvRate);
270-
test_error_number_method!(TpmFormatZeroWarning::Lockout);
271-
test_error_number_method!(TpmFormatZeroWarning::Retry);
272-
test_error_number_method!(TpmFormatZeroWarning::NvUnavailable);
244+
});
273245
}

tss-esapi/tests/valgrind.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ cargo install cargo-valgrind
2424
#################
2525
# Run the tests #
2626
#################
27-
TEST_TCTI=mssim: RUST_BACKTRACE=1 RUST_LOG=info cargo valgrind test -- --test-threads=1 --nocapture
27+
TEST_TCTI=mssim: RUST_BACKTRACE=1 RUST_LOG=info cargo valgrind test --features integration-tests -- --test-threads=1 --nocapture

0 commit comments

Comments
 (0)