From 18e4ddaf4b72334cccbebc43b8ce7b5690ab86bd Mon Sep 17 00:00:00 2001 From: Marc Schoolderman Date: Tue, 9 Dec 2025 18:08:09 +0100 Subject: [PATCH] add integration test for gettext support --- .../sudo-compliance-tests/src/sudo/misc.rs | 18 ++++++++++++++++++ .../src/sudo/misc/install-po.sh | 17 +++++++++++++++++ .../sudo-test/src/ours.linux.Dockerfile | 2 +- .../sudo-test/src/theirs.linux.Dockerfile | 2 +- 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 test-framework/sudo-compliance-tests/src/sudo/misc/install-po.sh diff --git a/test-framework/sudo-compliance-tests/src/sudo/misc.rs b/test-framework/sudo-compliance-tests/src/sudo/misc.rs index b7d7b1153..721fdd676 100644 --- a/test-framework/sudo-compliance-tests/src/sudo/misc.rs +++ b/test-framework/sudo-compliance-tests/src/sudo/misc.rs @@ -400,3 +400,21 @@ fn rootpw_takes_priority_over_targetpw() { .output(&env); assert!(!output.status().success()); } + +#[cfg(target_os = "linux")] +#[test] +fn tish_you_spoke_french() { + let env = Env("") + .file("/tmp/install-po.sh", include_str!("misc/install-po.sh")) + .build(); + + let _ = Command::new("sh").arg("/tmp/install-po.sh").output(&env); + + let output = Command::new("env") + .arg("LANG=fy_NL.utf8") + .args(["sudo", "true"]) + .output(&env); + + output.assert_exit_code(1); + assert_contains!(output.stderr(), "twadde weach"); +} diff --git a/test-framework/sudo-compliance-tests/src/sudo/misc/install-po.sh b/test-framework/sudo-compliance-tests/src/sudo/misc/install-po.sh new file mode 100644 index 000000000..3d0d83153 --- /dev/null +++ b/test-framework/sudo-compliance-tests/src/sudo/misc/install-po.sh @@ -0,0 +1,17 @@ +#! /bin/sh + +mkdir -p /usr/share/locale/fy/LC_MESSAGES/ + +msgfmt - -o /usr/share/locale/fy/LC_MESSAGES/sudoers.mo <