diff testharness/src/bin/testharness.rs @ 166:2f5913131295

Separate flag/action flags into flags and action. This also individualizes the type of flag for each PAM function, so that you can only call a function with the right flags and values.
author Paul Fisher <paul@pfish.zone>
date Tue, 15 Jul 2025 00:32:24 -0400
parents a75a66cb4181
children 0cabe7b94a4f
line wrap: on
line diff
--- a/testharness/src/bin/testharness.rs	Mon Jul 14 18:56:55 2025 -0400
+++ b/testharness/src/bin/testharness.rs	Tue Jul 15 00:32:24 2025 -0400
@@ -3,7 +3,9 @@
 use nonstick::conv::Exchange;
 use nonstick::items::Items;
 use nonstick::libpam::TransactionBuilder;
-use nonstick::{Conversation, ErrorCode, Flags, LibPamTransaction, PamShared, Transaction};
+use nonstick::{
+    AuthnFlags, AuthtokFlags, Conversation, ErrorCode, LibPamTransaction, PamShared, Transaction,
+};
 use std::cell::Cell;
 use std::ffi::OsString;
 use std::os::unix::ffi::OsStrExt;
@@ -93,7 +95,7 @@
         ..Default::default()
     };
     let mut tx = harness.start();
-    let auth = tx.authenticate(Flags::empty());
+    let auth = tx.authenticate(AuthnFlags::empty());
     assert_eq!(auth, Err(ErrorCode::UserUnknown));
 }
 
@@ -103,19 +105,20 @@
         ..Default::default()
     };
     let mut tx = harness.start();
-    let auth = tx.authenticate(Flags::empty());
+    let auth = tx.authenticate(AuthnFlags::empty());
     assert_eq!(auth, Err(ErrorCode::AuthenticationError));
 }
 
 fn test_correct() {
     let harness = TestHarness::default();
     let mut tx = harness.start();
-    tx.authenticate(Flags::empty()).unwrap();
+    tx.authenticate(AuthnFlags::empty()).unwrap();
     assert_eq!(tx.items().user().unwrap().unwrap(), "updated-in-process");
-    let result = tx.account_management(Flags::empty());
+    let result = tx.account_management(AuthnFlags::empty());
     assert_eq!(result, Err(ErrorCode::NewAuthTokRequired));
     harness.changing_password.set(true);
-    let change = tx.change_authtok(Flags::CHANGE_EXPIRED_AUTHTOK);
+    let change = tx.change_authtok(AuthtokFlags::CHANGE_EXPIRED_AUTHTOK);
     assert_eq!(change, Err(ErrorCode::TryAgain));
-    tx.change_authtok(Flags::CHANGE_EXPIRED_AUTHTOK).unwrap();
+    tx.change_authtok(AuthtokFlags::CHANGE_EXPIRED_AUTHTOK)
+        .unwrap();
 }