Open wmaroneAMD opened 4 months ago
@wmaroneAMD , I agree with you.
It seems you already have patch, to make sure you own the credit, I will transfer owner to you. Do you mind submit PR directly?
If you are OK with making the change in this manner, I can do that.
Looking to confirm behavior, as I believe this is a bug. Tested libspdm tag 3.2.0 + spdm responder validator tag 3.2.0
Tests 2, 3, 6, and 7 incorrectly omit tests depending what versions are specified. When version 1.0 is removed as a supported version, the negotiation step correctly identifies this and skips the 1.0 only tests, but fails to reset properly when negotiating for 1.0+ tests. The same pattern happens for tests if only 1.2 is supported and 1.1 checks are skipped.
Example, spdm_test_case_capabilities_version_mismatch: SPDM Version: 1.0+
Modifying the tests to omit spdm_test_case_capabilities_success_10 from being considered:
By resetting supported SPDM versions:
We get proper output for the 1.1 + 1.2 and 1.1 only cases:
1.1 only
1.1+1.2
Extended example: spdm_test_case_capabilities_invalid_request, SPDM Version: 1.1+
1.2 only
The teardown flow goes through libspdm_init_context_with_secured_context which should be resetting the version, but does not appear to be doing so correctly.