#!/bin/sh # shellcheck shell=sh ss_case_utils() ( set -eu PKG_NAME='safeshield-test' export PKG_NAME # shellcheck disable=SC1091 . "$SS_SPEC_ROOT/files/usr/lib/safeshield/utils.sh" command_exists sh ! command_exists safeshield-command-that-does-not-exist is_valid_integer 0 is_valid_integer 42 for value in '' -1 1.5 12x; do ! is_valid_integer "$value" done is_greater_equal 2.90 2.90 is_greater_equal 2.91 2.90 ! is_greater_equal 2.79 2.80 ) ss_case_config_validation() ( set -eu PKG_NAME='safeshield-test' export PKG_NAME # shellcheck disable=SC1091 . "$SS_SPEC_ROOT/files/usr/lib/safeshield/utils.sh" WARNINGS='' CONFIG_GET_VALUE='' log_warn() { :; } ss_status_add_warning() { WARNINGS="${WARNINGS}${WARNINGS:+ }$1" } config_get() { eval "$1='${CONFIG_GET_VALUE}'" } # shellcheck disable=SC1091 . "$SS_SPEC_ROOT/files/usr/lib/safeshield/config.sh" CONFIG_GET_VALUE='configured' ss_spec_assert_eq "$(ss_config_get config enabled default)" 'configured' CONFIG_GET_VALUE='' ss_spec_assert_eq "$(ss_config_get config enabled default)" 'default' ss_download_timeout='invalid' ss_download_retry='-1' ss_max_blocklist_file_size_kb='1.5' ss_min_valid_line_count='' ss_pause_timeout='invalid' ss_boot_start_delay_s='-5' ss_statistics_snapshot_interval_s='9' ss_statistics_retention_hours='169' ss_compress_blocklist='2' ss_initial_dnsmasq_restart='yes' ss_dnsmasq_sanity_check='no' ss_apply_local_overrides='2' ss_statistics_enabled='off' WARNINGS='' ss_validate_config ss_spec_assert_eq "$ss_download_timeout" '10' ss_spec_assert_eq "$ss_download_retry" '3' ss_spec_assert_eq "$ss_max_blocklist_file_size_kb" '30000' ss_spec_assert_eq "$ss_min_valid_line_count" '3000' ss_spec_assert_eq "$ss_pause_timeout" '20' ss_spec_assert_eq "$ss_boot_start_delay_s" '30' ss_spec_assert_eq "$ss_statistics_snapshot_interval_s" '60' ss_spec_assert_eq "$ss_statistics_retention_hours" '168' ss_spec_assert_eq "$ss_compress_blocklist" '0' ss_spec_assert_eq "$ss_initial_dnsmasq_restart" '0' ss_spec_assert_eq "$ss_dnsmasq_sanity_check" '1' ss_spec_assert_eq "$ss_apply_local_overrides" '1' ss_spec_assert_eq "$ss_statistics_enabled" '1' for code in \ invalid_download_timeout \ invalid_download_retry \ invalid_max_blocklist_file_size_kb \ invalid_min_valid_line_count \ invalid_pause_timeout \ invalid_boot_start_delay_s \ invalid_statistics_snapshot_interval_s \ invalid_statistics_retention_hours \ invalid_compress_blocklist \ invalid_initial_dnsmasq_restart \ invalid_dnsmasq_sanity_check \ invalid_apply_local_overrides \ invalid_statistics_enabled; do case " $WARNINGS " in *" $code "*) ;; *) return 1 ;; esac done ss_download_timeout='1' ss_download_retry='0' ss_max_blocklist_file_size_kb='1' ss_min_valid_line_count='0' ss_pause_timeout='0' ss_boot_start_delay_s='0' ss_statistics_snapshot_interval_s='10' ss_statistics_retention_hours='168' ss_compress_blocklist='1' ss_initial_dnsmasq_restart='1' ss_dnsmasq_sanity_check='0' ss_apply_local_overrides='0' ss_statistics_enabled='0' WARNINGS='' ss_validate_config [ -z "$WARNINGS" ] ss_spec_assert_eq "$ss_statistics_snapshot_interval_s" '10' ss_spec_assert_eq "$ss_statistics_retention_hours" '168' ) ss_case_dnsmasq_version() ( set -eu TMP_DIR="$(ss_spec_tmpdir)" trap 'rm -rf "$TMP_DIR"' EXIT HUP INT TERM PKG_NAME='safeshield' export PKG_NAME # shellcheck disable=SC1091 . "$SS_SPEC_ROOT/files/usr/lib/safeshield/utils.sh" DNSMASQ_FEATURE_HEALTH='' ss_status_set() { [ "$1" = 'health_dnsmasq_features' ] && DNSMASQ_FEATURE_HEALTH="$2" return 0 } log_error() { :; } # shellcheck disable=SC1091 . "$SS_SPEC_ROOT/files/usr/lib/safeshield/dns.sh" ss_spec_assert_file_not_contains "$SS_SPEC_ROOT/files/usr/lib/safeshield/dns.sh" 'smartsafehub' make_dnsmasq() { version="$1" feature_rc="${2:-0}" cat >"$TMP_DIR/dnsmasq" <