diff --git a/keylime-push-model-agent/src/attestation.rs b/keylime-push-model-agent/src/attestation.rs index 5fb46110..3ba3b39b 100644 --- a/keylime-push-model-agent/src/attestation.rs +++ b/keylime-push-model-agent/src/attestation.rs @@ -264,17 +264,17 @@ mod tests { let mut config = create_test_config(&uri, "", "", ""); config.max_retries = 3; // Allow up to 3 retries - let client = AttestationClient::new(&config).unwrap(); + let client = AttestationClient::new(&config).unwrap(); //#[allow_ci] let result = client.send_negotiation(&config).await; // The final request should be successful assert!(result.is_ok()); - let response = result.unwrap(); + let response = result.unwrap(); //#[allow_ci] assert_eq!(response.status_code, StatusCode::CREATED); // The server should have received 3 requests in total (2 failures + 1 success) let received_requests = - mock_server.received_requests().await.unwrap(); + mock_server.received_requests().await.unwrap(); //#[allow_ci] assert_eq!(received_requests.len(), 3); } @@ -283,12 +283,12 @@ mod tests { let negotiation_config = create_test_config("http://127.0.0.1:9999/test", "", "", ""); - let client = AttestationClient::new(&negotiation_config).unwrap(); + let client = AttestationClient::new(&negotiation_config).unwrap(); //#[allow_ci] let result = client.send_negotiation(&negotiation_config.clone()).await; assert!(result.is_err()); - let err_msg = result.unwrap_err().to_string(); + let err_msg = result.unwrap_err().to_string(); //#[allow_ci] assert!(err_msg.contains("error sending request")); } @@ -304,32 +304,32 @@ mod tests { let client_result = AttestationClient::new(&config); assert!(client_result.is_err()); - let err_msg = client_result.unwrap_err().to_string(); + let err_msg = client_result.unwrap_err().to_string(); //#[allow_ci] assert!(err_msg.contains("Failed to open")); } #[actix_rt::test] async fn test_send_negotiation_bad_certs() { - let temp_dir = tempdir().unwrap(); + let temp_dir = tempdir().unwrap(); //#[allow_ci] let ca_path = temp_dir.path().join("ca.pem"); let cert_path = temp_dir.path().join("cert.pem"); let key_path = temp_dir.path().join("key.pem"); - File::create(&ca_path).unwrap(); - File::create(&cert_path).unwrap(); - File::create(&key_path).unwrap(); + File::create(&ca_path).unwrap(); //#[allow_ci] + File::create(&cert_path).unwrap(); //#[allow_ci] + File::create(&key_path).unwrap(); //#[allow_ci] let config = create_test_config( "https://1.2.3.4:9999/test", - ca_path.to_str().unwrap(), - cert_path.to_str().unwrap(), - key_path.to_str().unwrap(), + ca_path.to_str().unwrap(), //#[allow_ci] + cert_path.to_str().unwrap(), //#[allow_ci] + key_path.to_str().unwrap(), //#[allow_ci] ); let client_result = AttestationClient::new(&config); assert!(client_result.is_err()); - let err_msg = client_result.unwrap_err().to_string(); + let err_msg = client_result.unwrap_err().to_string(); //#[allow_ci] assert!(err_msg.to_lowercase().contains("certificate")); } @@ -344,7 +344,7 @@ mod tests { "", "", "", ); - let client = AttestationClient::new(&config).unwrap(); + let client = AttestationClient::new(&config).unwrap(); //#[allow_ci] let result = client.send_negotiation(&config).await; assert!( @@ -352,7 +352,7 @@ mod tests { "Request to mockoon failed: {:?}", result.err() ); - let response_info = result.unwrap(); + let response_info = result.unwrap(); //#[allow_ci] assert_eq!( response_info.status_code, StatusCode::CREATED, @@ -365,7 +365,7 @@ mod tests { #[actix_rt::test] async fn test_handle_evidence_submission_no_location_header() { let config = create_test_config("http://localhost:3000", "", "", ""); - let client = AttestationClient::new(&config).unwrap(); + let client = AttestationClient::new(&config).unwrap(); //#[allow_ci] // Create a response with no Location header let neg_response = ResponseInformation { @@ -380,7 +380,7 @@ mod tests { assert!(result.is_err()); assert!(result - .unwrap_err() + .unwrap_err() //#[allow_ci] .to_string() .contains("missing 'Location' header")); } @@ -408,19 +408,19 @@ mod tests { let config = create_test_config(&uri, "", "", ""); // Create the client - let client = AttestationClient::new(&config).unwrap(); + let client = AttestationClient::new(&config).unwrap(); //#[allow_ci] let result = client.send_evidence(single_serialized_body, &config).await; // Assertions assert!(result.is_ok(), "send_evidence should succeed"); - let response = result.unwrap(); + let response = result.unwrap(); //#[allow_ci] assert_eq!(response.status_code, StatusCode::ACCEPTED); // Verify that the mock server received exactly one request. let received_requests = - mock_server.received_requests().await.unwrap(); + mock_server.received_requests().await.unwrap(); //#[allow_ci] assert_eq!(received_requests.len(), 1); } } diff --git a/keylime-push-model-agent/src/auth.rs b/keylime-push-model-agent/src/auth.rs index 01600d18..78aa3b30 100644 --- a/keylime-push-model-agent/src/auth.rs +++ b/keylime-push-model-agent/src/auth.rs @@ -460,7 +460,7 @@ mod tests { max_auth_retries: 2, }; - AuthenticationClient::new(config).unwrap() + AuthenticationClient::new(config).unwrap() //#[allow_ci] } #[tokio::test] @@ -532,14 +532,14 @@ mod tests { let client = create_test_client(&mock_server.uri()).await; // Test authentication - let token = client.get_auth_token().await.unwrap(); + let token = client.get_auth_token().await.unwrap(); //#[allow_ci] assert_eq!(token, "test-token-456"); // Test that token is cached assert!(client.has_valid_token().await); // Test that subsequent calls use cached token - let token2 = client.get_auth_token().await.unwrap(); + let token2 = client.get_auth_token().await.unwrap(); //#[allow_ci] assert_eq!(token2, "test-token-456"); } @@ -610,7 +610,7 @@ mod tests { let result = client.get_auth_token().await; assert!(result.is_err()); assert!(result - .unwrap_err() + .unwrap_err() //#[allow_ci] .to_string() .contains("Authentication failed")); } @@ -691,11 +691,11 @@ mod tests { max_auth_retries: 2, }; - let client = AuthenticationClient::new(config).unwrap(); + let client = AuthenticationClient::new(config).unwrap(); //#[allow_ci] // Since token expires in 1 minute but we have 5 minute buffer, // it should be considered invalid and trigger re-authentication - let token = client.get_auth_token().await.unwrap(); + let token = client.get_auth_token().await.unwrap(); //#[allow_ci] assert_eq!(token, "short-lived-token"); // Check that token is considered invalid due to buffer diff --git a/keylime-push-model-agent/src/context_info_handler.rs b/keylime-push-model-agent/src/context_info_handler.rs index 458d139c..46a78566 100644 --- a/keylime-push-model-agent/src/context_info_handler.rs +++ b/keylime-push-model-agent/src/context_info_handler.rs @@ -98,7 +98,7 @@ mod tests { let context_res = get_context_info(AVOID_TPM); assert!(context_res.is_ok()); assert!( - context_res.unwrap().is_none(), + context_res.unwrap().is_none(), //#[allow_ci] "Context should be None when TPM is avoided" ); } diff --git a/keylime-push-model-agent/src/registration.rs b/keylime-push-model-agent/src/registration.rs index 9aa236e7..0a74b3d4 100644 --- a/keylime-push-model-agent/src/registration.rs +++ b/keylime-push-model-agent/src/registration.rs @@ -12,7 +12,7 @@ pub async fn check_registration( context_info: Option, ) -> Result<()> { if context_info.is_some() { - crate::registration::register_agent(&mut context_info.unwrap()) + crate::registration::register_agent(&mut context_info.unwrap()) //#[allow_ci] .await?; } Ok(()) diff --git a/keylime-push-model-agent/src/response_handler.rs b/keylime-push-model-agent/src/response_handler.rs index ac7a9e29..4a567b8e 100644 --- a/keylime-push-model-agent/src/response_handler.rs +++ b/keylime-push-model-agent/src/response_handler.rs @@ -287,7 +287,7 @@ mod tests { fn test_process_negotiation_response_with_all_evidence_types() { let result = process_negotiation_response(VALID_RESPONSE_BODY); assert!(result.is_ok(), "Parsing a valid response should succeed"); - let evidence_requests = result.unwrap(); + let evidence_requests = result.unwrap(); //#[allow_ci] assert_eq!(evidence_requests.len(), 3); @@ -303,20 +303,20 @@ mod tests { assert_eq!(signature_scheme, "rsassa"); assert_eq!(hash_algorithm, "sha384"); let empty_sha1: Vec = vec![]; - assert_eq!(selected_subjects.get("sha1").unwrap(), &empty_sha1); + assert_eq!(selected_subjects.get("sha1").unwrap(), &empty_sha1); //#[allow_ci] assert_eq!( - selected_subjects.get("sha256").unwrap(), + selected_subjects.get("sha256").unwrap(), //#[allow_ci] &vec![0, 1, 2, 3, 4, 5, 6] ); } else { - panic!("Expected TpmQuote request"); + panic!("Expected TpmQuote request"); //#[allow_ci] } // Check UefiLog request if let EvidenceRequest::UefiLog { .. } = &evidence_requests[1] { // UefiLog request found } else { - panic!("Expected UefiLog request"); + panic!("Expected UefiLog request"); //#[allow_ci] } // Check ImaLog request @@ -329,7 +329,7 @@ mod tests { assert_eq!(*starting_offset, Some(3925)); assert_eq!(*entry_count, Some(100)); } else { - panic!("Expected ImaLog request"); + panic!("Expected ImaLog request"); //#[allow_ci] } } @@ -338,7 +338,7 @@ mod tests { // Test with only TPM quote - should succeed let result = process_negotiation_response(RESPONSE_ONLY_TPM_QUOTE); assert!(result.is_ok()); - let evidence_requests = result.unwrap(); + let evidence_requests = result.unwrap(); //#[allow_ci] assert_eq!(evidence_requests.len(), 1); assert!(matches!( evidence_requests[0], @@ -348,7 +348,7 @@ mod tests { // Test with only IMA log - should succeed let result = process_negotiation_response(RESPONSE_ONLY_IMA_LOG); assert!(result.is_ok()); - let evidence_requests = result.unwrap(); + let evidence_requests = result.unwrap(); //#[allow_ci] assert_eq!(evidence_requests.len(), 1); assert!(matches!( evidence_requests[0], @@ -358,7 +358,7 @@ mod tests { // Test with only UEFI log - should succeed let result = process_negotiation_response(RESPONSE_ONLY_UEFI_LOG); assert!(result.is_ok()); - let evidence_requests = result.unwrap(); + let evidence_requests = result.unwrap(); //#[allow_ci] assert_eq!(evidence_requests.len(), 1); assert!(matches!( evidence_requests[0], @@ -390,7 +390,7 @@ mod tests { fn test_set_evidence_log_paths() { let result = process_negotiation_response(VALID_RESPONSE_BODY); assert!(result.is_ok()); - let mut evidence_requests = result.unwrap(); + let mut evidence_requests = result.unwrap(); //#[allow_ci] // Initially, log paths should be None for request in &evidence_requests { @@ -417,13 +417,13 @@ mod tests { match request { EvidenceRequest::ImaLog { log_path, .. } => { assert_eq!( - log_path.as_ref().unwrap(), + log_path.as_ref().unwrap(), //#[allow_ci] "/path/to/ima.log" ); } EvidenceRequest::UefiLog { log_path, .. } => { assert_eq!( - log_path.as_ref().unwrap(), + log_path.as_ref().unwrap(), //#[allow_ci] "/path/to/uefi.log" ); } @@ -441,7 +441,7 @@ mod tests { ); assert!(evidence_requests.is_ok()); - let requests = evidence_requests.unwrap(); + let requests = evidence_requests.unwrap(); //#[allow_ci] assert_eq!(requests.len(), 3); // Verify the TPM quote request @@ -456,14 +456,14 @@ mod tests { assert_eq!(signature_scheme, "rsassa"); assert_eq!(hash_algorithm, "sha384"); } else { - panic!("Expected first request to be TPM quote"); + panic!("Expected first request to be TPM quote"); //#[allow_ci] } // Verify the UEFI log request has the path set if let EvidenceRequest::UefiLog { log_path, .. } = &requests[1] { - assert_eq!(log_path.as_ref().unwrap(), "/path/to/uefi.log"); + assert_eq!(log_path.as_ref().unwrap(), "/path/to/uefi.log"); //#[allow_ci] } else { - panic!("Expected second request to be UEFI log"); + panic!("Expected second request to be UEFI log"); //#[allow_ci] } // Verify the IMA log request has the path set @@ -473,10 +473,10 @@ mod tests { .. } = &requests[2] { - assert_eq!(log_path.as_ref().unwrap(), "/path/to/ima.log"); + assert_eq!(log_path.as_ref().unwrap(), "/path/to/ima.log"); //#[allow_ci] assert_eq!(*starting_offset, Some(3925)); } else { - panic!("Expected third request to be IMA log"); + panic!("Expected third request to be IMA log"); //#[allow_ci] } } } diff --git a/keylime-push-model-agent/src/state_machine.rs b/keylime-push-model-agent/src/state_machine.rs index b3dcad09..21a3a402 100644 --- a/keylime-push-model-agent/src/state_machine.rs +++ b/keylime-push-model-agent/src/state_machine.rs @@ -274,12 +274,12 @@ mod registration { pub async fn check_registration( _context_info: Option, ) -> anyhow::Result<()> { - let result = get_mock_result().lock().unwrap().clone(); + let result = get_mock_result().lock().unwrap().clone(); //#[allow_ci] result.map_err(|e| anyhow!(e)) } pub fn set_mock_result(result: Result<(), String>) { - let mut guard = get_mock_result().lock().unwrap(); + let mut guard = get_mock_result().lock().unwrap(); //#[allow_ci] *guard = result; } } @@ -312,7 +312,7 @@ mod tpm_tests { &self, response: Result, ) { - *self.negotiation_response.lock().unwrap() = response; + *self.negotiation_response.lock().unwrap() = response; //#[allow_ci] } async fn send_negotiation( @@ -321,7 +321,7 @@ mod tpm_tests { ) -> anyhow::Result { self.negotiation_response .lock() - .unwrap() + .unwrap() //#[allow_ci] .as_ref() .cloned() .map_err(|e| anyhow!(e.to_string())) @@ -331,7 +331,7 @@ mod tpm_tests { &self, response: Result, ) { - *self.evidence_response.lock().unwrap() = response; + *self.evidence_response.lock().unwrap() = response; //#[allow_ci] } async fn handle_evidence_submission( @@ -341,7 +341,7 @@ mod tpm_tests { ) -> anyhow::Result { self.evidence_response .lock() - .unwrap() + .unwrap() //#[allow_ci] .as_ref() .cloned() .map_err(|e| anyhow!(e.to_string())) @@ -403,7 +403,7 @@ mod tpm_tests { // Create guard that will automatically clear override when dropped let guard = keylime::config::TestConfigGuard::new(config); - let client = AttestationClient::new(neg_config).unwrap(); + let client = AttestationClient::new(neg_config).unwrap(); //#[allow_ci] // Create context with proper error handling to avoid TPM resource leaks let context_info = match ContextInfo::new( @@ -455,7 +455,7 @@ mod tpm_tests { Some(30000), ); let (mut sm, _guard) = create_test_state_machine(&neg_config); - let mut context_info = sm.context_info.clone().unwrap(); + let mut context_info = sm.context_info.clone().unwrap(); //#[allow_ci] sm.state = State::Registered(context_info.clone()); let mock_client = MockAttestationClient::default(); @@ -488,7 +488,7 @@ mod tpm_tests { Some(30000), ); let (mut sm, _guard) = create_test_state_machine(&neg_config); - let mut context_info = sm.context_info.clone().unwrap(); + let mut context_info = sm.context_info.clone().unwrap(); //#[allow_ci] sm.state = State::Registered(context_info.clone()); let mock_client = MockAttestationClient::default(); @@ -525,7 +525,7 @@ mod tpm_tests { Some(30000), ); let (mut sm, _guard) = create_test_state_machine(&neg_config); - let mut context_info = sm.context_info.clone().unwrap(); + let mut context_info = sm.context_info.clone().unwrap(); //#[allow_ci] sm.state = State::Attesting( context_info.clone(), ResponseInformation::default(), @@ -542,7 +542,7 @@ mod tpm_tests { // Verify the response is successful assert!(evidence_response.is_ok()); - let res = evidence_response.unwrap(); + let res = evidence_response.unwrap(); //#[allow_ci] assert_eq!(res.status_code, StatusCode::ACCEPTED); // After successful attestation, the state machine should transition back to Negotiating @@ -564,7 +564,7 @@ mod tpm_tests { Some(30000), ); let (mut sm, _guard) = create_test_state_machine(&neg_config); - let mut context_info = sm.context_info.clone().unwrap(); + let mut context_info = sm.context_info.clone().unwrap(); //#[allow_ci] sm.state = State::Attesting( context_info.clone(), ResponseInformation::default(), @@ -610,7 +610,7 @@ mod tpm_tests { Some(30000), ); let (mut sm, _guard) = create_test_state_machine(&neg_config); - let mut context_info = sm.context_info.clone().unwrap(); + let mut context_info = sm.context_info.clone().unwrap(); //#[allow_ci] registration::set_mock_result(Ok(())); let res = @@ -700,7 +700,7 @@ mod tpm_tests { None, ); - let attestation_client = AttestationClient::new(&neg_config).unwrap(); + let attestation_client = AttestationClient::new(&neg_config).unwrap(); //#[allow_ci] let sm = StateMachine::new( attestation_client, @@ -762,7 +762,7 @@ mod tests { Some(30000), ); let attestation_client = - AttestationClient::new(&test_config).unwrap(); + AttestationClient::new(&test_config).unwrap(); //#[allow_ci] let state_machine = StateMachine::new( attestation_client, @@ -789,7 +789,7 @@ mod tests { Some(30000), ); let attestation_client = - AttestationClient::new(&test_config).unwrap(); + AttestationClient::new(&test_config).unwrap(); //#[allow_ci] let state_machine = StateMachine::new( attestation_client, @@ -812,7 +812,7 @@ mod tests { Some(30000), ); let attestation_client = - AttestationClient::new(&test_config).unwrap(); + AttestationClient::new(&test_config).unwrap(); //#[allow_ci] let mut state_machine = StateMachine::new( attestation_client, @@ -848,7 +848,7 @@ mod tests { Some(30000), ); let attestation_client = - AttestationClient::new(&test_config).unwrap(); + AttestationClient::new(&test_config).unwrap(); //#[allow_ci] let state_machine = StateMachine::new( attestation_client, @@ -874,7 +874,7 @@ mod tests { Some(30000), ); let attestation_client = - AttestationClient::new(&test_config).unwrap(); + AttestationClient::new(&test_config).unwrap(); //#[allow_ci] let state_machine = StateMachine::new( attestation_client, @@ -897,7 +897,7 @@ mod tests { Some(30000), ); let attestation_client = - AttestationClient::new(&test_config).unwrap(); + AttestationClient::new(&test_config).unwrap(); //#[allow_ci] let state_machine = StateMachine::new( attestation_client, @@ -924,7 +924,7 @@ mod tests { Some(30000), ); let attestation_client = - AttestationClient::new(&test_config).unwrap(); + AttestationClient::new(&test_config).unwrap(); //#[allow_ci] let mut state_machine = StateMachine::new( attestation_client, @@ -955,7 +955,7 @@ mod tests { Some(30000), ); let attestation_client = - AttestationClient::new(&test_config).unwrap(); + AttestationClient::new(&test_config).unwrap(); //#[allow_ci] let mut state_machine = StateMachine::new( attestation_client, @@ -982,7 +982,7 @@ mod tests { let test_config1 = create_test_config("http://localhost", 1000, 5, 500, Some(10000)); let attestation_client1 = - AttestationClient::new(&test_config1).unwrap(); + AttestationClient::new(&test_config1).unwrap(); //#[allow_ci] let state_machine1 = StateMachine::new( attestation_client1, test_config1, @@ -997,7 +997,7 @@ mod tests { let test_config2 = create_test_config("http://localhost", 2000, 10, 1000, None); let attestation_client2 = - AttestationClient::new(&test_config2).unwrap(); + AttestationClient::new(&test_config2).unwrap(); //#[allow_ci] let state_machine2 = StateMachine::new( attestation_client2, test_config2, @@ -1020,7 +1020,7 @@ mod tests { Some(30000), ); let attestation_client = - AttestationClient::new(&test_config).unwrap(); + AttestationClient::new(&test_config).unwrap(); //#[allow_ci] let state_machine = StateMachine::new( attestation_client, @@ -1047,7 +1047,7 @@ mod tests { Some(30000), ); let attestation_client = - AttestationClient::new(&test_config).unwrap(); + AttestationClient::new(&test_config).unwrap(); //#[allow_ci] let mut state_machine = StateMachine::new( attestation_client, @@ -1079,7 +1079,7 @@ mod tests { Some(30000), ); let attestation_client = - AttestationClient::new(&test_config).unwrap(); + AttestationClient::new(&test_config).unwrap(); //#[allow_ci] let state_machine = StateMachine::new( attestation_client, diff --git a/keylime-push-model-agent/src/struct_filler.rs b/keylime-push-model-agent/src/struct_filler.rs index e1b600d2..76a9ae93 100644 --- a/keylime-push-model-agent/src/struct_filler.rs +++ b/keylime-push-model-agent/src/struct_filler.rs @@ -357,7 +357,7 @@ mod tests { let mut filler = FillerFromHardware::new(&mut context_info); let attestation_request = filler.get_attestation_request_final(); assert_eq!(attestation_request.data.type_, "attestation"); - let serialized = serde_json::to_string(&attestation_request).unwrap(); + let serialized = serde_json::to_string(&attestation_request).unwrap(); //#[allow_ci] assert!(!serialized.is_empty()); assert!(context_info.flush_context().is_ok()); } // test_attestation_request @@ -421,7 +421,7 @@ mod tests { "AK certification key should be present" ); } else { - panic!("Expected Certification evidence for tpm_quote"); + panic!("Expected Certification evidence for tpm_quote"); //#[allow_ci] } let _ = attributes.evidence_supported.iter().find(|e| { @@ -460,7 +460,7 @@ mod tests { let mut filler = FillerFromHardware::new(&mut context_info); let session_request = filler.get_session_request_final(); assert_eq!(session_request.data.data_type, "session"); - let serialized = serde_json::to_string(&session_request).unwrap(); + let serialized = serde_json::to_string(&session_request).unwrap(); //#[allow_ci] assert!(!serialized.is_empty()); assert!(context_info.flush_context().is_ok()); } // test_session_request @@ -654,7 +654,7 @@ mod tests { if let Ok(mut ctx) = context_info_result { // Create a temporary directory for testing - let temp_dir = tempfile::tempdir().unwrap(); + let temp_dir = tempfile::tempdir().unwrap(); //#[allow_ci] // Create testing configuration with non-existent measuredboot_ml_path let mut overrides = std::collections::HashMap::new(); diff --git a/keylime-push-model-agent/src/url_selector.rs b/keylime-push-model-agent/src/url_selector.rs index 4790373d..b3bf2f8f 100644 --- a/keylime-push-model-agent/src/url_selector.rs +++ b/keylime-push-model-agent/src/url_selector.rs @@ -11,7 +11,7 @@ pub struct UrlArgs { fn get_api_version(args: &UrlArgs) -> String { if args.api_version.is_some() { - return args.api_version.clone().unwrap(); + return args.api_version.clone().unwrap(); //#[allow_ci] } DEFAULT_API_VERSION.to_string() } diff --git a/tests/nopanic.ci b/tests/nopanic.ci index b0bae3f7..22a59b45 100755 --- a/tests/nopanic.ci +++ b/tests/nopanic.ci @@ -10,7 +10,7 @@ import pathlib banned = ["unwrap(", "panic!("] -toplevel = ["keylime", "keylime-agent", "keylime-ima-emulator"] +toplevel = ["keylime", "keylime-agent", "keylime-ima-emulator", "keylime-push-model-agent"] srcs = []