Skip to content

Commit 51ce8c0

Browse files
committed
Add unwrap/panic detection for Push Model files
Assisted-By: Claude <[email protected]> Signed-off-by: Sergio Arroutbi <[email protected]>
1 parent 07463b8 commit 51ce8c0

File tree

9 files changed

+86
-86
lines changed

9 files changed

+86
-86
lines changed

keylime-push-model-agent/src/attestation.rs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -264,17 +264,17 @@ mod tests {
264264
let mut config = create_test_config(&uri, "", "", "");
265265
config.max_retries = 3; // Allow up to 3 retries
266266

267-
let client = AttestationClient::new(&config).unwrap();
267+
let client = AttestationClient::new(&config).unwrap(); //#[allow_ci]
268268
let result = client.send_negotiation(&config).await;
269269

270270
// The final request should be successful
271271
assert!(result.is_ok());
272-
let response = result.unwrap();
272+
let response = result.unwrap(); //#[allow_ci]
273273
assert_eq!(response.status_code, StatusCode::CREATED);
274274

275275
// The server should have received 3 requests in total (2 failures + 1 success)
276276
let received_requests =
277-
mock_server.received_requests().await.unwrap();
277+
mock_server.received_requests().await.unwrap(); //#[allow_ci]
278278
assert_eq!(received_requests.len(), 3);
279279
}
280280

@@ -283,12 +283,12 @@ mod tests {
283283
let negotiation_config =
284284
create_test_config("http://127.0.0.1:9999/test", "", "", "");
285285

286-
let client = AttestationClient::new(&negotiation_config).unwrap();
286+
let client = AttestationClient::new(&negotiation_config).unwrap(); //#[allow_ci]
287287
let result =
288288
client.send_negotiation(&negotiation_config.clone()).await;
289289

290290
assert!(result.is_err());
291-
let err_msg = result.unwrap_err().to_string();
291+
let err_msg = result.unwrap_err().to_string(); //#[allow_ci]
292292
assert!(err_msg.contains("error sending request"));
293293
}
294294

@@ -304,32 +304,32 @@ mod tests {
304304
let client_result = AttestationClient::new(&config);
305305

306306
assert!(client_result.is_err());
307-
let err_msg = client_result.unwrap_err().to_string();
307+
let err_msg = client_result.unwrap_err().to_string(); //#[allow_ci]
308308
assert!(err_msg.contains("Failed to open"));
309309
}
310310

311311
#[actix_rt::test]
312312
async fn test_send_negotiation_bad_certs() {
313-
let temp_dir = tempdir().unwrap();
313+
let temp_dir = tempdir().unwrap(); //#[allow_ci]
314314
let ca_path = temp_dir.path().join("ca.pem");
315315
let cert_path = temp_dir.path().join("cert.pem");
316316
let key_path = temp_dir.path().join("key.pem");
317317

318-
File::create(&ca_path).unwrap();
319-
File::create(&cert_path).unwrap();
320-
File::create(&key_path).unwrap();
318+
File::create(&ca_path).unwrap(); //#[allow_ci]
319+
File::create(&cert_path).unwrap(); //#[allow_ci]
320+
File::create(&key_path).unwrap(); //#[allow_ci]
321321

322322
let config = create_test_config(
323323
"https://1.2.3.4:9999/test",
324-
ca_path.to_str().unwrap(),
325-
cert_path.to_str().unwrap(),
326-
key_path.to_str().unwrap(),
324+
ca_path.to_str().unwrap(), //#[allow_ci]
325+
cert_path.to_str().unwrap(), //#[allow_ci]
326+
key_path.to_str().unwrap(), //#[allow_ci]
327327
);
328328

329329
let client_result = AttestationClient::new(&config);
330330

331331
assert!(client_result.is_err());
332-
let err_msg = client_result.unwrap_err().to_string();
332+
let err_msg = client_result.unwrap_err().to_string(); //#[allow_ci]
333333
assert!(err_msg.to_lowercase().contains("certificate"));
334334
}
335335

@@ -344,15 +344,15 @@ mod tests {
344344
"", "", "",
345345
);
346346

347-
let client = AttestationClient::new(&config).unwrap();
347+
let client = AttestationClient::new(&config).unwrap(); //#[allow_ci]
348348
let result = client.send_negotiation(&config).await;
349349

350350
assert!(
351351
result.is_ok(),
352352
"Request to mockoon failed: {:?}",
353353
result.err()
354354
);
355-
let response_info = result.unwrap();
355+
let response_info = result.unwrap(); //#[allow_ci]
356356
assert_eq!(
357357
response_info.status_code,
358358
StatusCode::CREATED,
@@ -365,7 +365,7 @@ mod tests {
365365
#[actix_rt::test]
366366
async fn test_handle_evidence_submission_no_location_header() {
367367
let config = create_test_config("http://localhost:3000", "", "", "");
368-
let client = AttestationClient::new(&config).unwrap();
368+
let client = AttestationClient::new(&config).unwrap(); //#[allow_ci]
369369

370370
// Create a response with no Location header
371371
let neg_response = ResponseInformation {
@@ -380,7 +380,7 @@ mod tests {
380380

381381
assert!(result.is_err());
382382
assert!(result
383-
.unwrap_err()
383+
.unwrap_err() //#[allow_ci]
384384
.to_string()
385385
.contains("missing 'Location' header"));
386386
}
@@ -408,19 +408,19 @@ mod tests {
408408
let config = create_test_config(&uri, "", "", "");
409409

410410
// Create the client
411-
let client = AttestationClient::new(&config).unwrap();
411+
let client = AttestationClient::new(&config).unwrap(); //#[allow_ci]
412412

413413
let result =
414414
client.send_evidence(single_serialized_body, &config).await;
415415

416416
// Assertions
417417
assert!(result.is_ok(), "send_evidence should succeed");
418-
let response = result.unwrap();
418+
let response = result.unwrap(); //#[allow_ci]
419419
assert_eq!(response.status_code, StatusCode::ACCEPTED);
420420

421421
// Verify that the mock server received exactly one request.
422422
let received_requests =
423-
mock_server.received_requests().await.unwrap();
423+
mock_server.received_requests().await.unwrap(); //#[allow_ci]
424424
assert_eq!(received_requests.len(), 1);
425425
}
426426
}

keylime-push-model-agent/src/auth.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,7 @@ mod tests {
460460
max_auth_retries: 2,
461461
};
462462

463-
AuthenticationClient::new(config).unwrap()
463+
AuthenticationClient::new(config).unwrap() //#[allow_ci]
464464
}
465465

466466
#[tokio::test]
@@ -532,14 +532,14 @@ mod tests {
532532
let client = create_test_client(&mock_server.uri()).await;
533533

534534
// Test authentication
535-
let token = client.get_auth_token().await.unwrap();
535+
let token = client.get_auth_token().await.unwrap(); //#[allow_ci]
536536
assert_eq!(token, "test-token-456");
537537

538538
// Test that token is cached
539539
assert!(client.has_valid_token().await);
540540

541541
// Test that subsequent calls use cached token
542-
let token2 = client.get_auth_token().await.unwrap();
542+
let token2 = client.get_auth_token().await.unwrap(); //#[allow_ci]
543543
assert_eq!(token2, "test-token-456");
544544
}
545545

@@ -610,7 +610,7 @@ mod tests {
610610
let result = client.get_auth_token().await;
611611
assert!(result.is_err());
612612
assert!(result
613-
.unwrap_err()
613+
.unwrap_err() //#[allow_ci]
614614
.to_string()
615615
.contains("Authentication failed"));
616616
}
@@ -691,11 +691,11 @@ mod tests {
691691
max_auth_retries: 2,
692692
};
693693

694-
let client = AuthenticationClient::new(config).unwrap();
694+
let client = AuthenticationClient::new(config).unwrap(); //#[allow_ci]
695695

696696
// Since token expires in 1 minute but we have 5 minute buffer,
697697
// it should be considered invalid and trigger re-authentication
698-
let token = client.get_auth_token().await.unwrap();
698+
let token = client.get_auth_token().await.unwrap(); //#[allow_ci]
699699
assert_eq!(token, "short-lived-token");
700700

701701
// Check that token is considered invalid due to buffer

keylime-push-model-agent/src/context_info_handler.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ mod tests {
9898
let context_res = get_context_info(AVOID_TPM);
9999
assert!(context_res.is_ok());
100100
assert!(
101-
context_res.unwrap().is_none(),
101+
context_res.unwrap().is_none(), //#[allow_ci]
102102
"Context should be None when TPM is avoided"
103103
);
104104
}

keylime-push-model-agent/src/registration.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pub async fn check_registration(
1212
context_info: Option<context_info::ContextInfo>,
1313
) -> Result<()> {
1414
if context_info.is_some() {
15-
crate::registration::register_agent(&mut context_info.unwrap())
15+
crate::registration::register_agent(&mut context_info.unwrap()) //#[allow_ci]
1616
.await?;
1717
}
1818
Ok(())

keylime-push-model-agent/src/response_handler.rs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ mod tests {
287287
fn test_process_negotiation_response_with_all_evidence_types() {
288288
let result = process_negotiation_response(VALID_RESPONSE_BODY);
289289
assert!(result.is_ok(), "Parsing a valid response should succeed");
290-
let evidence_requests = result.unwrap();
290+
let evidence_requests = result.unwrap(); //#[allow_ci]
291291

292292
assert_eq!(evidence_requests.len(), 3);
293293

@@ -303,20 +303,20 @@ mod tests {
303303
assert_eq!(signature_scheme, "rsassa");
304304
assert_eq!(hash_algorithm, "sha384");
305305
let empty_sha1: Vec<u32> = vec![];
306-
assert_eq!(selected_subjects.get("sha1").unwrap(), &empty_sha1);
306+
assert_eq!(selected_subjects.get("sha1").unwrap(), &empty_sha1); //#[allow_ci]
307307
assert_eq!(
308-
selected_subjects.get("sha256").unwrap(),
308+
selected_subjects.get("sha256").unwrap(), //#[allow_ci]
309309
&vec![0, 1, 2, 3, 4, 5, 6]
310310
);
311311
} else {
312-
panic!("Expected TpmQuote request");
312+
panic!("Expected TpmQuote request"); //#[allow_ci]
313313
}
314314

315315
// Check UefiLog request
316316
if let EvidenceRequest::UefiLog { .. } = &evidence_requests[1] {
317317
// UefiLog request found
318318
} else {
319-
panic!("Expected UefiLog request");
319+
panic!("Expected UefiLog request"); //#[allow_ci]
320320
}
321321

322322
// Check ImaLog request
@@ -329,7 +329,7 @@ mod tests {
329329
assert_eq!(*starting_offset, Some(3925));
330330
assert_eq!(*entry_count, Some(100));
331331
} else {
332-
panic!("Expected ImaLog request");
332+
panic!("Expected ImaLog request"); //#[allow_ci]
333333
}
334334
}
335335

@@ -338,7 +338,7 @@ mod tests {
338338
// Test with only TPM quote - should succeed
339339
let result = process_negotiation_response(RESPONSE_ONLY_TPM_QUOTE);
340340
assert!(result.is_ok());
341-
let evidence_requests = result.unwrap();
341+
let evidence_requests = result.unwrap(); //#[allow_ci]
342342
assert_eq!(evidence_requests.len(), 1);
343343
assert!(matches!(
344344
evidence_requests[0],
@@ -348,7 +348,7 @@ mod tests {
348348
// Test with only IMA log - should succeed
349349
let result = process_negotiation_response(RESPONSE_ONLY_IMA_LOG);
350350
assert!(result.is_ok());
351-
let evidence_requests = result.unwrap();
351+
let evidence_requests = result.unwrap(); //#[allow_ci]
352352
assert_eq!(evidence_requests.len(), 1);
353353
assert!(matches!(
354354
evidence_requests[0],
@@ -358,7 +358,7 @@ mod tests {
358358
// Test with only UEFI log - should succeed
359359
let result = process_negotiation_response(RESPONSE_ONLY_UEFI_LOG);
360360
assert!(result.is_ok());
361-
let evidence_requests = result.unwrap();
361+
let evidence_requests = result.unwrap(); //#[allow_ci]
362362
assert_eq!(evidence_requests.len(), 1);
363363
assert!(matches!(
364364
evidence_requests[0],
@@ -390,7 +390,7 @@ mod tests {
390390
fn test_set_evidence_log_paths() {
391391
let result = process_negotiation_response(VALID_RESPONSE_BODY);
392392
assert!(result.is_ok());
393-
let mut evidence_requests = result.unwrap();
393+
let mut evidence_requests = result.unwrap(); //#[allow_ci]
394394

395395
// Initially, log paths should be None
396396
for request in &evidence_requests {
@@ -417,13 +417,13 @@ mod tests {
417417
match request {
418418
EvidenceRequest::ImaLog { log_path, .. } => {
419419
assert_eq!(
420-
log_path.as_ref().unwrap(),
420+
log_path.as_ref().unwrap(), //#[allow_ci]
421421
"/path/to/ima.log"
422422
);
423423
}
424424
EvidenceRequest::UefiLog { log_path, .. } => {
425425
assert_eq!(
426-
log_path.as_ref().unwrap(),
426+
log_path.as_ref().unwrap(), //#[allow_ci]
427427
"/path/to/uefi.log"
428428
);
429429
}
@@ -441,7 +441,7 @@ mod tests {
441441
);
442442

443443
assert!(evidence_requests.is_ok());
444-
let requests = evidence_requests.unwrap();
444+
let requests = evidence_requests.unwrap(); //#[allow_ci]
445445
assert_eq!(requests.len(), 3);
446446

447447
// Verify the TPM quote request
@@ -456,14 +456,14 @@ mod tests {
456456
assert_eq!(signature_scheme, "rsassa");
457457
assert_eq!(hash_algorithm, "sha384");
458458
} else {
459-
panic!("Expected first request to be TPM quote");
459+
panic!("Expected first request to be TPM quote"); //#[allow_ci]
460460
}
461461

462462
// Verify the UEFI log request has the path set
463463
if let EvidenceRequest::UefiLog { log_path, .. } = &requests[1] {
464-
assert_eq!(log_path.as_ref().unwrap(), "/path/to/uefi.log");
464+
assert_eq!(log_path.as_ref().unwrap(), "/path/to/uefi.log"); //#[allow_ci]
465465
} else {
466-
panic!("Expected second request to be UEFI log");
466+
panic!("Expected second request to be UEFI log"); //#[allow_ci]
467467
}
468468

469469
// Verify the IMA log request has the path set
@@ -473,10 +473,10 @@ mod tests {
473473
..
474474
} = &requests[2]
475475
{
476-
assert_eq!(log_path.as_ref().unwrap(), "/path/to/ima.log");
476+
assert_eq!(log_path.as_ref().unwrap(), "/path/to/ima.log"); //#[allow_ci]
477477
assert_eq!(*starting_offset, Some(3925));
478478
} else {
479-
panic!("Expected third request to be IMA log");
479+
panic!("Expected third request to be IMA log"); //#[allow_ci]
480480
}
481481
}
482482
}

0 commit comments

Comments
 (0)