Fix build and tests for uptime on OpenBSD (#9158)

* uptime: fix build errors on OpenBSD

Signed-off-by: Laurent Cheylus <foxy@free.fr>

* tests: fix error for uptime on OpenBSD

Signed-off-by: Laurent Cheylus <foxy@free.fr>

---------

Signed-off-by: Laurent Cheylus <foxy@free.fr>
This commit is contained in:
Laurent Cheylus
2025-11-07 19:07:15 +01:00
committed by GitHub
parent c39b4f1509
commit ad1bac4c92
3 changed files with 15 additions and 20 deletions
+1 -1
View File
@@ -168,7 +168,7 @@ fn uptime_with_file(file_path: &OsString) -> UResult<()> {
#[cfg(target_os = "openbsd")]
{
let upsecs = get_uptime(None);
let upsecs = get_uptime(None)?;
if upsecs >= 0 {
print_uptime(Some(upsecs))?;
} else {
+14 -18
View File
@@ -75,7 +75,7 @@ pub fn get_uptime(_boot_time: Option<time_t>) -> UResult<i64> {
Ok(uptime)
} else {
Err(UptimeError::SystemUptime)
Err(UptimeError::SystemUptime)?
}
}
@@ -213,27 +213,23 @@ pub fn get_nusers() -> usize {
pub fn get_nusers(file: &str) -> usize {
use utmp_classic::{UtmpEntry, parse_from_path};
let mut nusers = 0;
let entries = match parse_from_path(file) {
Some(e) => e,
None => return 0,
Ok(e) => e,
Err(_) => return 0,
};
for entry in entries {
if let UtmpEntry::UTMP {
line: _,
user,
host: _,
time: _,
} = entry
{
if !user.is_empty() {
nusers += 1;
}
}
if entries.is_empty() {
return 0;
}
nusers
// Count entries that have a non-empty user field
entries
.iter()
.filter_map(|entry| match entry {
UtmpEntry::UTMP { user, .. } if !user.is_empty() => Some(()),
_ => None,
})
.count()
}
/// Get the number of users currently logged in
-1
View File
@@ -6,7 +6,6 @@
// spell-checker:ignore bincode serde utmp runlevel testusr testx
#![allow(clippy::cast_possible_wrap, clippy::unreadable_literal)]
#[cfg(not(target_os = "openbsd"))]
use uutests::at_and_ucmd;
use uutests::util::TestScenario;
use uutests::{new_ucmd, util_name};