Skip to content

Commit 5652044

Browse files
committed
uucore: introduce IS_POSIXLY_CORRECT static
1 parent 0bef880 commit 5652044

2 files changed

Lines changed: 6 additions & 46 deletions

File tree

src/uu/df/src/blocks.rs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,6 @@ impl fmt::Display for BlockSize {
199199

200200
#[cfg(test)]
201201
mod tests {
202-
203-
use std::env;
204-
205202
use crate::blocks::{BlockSize, SuffixType, to_magnitude_and_suffix};
206203

207204
#[test]
@@ -367,12 +364,4 @@ mod tests {
367364
assert_eq!(format!("{}", BlockSize::Bytes(1000 * 1024)), "1.1MB");
368365
assert_eq!(format!("{}", BlockSize::Bytes(1_000_000_000_000)), "1.0TB");
369366
}
370-
371-
#[test]
372-
fn test_default_block_size() {
373-
assert_eq!(BlockSize::Bytes(1024), BlockSize::default());
374-
unsafe { env::set_var("POSIXLY_CORRECT", "1") };
375-
assert_eq!(BlockSize::Bytes(512), BlockSize::default());
376-
unsafe { env::remove_var("POSIXLY_CORRECT") };
377-
}
378367
}

src/uucore/src/lib/features/parser/parse_block_size.rs

Lines changed: 6 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
//! for resolving block sizes from environment variables and defaults.
1010
//! This module centralizes that logic.
1111
12+
use std::sync::LazyLock;
13+
1214
use super::parse_size::parse_size_non_zero_u64;
1315

1416
/// Result of looking up a block size from environment variables.
@@ -66,13 +68,12 @@ pub fn block_size_from_env(vars: &[&str]) -> BlockSizeEnv {
6668
///
6769
/// Returns 512 if `POSIXLY_CORRECT` is set, 1024 otherwise.
6870
pub fn default_block_size() -> u64 {
69-
if std::env::var("POSIXLY_CORRECT").is_ok() {
70-
512
71-
} else {
72-
1024
73-
}
71+
if *IS_POSIXLY_CORRECT { 512 } else { 1024 }
7472
}
7573

74+
static IS_POSIXLY_CORRECT: LazyLock<bool> =
75+
LazyLock::new(|| std::env::var_os("POSIXLY_CORRECT").is_some());
76+
7677
#[cfg(test)]
7778
mod tests {
7879
use super::*;
@@ -344,34 +345,4 @@ mod tests {
344345

345346
clear_env_vars(&["BLOCKSIZE"]);
346347
}
347-
348-
#[test]
349-
fn test_default_block_size_without_posixly_correct() {
350-
let _guard = ENV_LOCK.lock().unwrap();
351-
clear_env_vars(&["POSIXLY_CORRECT"]);
352-
assert_eq!(default_block_size(), 1024);
353-
}
354-
355-
#[test]
356-
fn test_default_block_size_with_posixly_correct() {
357-
let _guard = ENV_LOCK.lock().unwrap();
358-
clear_env_vars(&["POSIXLY_CORRECT"]);
359-
360-
set_env_var("POSIXLY_CORRECT", "1");
361-
assert_eq!(default_block_size(), 512);
362-
363-
clear_env_vars(&["POSIXLY_CORRECT"]);
364-
}
365-
366-
#[test]
367-
fn test_default_block_size_with_posixly_correct_empty() {
368-
let _guard = ENV_LOCK.lock().unwrap();
369-
clear_env_vars(&["POSIXLY_CORRECT"]);
370-
371-
// Even an empty value means POSIXLY_CORRECT is set
372-
set_env_var("POSIXLY_CORRECT", "");
373-
assert_eq!(default_block_size(), 512);
374-
375-
clear_env_vars(&["POSIXLY_CORRECT"]);
376-
}
377348
}

0 commit comments

Comments
 (0)