update to new post-install script
This commit is contained in:
@@ -0,0 +1,168 @@
|
||||
#!/usr/bin/env bash
|
||||
set -u -o pipefail
|
||||
|
||||
TEST_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
source "${TEST_ROOT}/tests/testlib.sh"
|
||||
source "${TEST_ROOT}/inc/post-install.inc"
|
||||
|
||||
POST_TEST_ROOT="$(mktemp -d /tmp/tapm-post-install.XXXXXX)"
|
||||
TAPM_HOST_ROOT="$POST_TEST_ROOT"
|
||||
|
||||
cleanup_post_install_tests() {
|
||||
if [[ "$POST_TEST_ROOT" == /tmp/tapm-post-install.* &&
|
||||
-d "$POST_TEST_ROOT" ]]; then
|
||||
rm -rf -- "$POST_TEST_ROOT"
|
||||
fi
|
||||
}
|
||||
trap cleanup_post_install_tests EXIT
|
||||
|
||||
mkdir -p \
|
||||
"${POST_TEST_ROOT}/etc/apt/apt.conf.d" \
|
||||
"${POST_TEST_ROOT}/etc/systemd" \
|
||||
"${POST_TEST_ROOT}/etc/logrotate.d" \
|
||||
"${POST_TEST_ROOT}/etc/sysctl.d" \
|
||||
"${POST_TEST_ROOT}/etc/network" \
|
||||
"${POST_TEST_ROOT}/etc" \
|
||||
"${POST_TEST_ROOT}/bin"
|
||||
|
||||
printf 'Acquire::Languages "none";\n' \
|
||||
>"${POST_TEST_ROOT}/etc/apt/apt.conf.d/99-disable-translations"
|
||||
assert_success "ProxMenux APT language setting recognized" \
|
||||
TAPM_POST_EXACT_APT_LANGUAGES
|
||||
|
||||
printf 'Acquire::Languages "en";\n' \
|
||||
>"${POST_TEST_ROOT}/etc/apt/apt.conf.d/99-disable-translations"
|
||||
assert_failure "custom APT language setting preserved" \
|
||||
TAPM_POST_EXACT_APT_LANGUAGES
|
||||
|
||||
cat >"${POST_TEST_ROOT}/etc/systemd/journald.conf" <<'EOF'
|
||||
[Journal]
|
||||
Storage=persistent
|
||||
Seal=no
|
||||
SystemMaxUse=64M
|
||||
RuntimeMaxUse=60M
|
||||
MaxLevelStore=info
|
||||
EOF
|
||||
assert_success "ProxMenux journald replacement recognized" \
|
||||
TAPM_POST_PROXMENUX_JOURNALD
|
||||
|
||||
cat >"${POST_TEST_ROOT}/etc/logrotate.conf" <<'EOF'
|
||||
# ProxMenux optimized configuration (Log2RAM-friendly)
|
||||
daily
|
||||
rotate 7
|
||||
size 10M
|
||||
copytruncate
|
||||
include /etc/logrotate.d
|
||||
EOF
|
||||
assert_success "ProxMenux logrotate replacement recognized" \
|
||||
TAPM_POST_PROXMENUX_LOGROTATE
|
||||
|
||||
cat >"${POST_TEST_ROOT}/bin/gzip" <<'EOF'
|
||||
#!/bin/sh
|
||||
GZIP="-1"
|
||||
exec /usr/bin/pigz "$@"
|
||||
EOF
|
||||
cat >"${POST_TEST_ROOT}/bin/gzip.original" <<'EOF'
|
||||
#!/bin/sh
|
||||
if [ "${1:-}" = "--version" ]; then
|
||||
printf 'gzip 1.13\n'
|
||||
else
|
||||
cat
|
||||
fi
|
||||
EOF
|
||||
cp "${POST_TEST_ROOT}/bin/gzip" "${POST_TEST_ROOT}/bin/pigzwrapper"
|
||||
chmod 0755 \
|
||||
"${POST_TEST_ROOT}/bin/gzip" \
|
||||
"${POST_TEST_ROOT}/bin/gzip.original" \
|
||||
"${POST_TEST_ROOT}/bin/pigzwrapper"
|
||||
assert_success "ProxMenux gzip wrapper recognized" \
|
||||
TAPM_POST_PROXMENUX_GZIP_WRAPPER
|
||||
assert_success "ProxMenux gzip wrapper repaired from valid original" \
|
||||
TAPM_POST_REPAIR_GZIP
|
||||
assert_failure "repaired gzip is no longer recognized as wrapper" \
|
||||
TAPM_POST_PROXMENUX_GZIP_WRAPPER
|
||||
assert_failure "obsolete gzip original removed after verification" \
|
||||
test -e "${POST_TEST_ROOT}/bin/gzip.original"
|
||||
|
||||
assert_success "kernel panic profile written" TAPM_POST_CONFIGURE_PANIC
|
||||
assert_success "inotify profile written" TAPM_POST_CONFIGURE_LIMITS
|
||||
assert_success "memory profile written" TAPM_POST_CONFIGURE_MEMORY
|
||||
assert_success "network profile written" TAPM_POST_CONFIGURE_NETWORK
|
||||
assert_success "BBR profile written" TAPM_POST_CONFIGURE_BBR
|
||||
assert_equal 30 \
|
||||
"$(awk '/kernel.panic =/ {print $3}' \
|
||||
"${POST_TEST_ROOT}/etc/sysctl.d/99-ta-proxmenu-kernel-panic.conf")" \
|
||||
"kernel panic delay"
|
||||
assert_equal 524288 \
|
||||
"$(awk '/max_user_watches/ {print $3}' \
|
||||
"${POST_TEST_ROOT}/etc/sysctl.d/99-ta-proxmenu-limits.conf")" \
|
||||
"inotify watch limit"
|
||||
assert_equal 10 \
|
||||
"$(awk '/vm.swappiness/ {print $3}' \
|
||||
"${POST_TEST_ROOT}/etc/sysctl.d/99-ta-proxmenu-memory.conf")" \
|
||||
"host swappiness"
|
||||
|
||||
cat >"${POST_TEST_ROOT}/etc/vzdump.conf" <<'EOF'
|
||||
# existing setting
|
||||
bwlimit: 50000
|
||||
pigz: 4
|
||||
pigz: 8
|
||||
EOF
|
||||
assert_success "vzdump key replacement" \
|
||||
TAPM_POST_SET_COLON_KEY /etc/vzdump.conf pigz 1
|
||||
assert_equal 1 \
|
||||
"$(awk -F: '/^pigz:/ {gsub(/[[:space:]]/, "", $2); print $2}' \
|
||||
"${POST_TEST_ROOT}/etc/vzdump.conf")" \
|
||||
"vzdump pigz setting is unique"
|
||||
assert_success "vzdump key removal" \
|
||||
TAPM_POST_REMOVE_COLON_KEY /etc/vzdump.conf bwlimit
|
||||
assert_failure "vzdump bandwidth setting removed" \
|
||||
grep -q '^bwlimit:' "${POST_TEST_ROOT}/etc/vzdump.conf"
|
||||
|
||||
printf 'deb should-be-backed-up\n' \
|
||||
>"${POST_TEST_ROOT}/etc/apt/sources.list"
|
||||
TAPM_POST_BACKUP_BASE='/var/backups/ta-proxmenu/post-install'
|
||||
test_post_backup() {
|
||||
TAPM_POST_BACKUP >/dev/null
|
||||
}
|
||||
assert_success "host configuration backup created" test_post_backup
|
||||
printf 'changed\n' >"${POST_TEST_ROOT}/etc/apt/sources.list"
|
||||
assert_success "host configuration backup restored" \
|
||||
TAPM_POST_RESTORE_BACKUP "$TAPM_POST_LAST_BACKUP"
|
||||
assert_equal 'deb should-be-backed-up' \
|
||||
"$(cat "${POST_TEST_ROOT}/etc/apt/sources.list")" \
|
||||
"restored APT sources"
|
||||
|
||||
assert_success "APT source layout enforced in fixture root" \
|
||||
TAPM_POST_ENSURE_APT_LAYOUT
|
||||
assert_equal 0 \
|
||||
"$(wc -c <"${POST_TEST_ROOT}/etc/apt/sources.list" | tr -d ' ')" \
|
||||
"main APT sources list is empty"
|
||||
|
||||
mkdir -p \
|
||||
"${POST_TEST_ROOT}/etc/security/limits.d" \
|
||||
"${POST_TEST_ROOT}/usr/local/share/proxmenux" \
|
||||
"${POST_TEST_ROOT}/usr/local/bin"
|
||||
cat >"${POST_TEST_ROOT}/etc/sysctl.d/99-network.conf" <<'EOF'
|
||||
# Custom administrator network profile
|
||||
net.ipv4.ip_forward = 1
|
||||
EOF
|
||||
cat >"${POST_TEST_ROOT}/etc/security/limits.d/99-limits.conf" <<'EOF'
|
||||
# ProxMenux configuration
|
||||
* soft nofile 1048576
|
||||
EOF
|
||||
cat >"${POST_TEST_ROOT}/usr/local/bin/menu" <<'EOF'
|
||||
#!/bin/sh
|
||||
exec /usr/local/share/proxmenux/menu.sh
|
||||
EOF
|
||||
assert_success "recognized ProxMenux settings cleaned" \
|
||||
TAPM_POST_CLEAN_PROXMENUX_SETTINGS
|
||||
assert_success "custom similarly named network profile retained" \
|
||||
test -f "${POST_TEST_ROOT}/etc/sysctl.d/99-network.conf"
|
||||
assert_failure "recognized ProxMenux limits profile removed" \
|
||||
test -e "${POST_TEST_ROOT}/etc/security/limits.d/99-limits.conf"
|
||||
assert_success "ProxMenux application removed" TAPM_POST_REMOVE_PROXMENUX_APP
|
||||
assert_failure "ProxMenux menu launcher removed" \
|
||||
test -e "${POST_TEST_ROOT}/usr/local/bin/menu"
|
||||
|
||||
finish_tests
|
||||
Reference in New Issue
Block a user