comparison testharness/src/lib.rs @ 172:6727cbe56f4a

Test environment variable setting; minor cleanup.
author Paul Fisher <paul@pfish.zone>
date Fri, 25 Jul 2025 21:02:53 -0400
parents e27c5c667a5a
children 46e8ce5cd5d1
comparison
equal deleted inserted replaced
171:e27c5c667a5a 172:6727cbe56f4a
1 //! The nonstick library 1 //! The nonstick library
2 2
3 use crate::nonstick::items::ItemsMut; 3 use crate::nonstick::items::ItemsMut;
4 use crate::nonstick::EnvironMapMut;
4 use std::cell::Cell; 5 use std::cell::Cell;
5 extern crate nonstick; 6 extern crate nonstick;
6 7
7 use nonstick::conv::{ErrorMsg, InfoMsg, MaskedQAndA, QAndA}; 8 use nonstick::conv::{ErrorMsg, InfoMsg, MaskedQAndA, QAndA};
8 use nonstick::{ 9 use nonstick::{
53 Err(ErrorCode::Abort) 54 Err(ErrorCode::Abort)
54 } 55 }
55 } 56 }
56 57
57 fn account_management(handle: &mut M, _: Vec<&CStr>, _: AuthnFlags) -> nonstick::Result<()> { 58 fn account_management(handle: &mut M, _: Vec<&CStr>, _: AuthnFlags) -> nonstick::Result<()> {
58 let value: &Cell<i32> = match handle.username(None)?.as_bytes() { 59 match handle.username(None)?.as_bytes() {
59 b"initial" => return Err(ErrorCode::AccountExpired), 60 b"initial" => return Err(ErrorCode::AccountExpired),
60 b"updated-in-process" => handle.get_module_data("florgus"), 61 b"updated-in-process" => (),
61 _ => return Err(ErrorCode::UserUnknown), 62 _ => return Err(ErrorCode::UserUnknown),
62 } 63 };
63 .ok_or(ErrorCode::SessionError)?; 64 let value: &Cell<i32> = handle
65 .get_module_data("florgus")
66 .ok_or(ErrorCode::SessionError)?;
64 let florgus_str: Option<&i32> = handle.get_module_data("florgus"); 67 let florgus_str: Option<&i32> = handle.get_module_data("florgus");
65 if let Some(s) = florgus_str { 68 if let Some(s) = florgus_str {
66 error!( 69 error!(
67 handle, 70 handle,
68 "module_data type mismatch: florgus = <{s}> but should not be set" 71 "module_data type mismatch: florgus = <{s}> but should not be set"
70 } 73 }
71 if value.get() != 99 { 74 if value.get() != 99 {
72 error!(handle, "wrong value! {}", value.get()); 75 error!(handle, "wrong value! {}", value.get());
73 return Err(ErrorCode::AuthTokError); 76 return Err(ErrorCode::AuthTokError);
74 } 77 }
78 handle.environ_mut().insert("nin", "nine inch nails");
75 let password = handle.authtok(None)?; 79 let password = handle.authtok(None)?;
76 if password.as_bytes() == b"valid" { 80 if password.as_bytes() == b"valid" {
77 Err(ErrorCode::NewAuthTokRequired) 81 Err(ErrorCode::NewAuthTokRequired)
78 } else { 82 } else {
79 Ok(()) 83 Ok(())