File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -524,6 +524,9 @@ pub fn write_codex_credentials_atomic(token: &OAuthToken) -> Result<()> {
524524mod tests {
525525 use super :: * ;
526526
527+ /// 操作环境变量的测试必须串行执行,避免竞态条件
528+ static ENV_LOCK : std:: sync:: Mutex < ( ) > = std:: sync:: Mutex :: new ( ( ) ) ;
529+
527530 #[ test]
528531 fn test_extract_jwt_exp ( ) {
529532 use base64:: Engine ;
@@ -581,7 +584,7 @@ mod tests {
581584
582585 #[ test]
583586 fn test_credential_chain_env_var ( ) {
584- // 测试 env var 优先级
587+ let _lock = ENV_LOCK . lock ( ) . unwrap ( ) ;
585588 std:: env:: set_var ( "ANTHROPIC_API_KEY" , "test-key-123" ) ;
586589 let cred = load_credential_chain ( & OAuthProvider :: Claude ) . unwrap ( ) ;
587590 assert_eq ! ( cred. access_token, "test-key-123" ) ;
@@ -591,6 +594,7 @@ mod tests {
591594
592595 #[ test]
593596 fn test_credential_chain_empty_env_skipped ( ) {
597+ let _lock = ENV_LOCK . lock ( ) . unwrap ( ) ;
594598 std:: env:: set_var ( "ANTHROPIC_API_KEY" , "" ) ;
595599 // 空值应被跳过,如果文件也不存在则报错
596600 let result = load_credential_chain ( & OAuthProvider :: Claude ) ;
You can’t perform that action at this time.
0 commit comments