mirror of
https://github.com/systemd/systemd
synced 2024-09-06 16:56:43 +00:00
TEST-74-AUX-UTILS: Make sure at least two locales exist
This commit is contained in:
parent
8c9d241c55
commit
a2190c22b8
|
@ -28,31 +28,6 @@ EOF
|
|||
systemctl daemon-reload
|
||||
}
|
||||
|
||||
restore_locale() {
|
||||
if [[ -d /usr/lib/locale/xx_XX.UTF-8 ]]; then
|
||||
rmdir /usr/lib/locale/xx_XX.UTF-8
|
||||
fi
|
||||
|
||||
if [[ -f /tmp/locale.conf.bak ]]; then
|
||||
mv /tmp/locale.conf.bak /etc/locale.conf
|
||||
else
|
||||
rm -f /etc/locale.conf
|
||||
fi
|
||||
|
||||
if [[ -f /tmp/default-locale.bak ]]; then
|
||||
mv /tmp/default-locale.bak /etc/default/locale
|
||||
else
|
||||
rm -f /etc/default/locale
|
||||
rmdir --ignore-fail-on-non-empty /etc/default
|
||||
fi
|
||||
|
||||
if [[ -f /tmp/locale.gen.bak ]]; then
|
||||
mv /tmp/locale.gen.bak /etc/locale.gen
|
||||
else
|
||||
rm -f /etc/locale.gen
|
||||
fi
|
||||
}
|
||||
|
||||
testcase_locale() {
|
||||
local i output
|
||||
|
||||
|
@ -77,13 +52,8 @@ testcase_locale() {
|
|||
mkdir -p /etc/default
|
||||
|
||||
trap restore_locale RETURN
|
||||
|
||||
if command -v locale-gen >/dev/null 2>&1 &&
|
||||
! localectl list-locales | grep -F "en_US.UTF-8"; then
|
||||
# ensure at least one utf8 locale exist
|
||||
echo "en_US.UTF-8 UTF-8" >/etc/locale.gen
|
||||
locale-gen en_US.UTF-8
|
||||
fi
|
||||
# Ensure at least one UTF-8 locale exists.
|
||||
generate_locale en_US.UTF-8
|
||||
|
||||
# create invalid locale
|
||||
mkdir -p /usr/lib/locale/xx_XX.UTF-8
|
||||
|
|
|
@ -3,6 +3,9 @@
|
|||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
# shellcheck source=test/units/util.sh
|
||||
. "$(dirname "$0")"/util.sh
|
||||
|
||||
if ! command -v systemd-firstboot >/dev/null; then
|
||||
echo "systemd-firstboot not found, skipping the test"
|
||||
exit 0
|
||||
|
@ -13,6 +16,8 @@ at_exit() {
|
|||
ls -lR "$ROOT"
|
||||
rm -fr "$ROOT"
|
||||
fi
|
||||
|
||||
restore_locale
|
||||
}
|
||||
|
||||
trap at_exit EXIT
|
||||
|
@ -24,6 +29,23 @@ ROOT_HASHED_PASSWORD1='$6$foobarsalt$YbwdaATX6IsFxvWbY3QcZj2gB31R/LFRFrjlFrJtTTq
|
|||
# shellcheck disable=SC2016
|
||||
ROOT_HASHED_PASSWORD2='$6$foobarsalt$q.P2932zYMLbKnjFwIxPI8y3iuxeuJ2BgE372LcZMMnj3Gcg/9mJg2LPKUl.ha0TG/.fRNNnRQcLfzM0SNot3.'
|
||||
|
||||
if [[ -f /etc/locale.conf ]]; then
|
||||
cp /etc/locale.conf /tmp/locale.conf.bak
|
||||
fi
|
||||
|
||||
# Debian/Ubuntu specific file
|
||||
if [[ -f /etc/default/locale ]]; then
|
||||
cp /etc/default/locale /tmp/default-locale.bak
|
||||
fi
|
||||
|
||||
if [[ -f /etc/locale.gen ]]; then
|
||||
cp /etc/locale.gen /tmp/locale.gen.bak
|
||||
fi
|
||||
|
||||
# Make sure at least two locales exist (C.UTF-8 and en_US.UTF-8) as systemd-firstboot --prompt-locale will
|
||||
# skip writing the locale if it detects only one is installed.
|
||||
generate_locale en_US.UTF-8
|
||||
|
||||
# Debian and Ubuntu use /etc/default/locale instead of /etc/locale.conf. Make
|
||||
# sure we use the appropriate path for locale configuration.
|
||||
LOCALE_PATH="/etc/locale.conf"
|
||||
|
|
|
@ -345,3 +345,36 @@ EOF
|
|||
echo -e "[Unit]\nUpholds=foo.service" >"$initdir/usr/lib/systemd/system/multi-user.target.d/10-foo-service.conf"
|
||||
mksquashfs "$initdir" /tmp/app-reload.raw -noappend
|
||||
}
|
||||
|
||||
restore_locale() {
|
||||
if [[ -d /usr/lib/locale/xx_XX.UTF-8 ]]; then
|
||||
rmdir /usr/lib/locale/xx_XX.UTF-8
|
||||
fi
|
||||
|
||||
if [[ -f /tmp/locale.conf.bak ]]; then
|
||||
mv /tmp/locale.conf.bak /etc/locale.conf
|
||||
else
|
||||
rm -f /etc/locale.conf
|
||||
fi
|
||||
|
||||
if [[ -f /tmp/default-locale.bak ]]; then
|
||||
mv /tmp/default-locale.bak /etc/default/locale
|
||||
else
|
||||
rm -rf /etc/default
|
||||
fi
|
||||
|
||||
if [[ -f /tmp/locale.gen.bak ]]; then
|
||||
mv /tmp/locale.gen.bak /etc/locale.gen
|
||||
else
|
||||
rm -f /etc/locale.gen
|
||||
fi
|
||||
}
|
||||
|
||||
generate_locale() {
|
||||
local locale="${1:?}"
|
||||
|
||||
if command -v locale-gen >/dev/null && ! localectl list-locales | grep -F "$locale"; then
|
||||
echo "$locale UTF-8" >/etc/locale.gen
|
||||
locale-gen "$locale"
|
||||
fi
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue