diff --git a/.github/workflows/backend-ci.yml b/.github/workflows/backend-ci.yml index 8b6ceafb..d7ddde4f 100644 --- a/.github/workflows/backend-ci.yml +++ b/.github/workflows/backend-ci.yml @@ -5,9 +5,8 @@ on: paths: - 'podkop/files/**' - 'podkop/Makefile' - - 'scripts/build.sh' - - 'tests/backend/**' - - 'tests/differential/**' + - 'build.sh' + - 'tests/**' - '.github/workflows/backend-ci.yml' push: branches: @@ -15,9 +14,8 @@ on: paths: - 'podkop/files/**' - 'podkop/Makefile' - - 'scripts/build.sh' - - 'tests/backend/**' - - 'tests/differential/**' + - 'build.sh' + - 'tests/**' - '.github/workflows/backend-ci.yml' jobs: @@ -56,7 +54,7 @@ jobs: - name: Run backend tests shell: bash run: | - for test_script in tests/backend/*.sh; do + for test_script in tests/*.sh; do echo "::group::$test_script" bash "$test_script" echo "::endgroup::" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 744bc002..5e6ae37d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -57,7 +57,7 @@ jobs: shell: bash run: | VERSION="${{ needs.preparation.outputs.version }}" - bash ./scripts/build.sh "$VERSION" "$PWD/filtered-bin/release" + bash ./build.sh "$VERSION" "$PWD/filtered-bin/release" ls -la "$PWD/filtered-bin/release" - name: Upload build artifacts diff --git a/.gitignore b/.gitignore index 9ee4b30b..052c8c03 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,6 @@ fe-app-podkop/.yarn/ fe-app-podkop/.env .DS_Store -AGENTS.md sandbox/ .wsl-build/ dist/ diff --git a/Dockerfile-apk b/Dockerfile-apk deleted file mode 100644 index 946f6bbd..00000000 --- a/Dockerfile-apk +++ /dev/null @@ -1,12 +0,0 @@ -FROM itdoginfo/openwrt-sdk-apk:25.12.3 - -ARG PODKOP_VERSION -ENV PODKOP_VERSION=${PODKOP_VERSION} -ENV PODKOP_PACKAGE_FORMAT=apk - -COPY ./podkop /builder/package/feeds/utilities/podkop-plus -COPY ./luci-app-podkop-plus /builder/package/feeds/luci/luci-app-podkop-plus - -RUN make defconfig && \ - make package/podkop-plus/compile -j4 V=s && \ - make package/luci-app-podkop-plus/compile -j4 V=s diff --git a/Dockerfile-ipk b/Dockerfile-ipk deleted file mode 100644 index ba8b2d25..00000000 --- a/Dockerfile-ipk +++ /dev/null @@ -1,11 +0,0 @@ -FROM itdoginfo/openwrt-sdk-ipk:24.10.6 - -ARG PODKOP_VERSION - -COPY ./podkop /builder/package/feeds/utilities/podkop-plus -COPY ./luci-app-podkop-plus /builder/package/feeds/luci/luci-app-podkop-plus - -RUN export PODKOP_VERSION="${PODKOP_VERSION}" && \ - make defconfig && \ - make package/podkop-plus/compile V=s -j4 && \ - make package/luci-app-podkop-plus/compile V=s -j4 diff --git a/scripts/build.sh b/build.sh similarity index 99% rename from scripts/build.sh rename to build.sh index 967a1c87..5d673d5e 100644 --- a/scripts/build.sh +++ b/build.sh @@ -3,7 +3,7 @@ set -euo pipefail SCRIPT_PATH="$(readlink -f "${BASH_SOURCE[0]}")" SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_PATH")" && pwd)" -ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" +ROOT_DIR="$SCRIPT_DIR" RELEASE_VERSION="${1:-}" OUTPUT_DIR_INPUT="${2:-}" @@ -95,7 +95,7 @@ copy_to_native_root() { echo "Synced repository to native WSL path: $target_root" >&2 export SOURCE_ROOT_DIR="$source_root" export WINDOWS_ARTIFACTS_DIR="$windows_output" - exec bash "$target_root/scripts/build.sh" "$RELEASE_VERSION" "$target_output" + exec bash "$target_root/build.sh" "$RELEASE_VERSION" "$target_output" } ensure_native_root() { diff --git a/sdk/Dockerfile-sdk-apk b/sdk/Dockerfile-sdk-apk deleted file mode 100644 index 7ec157fb..00000000 --- a/sdk/Dockerfile-sdk-apk +++ /dev/null @@ -1,7 +0,0 @@ -FROM openwrt/sdk:x86_64-v25.12.3 -WORKDIR /builder -RUN ./setup.sh \ - && ./scripts/feeds update -a \ - && ./scripts/feeds install luci-base \ - && mkdir -p /builder/package/feeds/utilities/ \ - && mkdir -p /builder/package/feeds/luci/ diff --git a/sdk/Dockerfile-sdk-ipk b/sdk/Dockerfile-sdk-ipk deleted file mode 100644 index 6cc8ee70..00000000 --- a/sdk/Dockerfile-sdk-ipk +++ /dev/null @@ -1,6 +0,0 @@ -FROM openwrt/sdk:x86_64-v24.10.6 -WORKDIR /builder -RUN ./scripts/feeds update -a \ - && ./scripts/feeds install luci-base \ - && mkdir -p /builder/package/feeds/utilities/ \ - && mkdir -p /builder/package/feeds/luci/ diff --git a/tests/backend/byedpi_runtime_owner_regression.sh b/tests/byedpi_runtime_owner.sh similarity index 95% rename from tests/backend/byedpi_runtime_owner_regression.sh rename to tests/byedpi_runtime_owner.sh index 2a6224a0..8fa2c635 100644 --- a/tests/backend/byedpi_runtime_owner_regression.sh +++ b/tests/byedpi_runtime_owner.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_BIN="$ROOT_DIR/podkop/files/usr/bin/podkop" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" CLI_UC="$PODKOP_BIN" @@ -58,4 +58,4 @@ if (value.byedpi_installed !== false || value.byedpi_package_installed !== false } ' -printf 'ByeDPI runtime ownership regression checks passed\n' +printf 'ByeDPI runtime ownership checks passed\n' diff --git a/tests/backend/byedpi_validator_regression.sh b/tests/byedpi_validator.sh similarity index 95% rename from tests/backend/byedpi_validator_regression.sh rename to tests/byedpi_validator.sh index af6b55e5..1f982621 100644 --- a/tests/backend/byedpi_validator_regression.sh +++ b/tests/byedpi_validator.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" VALIDATOR="$ROOT_DIR/podkop/files/usr/lib/providers/byedpi/validator.uc" WORK_DIR="$(mktemp -d)" @@ -75,4 +75,4 @@ UCODE ucode -L "$PODKOP_LIB" "$WORK_DIR/require-byedpi-validator.uc" -printf 'ByeDPI validator regression checks passed\n' +printf 'ByeDPI validator checks passed\n' diff --git a/tests/backend/cli_entrypoint_regression.sh b/tests/cli_entrypoint.sh similarity index 96% rename from tests/backend/cli_entrypoint_regression.sh rename to tests/cli_entrypoint.sh index 8f86a875..44d83d11 100644 --- a/tests/backend/cli_entrypoint_regression.sh +++ b/tests/cli_entrypoint.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_BIN="$ROOT_DIR/podkop/files/usr/bin/podkop" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" WORK_DIR="$(mktemp -d)" @@ -91,4 +91,4 @@ set -e [ "$(cat "$WORK_DIR/dns-restore.marker")" = "failsafe-restore" ] || fail "missing lifecycle module must trigger dnsmasq failsafe restore" -printf 'CLI entrypoint regression checks passed\n' +printf 'CLI entrypoint checks passed\n' diff --git a/tests/backend/component_update_check_cache_regression.sh b/tests/component_update_check_cache.sh similarity index 96% rename from tests/backend/component_update_check_cache_regression.sh rename to tests/component_update_check_cache.sh index 3108f37c..478ea51c 100644 --- a/tests/backend/component_update_check_cache_regression.sh +++ b/tests/component_update_check_cache.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" UPDATES_UC="$PODKOP_LIB/components/updates.uc" WORK_DIR="$(mktemp -d)" @@ -122,4 +122,4 @@ updates_ucode component-updates-if-due [ -s "$timestamp_file" ] || fail "automatic checks must record their last run" -printf 'component update check cache regression checks passed\n' +printf 'component update check cache checks passed\n' diff --git a/tests/backend/components_updater_job_regression.sh b/tests/components_updater_job.sh similarity index 99% rename from tests/backend/components_updater_job_regression.sh rename to tests/components_updater_job.sh index ae4fdc35..cda941ea 100644 --- a/tests/backend/components_updater_job_regression.sh +++ b/tests/components_updater_job.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" PODKOP_BIN="$ROOT_DIR/podkop/files/usr/bin/podkop" CLI_UC="$PODKOP_BIN" @@ -373,4 +373,4 @@ if (value.running !== false || value.success !== false || value.exit_code !== nu } NODE -printf 'component updater job regression checks passed\n' +printf 'component updater job checks passed\n' diff --git a/tests/backend/config_contract_matrix_regression.sh b/tests/config_contract_matrix.sh similarity index 95% rename from tests/backend/config_contract_matrix_regression.sh rename to tests/config_contract_matrix.sh index a21ef7d2..9690c4c6 100644 --- a/tests/backend/config_contract_matrix_regression.sh +++ b/tests/config_contract_matrix.sh @@ -1,10 +1,10 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" STABLE_REF="${PODKOP_STABLE_REF:-0.7.19.9}" STABLE_REPO="${PODKOP_STABLE_REPO:-}" -MATRIX_SCRIPT="$ROOT_DIR/tests/differential/config_contract_matrix.js" +MATRIX_SCRIPT="$ROOT_DIR/tests/helpers/config_contract_matrix.js" WORK_DIR="$(mktemp -d)" cleanup() { @@ -116,4 +116,4 @@ assertCurrentKeepsStableValues("vless_flow", ["none", "xtls-rprx-vision"]); assertCurrentKeepsStableValues("transport_xhttp_mode", ["auto", "packet-up", "stream-up", "stream-one"]); NODE -printf 'config contract matrix regression checks passed\n' +printf 'config contract matrix checks passed\n' diff --git a/tests/backend/config_migration_regression.sh b/tests/config_migration.sh similarity index 99% rename from tests/backend/config_migration_regression.sh rename to tests/config_migration.sh index 793b63c6..bdba21af 100644 --- a/tests/backend/config_migration_regression.sh +++ b/tests/config_migration.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" MIGRATION="$PODKOP_LIB/config/migration.uc" WORK_DIR="$(mktemp -d)" @@ -374,4 +374,4 @@ ucode -L "$PODKOP_LIB" "$MIGRATION" commit grep -Fxq 'commit podkop-plus' "$WORK_DIR/uci-commit.log" || fail "commit mode must commit podkop-plus through core.uci" -printf 'config migration regression checks passed\n' +printf 'config migration checks passed\n' diff --git a/tests/backend/config_validation_owner_regression.sh b/tests/config_validation_owner.sh similarity index 94% rename from tests/backend/config_validation_owner_regression.sh rename to tests/config_validation_owner.sh index e7fb0395..a2cabd51 100644 --- a/tests/backend/config_validation_owner_regression.sh +++ b/tests/config_validation_owner.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_FILES="$ROOT_DIR/podkop/files" PODKOP_BIN="$PODKOP_FILES/usr/bin/podkop" PODKOP_LIB="$PODKOP_FILES/usr/lib" @@ -46,4 +46,4 @@ grep -Fq 'VALIDATOR_UC' "$LIFECYCLE" && grep -Fq '"validate-runtime"' "$LIFECYCLE" || fail "service/lifecycle.uc must run runtime validation directly through ucode" -printf 'config validation ownership regression checks passed\n' +printf 'config validation ownership checks passed\n' diff --git a/tests/backend/config_validator_detour_regression.sh b/tests/config_validator_detour.sh similarity index 92% rename from tests/backend/config_validator_detour_regression.sh rename to tests/config_validator_detour.sh index 6974a0da..e06c0205 100644 --- a/tests/backend/config_validator_detour_regression.sh +++ b/tests/config_validator_detour.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" VALIDATOR="$ROOT_DIR/podkop/files/usr/lib/config/validator.uc" @@ -55,4 +55,4 @@ assert_rejects "cycle" "creates a cycle through 'second'" \ first 1 connection 1 second \ second 1 connection 1 first -printf 'config validator detour regression checks passed\n' +printf 'config validator detour checks passed\n' diff --git a/tests/backend/config_validator_download_section_regression.sh b/tests/config_validator_download_section.sh similarity index 92% rename from tests/backend/config_validator_download_section_regression.sh rename to tests/config_validator_download_section.sh index 9aacb0ee..6c10dde7 100644 --- a/tests/backend/config_validator_download_section_regression.sh +++ b/tests/config_validator_download_section.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" VALIDATOR="$ROOT_DIR/podkop/files/usr/lib/config/validator.uc" @@ -55,4 +55,4 @@ assert_rejects "disabled target" "references disabled rule 'proxy'" proxy 0 0 0 assert_rejects "provider missing" "cannot provide an outbound" zap 0 0 0 zap 1 zapret assert_rejects "unsupported action" "cannot provide an outbound" bypass 0 0 0 bypass 1 bypass -printf 'config validator download section regression checks passed\n' +printf 'config validator download section checks passed\n' diff --git a/tests/backend/config_validator_reference_regression.sh b/tests/config_validator_reference.sh similarity index 94% rename from tests/backend/config_validator_reference_regression.sh rename to tests/config_validator_reference.sh index 2ecccfe5..5e16a6dd 100644 --- a/tests/backend/config_validator_reference_regression.sh +++ b/tests/config_validator_reference.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" VALIDATOR="$ROOT_DIR/podkop/files/usr/lib/config/validator.uc" COMMUNITY_SERVICES="youtube twitter telegram" @@ -45,4 +45,4 @@ assert_accepts "absolute plain list reference" plain-domain-ip-list-reference-va assert_rejects "ruleset as plain list reference" plain-domain-ip-list-reference-valid /tmp/rule.srs assert_rejects "relative plain list reference" plain-domain-ip-list-reference-valid relative/list.lst -printf 'config validator reference regression checks passed\n' +printf 'config validator reference checks passed\n' diff --git a/tests/backend/config_validator_runtime_regression.sh b/tests/config_validator_runtime.sh similarity index 99% rename from tests/backend/config_validator_runtime_regression.sh rename to tests/config_validator_runtime.sh index 71b01734..7a5f35e9 100644 --- a/tests/backend/config_validator_runtime_regression.sh +++ b/tests/config_validator_runtime.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" VALIDATOR="$PODKOP_LIB/config/validator.uc" WORK_DIR="$(mktemp -d)" @@ -416,4 +416,4 @@ fi printf '%s\n' "$output" | grep -Fq "ByeDPI listen address and port are assigned" || fail "executable byedpi provider: unexpected message '$output'" -printf 'config validator runtime regression checks passed\n' +printf 'config validator runtime checks passed\n' diff --git a/tests/backend/connection_cascade_regression.sh b/tests/connection_cascade.sh similarity index 97% rename from tests/backend/connection_cascade_regression.sh rename to tests/connection_cascade.sh index 6bb3057d..7993d258 100644 --- a/tests/backend/connection_cascade_regression.sh +++ b/tests/connection_cascade.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" GENERATOR="$PODKOP_LIB/singbox/generator.uc" WORK_DIR="$(mktemp -d)" @@ -131,4 +131,4 @@ assert(outbound("JSON explicit").detour == "direct-out", "explicit JSON detour w assert(outbound("source-out").detour == null, "section selector must not receive its own detour"); ' "$WORK_DIR/output.json" || fail "section cascade generation" -printf 'connection cascade regression checks passed\n' +printf 'connection cascade checks passed\n' diff --git a/tests/backend/constants_owner_regression.sh b/tests/constants_owner.sh similarity index 92% rename from tests/backend/constants_owner_regression.sh rename to tests/constants_owner.sh index 1d6babcf..5c933657 100644 --- a/tests/backend/constants_owner_regression.sh +++ b/tests/constants_owner.sh @@ -1,12 +1,12 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_BIN="$ROOT_DIR/podkop/files/usr/bin/podkop" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" CLI_UC="$PODKOP_BIN" PODKOP_MAKEFILE="$ROOT_DIR/podkop/Makefile" -BUILD_SCRIPT="$ROOT_DIR/scripts/build.sh" +BUILD_SCRIPT="$ROOT_DIR/build.sh" CONSTANTS_SH="$PODKOP_LIB/constants.sh" LIFECYCLE_UC="$PODKOP_LIB/service/lifecycle.uc" CONSTANTS_UC="$PODKOP_LIB/core/constants.uc" @@ -51,4 +51,4 @@ eval "$(ucode -L "$PODKOP_LIB" "$CONSTANTS_UC" shell-env)" [ "$BYEDPI_PID_DIR" = "/var/run/podkop-plus/byedpi/pid" ] || fail "core/constants.uc shell-env did not derive BYEDPI_PID_DIR" -printf 'constants ownership regression checks passed\n' +printf 'constants ownership checks passed\n' diff --git a/tests/backend/core_helpers_regression.sh b/tests/core_helpers.sh similarity index 94% rename from tests/backend/core_helpers_regression.sh rename to tests/core_helpers.sh index 848fd596..9690ac2b 100644 --- a/tests/backend/core_helpers_regression.sh +++ b/tests/core_helpers.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" HELPERS_UC="$ROOT_DIR/podkop/files/usr/lib/core/helpers.uc" fail() { @@ -57,4 +57,4 @@ assert_eq direct-1-out \ "$(ucode "$HELPERS_UC" outbound-tag direct-1)" \ "numbered direct outbound tag" -printf 'core helpers regression checks passed\n' +printf 'core helpers checks passed\n' diff --git a/tests/backend/core_uci_runtime_regression.sh b/tests/core_uci_runtime.sh similarity index 97% rename from tests/backend/core_uci_runtime_regression.sh rename to tests/core_uci_runtime.sh index d55d13bd..0b7e6098 100644 --- a/tests/backend/core_uci_runtime_regression.sh +++ b/tests/core_uci_runtime.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" UCODE_LIB="$ROOT_DIR/podkop/files/usr/lib" WORK_DIR="$(mktemp -d)" @@ -152,4 +152,4 @@ UCODE ucode -L "$UCODE_LIB" -L "$WORK_DIR" "$WORK_DIR/check.uc" || fail "core.uci anonymous selector runtime regression" -printf 'core UCI runtime regression checks passed\n' +printf 'core UCI runtime checks passed\n' diff --git a/tests/backend/country_detection_regression.sh b/tests/country_detection.sh similarity index 96% rename from tests/backend/country_detection_regression.sh rename to tests/country_detection.sh index 85d5b546..d45f77ec 100644 --- a/tests/backend/country_detection_regression.sh +++ b/tests/country_detection.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" WORK_DIR="$(mktemp -d)" @@ -108,4 +108,4 @@ grep -Fq 'country.invalid:443:8.6.112.0' "$WORK_DIR/resolve.txt" || grep -Eq '0\.0\.0\.0|192\.168\.1\.1|198\.18\.6\.9|203\.0\.113\.10' "$WORK_DIR/payload.json" && fail "country.is request contained a non-public address" -printf 'country detection regression checks passed\n' +printf 'country detection checks passed\n' diff --git a/tests/backend/diagnostics_status_regression.sh b/tests/diagnostics_status.sh similarity index 98% rename from tests/backend/diagnostics_status_regression.sh rename to tests/diagnostics_status.sh index df7e6f43..44b2dedc 100644 --- a/tests/backend/diagnostics_status_regression.sh +++ b/tests/diagnostics_status.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" DIAGNOSTICS="$ROOT_DIR/podkop/files/usr/lib/diagnostics/status.uc" DIAGNOSTICS_RUNTIME="$ROOT_DIR/podkop/files/usr/lib/diagnostics/runtime.uc" PODKOP_BIN="$ROOT_DIR/podkop/files/usr/bin/podkop" @@ -247,4 +247,4 @@ owners="$(printf '%s\n' "$netstat_owners" | [ "$owners" = "111/nginx 222/dnsmasq" ] || fail "unexpected conflict owners: $owners" -printf 'diagnostics status regression checks passed\n' +printf 'diagnostics status checks passed\n' diff --git a/tests/backend/dns_apply_regression.sh b/tests/dns_apply.sh similarity index 98% rename from tests/backend/dns_apply_regression.sh rename to tests/dns_apply.sh index 041b33b9..7dafd5ac 100644 --- a/tests/backend/dns_apply_regression.sh +++ b/tests/dns_apply.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" APPLY="$ROOT_DIR/podkop/files/usr/lib/dns/apply.uc" UCODE_LIB="$ROOT_DIR/podkop/files/usr/lib" WORK_DIR="$(mktemp -d)" @@ -256,4 +256,4 @@ assert_absent 'dhcp.@dnsmasq[0].podkop_noresolv' assert_absent 'dhcp.@dnsmasq[0].podkop_cachesize' assert_log_contains 'commit dhcp' -printf 'DNS apply regression checks passed\n' +printf 'DNS apply checks passed\n' diff --git a/tests/backend/dns_failover_regression.sh b/tests/dns_failover.sh similarity index 98% rename from tests/backend/dns_failover_regression.sh rename to tests/dns_failover.sh index 9827c24d..94170101 100644 --- a/tests/backend/dns_failover_regression.sh +++ b/tests/dns_failover.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" GENERATOR="$PODKOP_LIB/singbox/generator.uc" FAILOVER="$PODKOP_LIB/singbox/dns_failover.uc" @@ -160,4 +160,4 @@ verification="$(ucode -L "$PODKOP_LIB" "$FAILOVER" verification-plan-fixture "$W printf '%s' "$verification" | grep -Eq '"main"[[:space:]]*:[[:space:]]*false' || fail "bootstrap-only switch must not require a dead main DNS to recover" printf '%s' "$verification" | grep -Eq '"bootstrap"[[:space:]]*:[[:space:]]*true' || fail "bootstrap-only switch must verify the selected bootstrap DNS" -printf 'DNS failover regression checks passed\n' +printf 'DNS failover checks passed\n' diff --git a/tests/differential/config_contract_matrix.js b/tests/helpers/config_contract_matrix.js similarity index 100% rename from tests/differential/config_contract_matrix.js rename to tests/helpers/config_contract_matrix.js diff --git a/tests/differential/semantic_json_compare.js b/tests/helpers/semantic_json_compare.js similarity index 100% rename from tests/differential/semantic_json_compare.js rename to tests/helpers/semantic_json_compare.js diff --git a/tests/backend/helpers_owner_regression.sh b/tests/helpers_owner.sh similarity index 98% rename from tests/backend/helpers_owner_regression.sh rename to tests/helpers_owner.sh index 9ef52608..13e89a85 100644 --- a/tests/backend/helpers_owner_regression.sh +++ b/tests/helpers_owner.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_BIN="$ROOT_DIR/podkop/files/usr/bin/podkop" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" CLI_UC="$PODKOP_BIN" @@ -136,4 +136,4 @@ SB_VARIANT_STATE_FILE="$WORK_DIR/variant" \ [ ! -e "$WORK_DIR/variant" ] || fail "empty variant marker restore must clear the marker file" -printf 'helpers ownership regression checks passed\n' +printf 'helpers ownership checks passed\n' diff --git a/tests/backend/initd_state_regression.sh b/tests/initd_state.sh similarity index 99% rename from tests/backend/initd_state_regression.sh rename to tests/initd_state.sh index 9ae55b57..73f3c859 100755 --- a/tests/backend/initd_state_regression.sh +++ b/tests/initd_state.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" INITD_UC="$PODKOP_LIB/service/initd.uc" STATE_UC="$PODKOP_LIB/service/state.uc" @@ -248,4 +248,4 @@ if grep -Fq 'initd-should-' "$STATE_UC"; then fail "service/state.uc must not keep init.d decision owner modes" fi -printf 'init.d state regression checks passed\n' +printf 'init.d state checks passed\n' diff --git a/tests/backend/installer_owner_regression.sh b/tests/installer_owner.sh similarity index 98% rename from tests/backend/installer_owner_regression.sh rename to tests/installer_owner.sh index 6d4eca66..71a74452 100644 --- a/tests/backend/installer_owner_regression.sh +++ b/tests/installer_owner.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -euo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" INSTALLER="$ROOT_DIR/install.sh" WORK_DIR="$(mktemp -d)" @@ -209,4 +209,4 @@ grep -Fxq 'enable' "$WORK_DIR/init.log" || grep -Fxq 'start' "$WORK_DIR/init.log" || fail "installer post-install must restore running state through ucode owner" -printf 'installer ownership regression checks passed\n' +printf 'installer ownership checks passed\n' diff --git a/tests/backend/log_hygiene_regression.sh b/tests/log_hygiene.sh similarity index 96% rename from tests/backend/log_hygiene_regression.sh rename to tests/log_hygiene.sh index 7c074552..5d356834 100644 --- a/tests/backend/log_hygiene_regression.sh +++ b/tests/log_hygiene.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" fail() { printf 'FAIL: %s\n' "$1" >&2 @@ -66,4 +66,4 @@ reject_runtime_regex 'log_message\("subscription/cache\.uc: ' \ reject_runtime_regex 'log_message\("singbox/runtime\.uc: ' \ "runtime logs must not expose singbox/runtime.uc as a user-facing prefix" -printf 'log hygiene regression checks passed\n' +printf 'log hygiene checks passed\n' diff --git a/tests/backend/mark_ranges_regression.sh b/tests/mark_ranges.sh similarity index 96% rename from tests/backend/mark_ranges_regression.sh rename to tests/mark_ranges.sh index b3a9d657..e312a245 100644 --- a/tests/backend/mark_ranges_regression.sh +++ b/tests/mark_ranges.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" VALIDATOR="$PODKOP_LIB/config/validator.uc" WORK_DIR="$(mktemp -d)" @@ -84,4 +84,4 @@ if PODKOP_LIB="$PODKOP_LIB" ucode -L "$PODKOP_LIB" "$VALIDATOR" validate-runtime fail "legacy Zapret2 route mark base should overlap FakeIP mark" fi -printf 'mark range regression checks passed\n' +printf 'mark range checks passed\n' diff --git a/tests/backend/nft_apply_regression.sh b/tests/nft_apply.sh similarity index 99% rename from tests/backend/nft_apply_regression.sh rename to tests/nft_apply.sh index a199fc66..548eed53 100644 --- a/tests/backend/nft_apply_regression.sh +++ b/tests/nft_apply.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" NFT_RUNTIME="$ROOT_DIR/podkop/files/usr/lib/nft/apply.uc" WORK_DIR="$(mktemp -d)" @@ -722,4 +722,4 @@ if grep -Fq $'nft\tinsert\trule' "$NFT_LOG"; then fail "existing nft-normalized /32 fully routed source should not insert" fi -printf 'NFT apply regression checks passed\n' +printf 'NFT apply checks passed\n' diff --git a/tests/backend/outbound_tags_regression.sh b/tests/outbound_tags.sh similarity index 98% rename from tests/backend/outbound_tags_regression.sh rename to tests/outbound_tags.sh index 1ff5c4c6..251eafdb 100644 --- a/tests/backend/outbound_tags_regression.sh +++ b/tests/outbound_tags.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" GENERATOR_UC="$PODKOP_LIB/singbox/generator.uc" PARSER_UC="$PODKOP_LIB/subscription/parser.uc" @@ -271,4 +271,4 @@ if (outbounds[0].remark != "germany" || outbounds[1].remark != "germany") die("Xray runtime suffix leaked into user-visible names\n"); ' "$WORK_DIR/xray-normalized.json" || fail "Xray duplicate display names" -printf 'outbound tag regression checks passed\n' +printf 'outbound tag checks passed\n' diff --git a/tests/backend/package_contract_regression.sh b/tests/package_contract.sh similarity index 86% rename from tests/backend/package_contract_regression.sh rename to tests/package_contract.sh index 7c52f6f6..df592418 100644 --- a/tests/backend/package_contract_regression.sh +++ b/tests/package_contract.sh @@ -1,9 +1,9 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_MAKEFILE="$ROOT_DIR/podkop/Makefile" -BUILD_SCRIPT="$ROOT_DIR/scripts/build.sh" +BUILD_SCRIPT="$ROOT_DIR/build.sh" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" fail() { @@ -29,7 +29,7 @@ require_build_dep() { local package="$2" grep -Eq "^${variable}=.*(^|[[:space:],])${package}([[:space:],\"]|$)" "$BUILD_SCRIPT" || - fail "scripts/build.sh ${variable} is missing $package" + fail "build.sh ${variable} is missing $package" } require_package_dependency() { @@ -59,4 +59,4 @@ if grep -Rqs 'podkop_dnsmasq_failsafe_restore_raw' \ fail "duplicated raw dnsmasq failsafe restore shell owner is present" fi -printf 'package contract regression checks passed\n' +printf 'package contract checks passed\n' diff --git a/tests/backend/package_lifecycle_regression.sh b/tests/package_lifecycle.sh similarity index 97% rename from tests/backend/package_lifecycle_regression.sh rename to tests/package_lifecycle.sh index a7e35e6c..095bceb6 100644 --- a/tests/backend/package_lifecycle_regression.sh +++ b/tests/package_lifecycle.sh @@ -1,13 +1,13 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_BIN="$ROOT_DIR/podkop/files/usr/bin/podkop" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" PACKAGE_UC="$PODKOP_LIB/service/package.uc" PODKOP_MAKEFILE="$ROOT_DIR/podkop/Makefile" LUCI_UCI_DEFAULTS="$ROOT_DIR/luci-app-podkop-plus/root/etc/uci-defaults/50_luci-podkop-plus" -BUILD_SCRIPT="$ROOT_DIR/scripts/build.sh" +BUILD_SCRIPT="$ROOT_DIR/build.sh" WORK_DIR="$(mktemp -d)" cleanup() { @@ -126,4 +126,4 @@ PODKOP_RT_TABLES="$WORK_DIR/rt_tables_restore" \ grep -Fxq 'restore_dnsmasq' "$WORK_DIR/restore.log" || fail "package prerm must restore dnsmasq when dont_touch_dhcp is disabled" -printf 'package lifecycle regression checks passed\n' +printf 'package lifecycle checks passed\n' diff --git a/tests/backend/priority_failover_regression.sh b/tests/priority_failover.sh similarity index 99% rename from tests/backend/priority_failover_regression.sh rename to tests/priority_failover.sh index 2b9b9783..f38bbc4f 100644 --- a/tests/backend/priority_failover_regression.sh +++ b/tests/priority_failover.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" GENERATOR_UC="$PODKOP_LIB/singbox/generator.uc" VALIDATOR_UC="$PODKOP_LIB/config/validator.uc" @@ -665,4 +665,4 @@ same_level="$(ucode -L "$PODKOP_LIB" "$PRIORITY_UC" select-faster-fixture \ printf '%s\n' "$same_level" | grep -Fq '"tag": "b"' || fail "same-level switching should compare candidates with the active delay from the same pass" -printf 'Priority failover regression checks passed\n' +printf 'Priority failover checks passed\n' diff --git a/tests/backend/provider_rules_regression.sh b/tests/provider_rules.sh similarity index 94% rename from tests/backend/provider_rules_regression.sh rename to tests/provider_rules.sh index e7e9c3dc..cd53140a 100644 --- a/tests/backend/provider_rules_regression.sh +++ b/tests/provider_rules.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" RULES_UC="$ROOT_DIR/podkop/files/usr/lib/providers/rules.uc" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" @@ -54,4 +54,4 @@ if rules_ucode mark-value invalid 1 >/dev/null 2>&1; then fail "invalid base should be rejected" fi -printf 'Provider rule regression checks passed\n' +printf 'Provider rule checks passed\n' diff --git a/tests/backend/runtime_state_owner_regression.sh b/tests/runtime_state_owner.sh similarity index 98% rename from tests/backend/runtime_state_owner_regression.sh rename to tests/runtime_state_owner.sh index 8c5b3328..63168caf 100644 --- a/tests/backend/runtime_state_owner_regression.sh +++ b/tests/runtime_state_owner.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_BIN="$ROOT_DIR/podkop/files/usr/bin/podkop" PODKOP_INIT="$ROOT_DIR/podkop/files/etc/init.d/podkop" CLI_UC="$PODKOP_BIN" @@ -122,4 +122,4 @@ grep -Fq 'nft-populate-runtime-sets-from-uci' "$LIFECYCLE_UC" || grep -Fq 'mode == "nft-rebuild-runtime-from-uci"' "$NFT_UC" || fail "nft/apply.uc must own nft runtime rebuild" -printf 'runtime state ownership regression checks passed\n' +printf 'runtime state ownership checks passed\n' diff --git a/tests/backend/runtime_state_predicates_regression.sh b/tests/runtime_state_predicates.sh similarity index 99% rename from tests/backend/runtime_state_predicates_regression.sh rename to tests/runtime_state_predicates.sh index 950b4281..09d7d0b2 100644 --- a/tests/backend/runtime_state_predicates_regression.sh +++ b/tests/runtime_state_predicates.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" STATE_UC="$ROOT_DIR/podkop/files/usr/lib/service/state.uc" NFT_UC="$ROOT_DIR/podkop/files/usr/lib/nft/apply.uc" @@ -1356,4 +1356,4 @@ if state_ucode has-remote-sing-box-ruleset-sources-fixture "$WORK_DIR/disabled-o fail "disabled rule should not require remote sing-box ruleset refresh" fi -printf 'runtime state predicate regression checks passed\n' +printf 'runtime state predicate checks passed\n' diff --git a/tests/backend/selector_state_regression.sh b/tests/selector_state.sh similarity index 95% rename from tests/backend/selector_state_regression.sh rename to tests/selector_state.sh index 49ebc3d6..84538328 100644 --- a/tests/backend/selector_state_regression.sh +++ b/tests/selector_state.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -euo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" LIFECYCLE_UC="$PODKOP_LIB/service/lifecycle.uc" WORK_DIR="$(mktemp -d)" @@ -100,4 +100,4 @@ restore_calls="$(grep -Fc 'restore_selector_state(selector_state);' "$LIFECYCLE_ [ "$restore_calls" -ge 2 ] || fail "full restart paths should restore selector state after runtime start" -printf 'selector state regression checks passed\n' +printf 'selector state checks passed\n' diff --git a/tests/backend/semantic_json_compare_regression.sh b/tests/semantic_json_compare.sh similarity index 88% rename from tests/backend/semantic_json_compare_regression.sh rename to tests/semantic_json_compare.sh index 07dcb4e0..3a0b2f75 100644 --- a/tests/backend/semantic_json_compare_regression.sh +++ b/tests/semantic_json_compare.sh @@ -1,8 +1,8 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" -COMPARE="$ROOT_DIR/tests/differential/semantic_json_compare.js" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +COMPARE="$ROOT_DIR/tests/helpers/semantic_json_compare.js" WORK_DIR="$(mktemp -d)" cleanup() { @@ -69,4 +69,4 @@ fi grep -Fq '$.outbounds[0].tag: "first" != "second"' /tmp/podkop-semantic-json.out || fail "array order mismatch reported unexpected diff" -printf 'semantic JSON compare regression checks passed\n' +printf 'semantic JSON compare checks passed\n' diff --git a/tests/backend/server_runtime_regression.sh b/tests/server_runtime.sh similarity index 96% rename from tests/backend/server_runtime_regression.sh rename to tests/server_runtime.sh index b7d3568c..09481ab4 100644 --- a/tests/backend/server_runtime_regression.sh +++ b/tests/server_runtime.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" SERVER_RUNTIME="$ROOT_DIR/podkop/files/usr/lib/server/service.uc" UCODE_LIB="$ROOT_DIR/podkop/files/usr/lib" WORK_DIR="$(mktemp -d)" @@ -111,4 +111,4 @@ assert_value podkop-plus.tailscale.tailscale_advertise_exit_node 1 assert_value podkop-plus.json.security none grep -Fxq 'commit podkop-plus' "$LOG" || fail 'expected config commit' -printf 'server runtime regression checks passed\n' +printf 'server runtime checks passed\n' diff --git a/tests/backend/service_reload_plan_regression.sh b/tests/service_reload_plan.sh similarity index 98% rename from tests/backend/service_reload_plan_regression.sh rename to tests/service_reload_plan.sh index 6cf97aa1..5a213361 100644 --- a/tests/backend/service_reload_plan_regression.sh +++ b/tests/service_reload_plan.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" RELOAD_UC="$ROOT_DIR/podkop/files/usr/lib/service/reload.uc" WORK_DIR="$(mktemp -d)" @@ -218,4 +218,4 @@ assert_state_plan_exit 2 "$previous_state" "$current_state" 0 0 0 0 0 rm -f "$previous_state" assert_state_plan_exit 2 "$previous_state" "$current_state" 0 0 0 0 0 -printf 'service reload plan regression checks passed\n' +printf 'service reload plan checks passed\n' diff --git a/tests/backend/service_start_trap_regression.sh b/tests/service_start_trap.sh similarity index 98% rename from tests/backend/service_start_trap_regression.sh rename to tests/service_start_trap.sh index 33043765..31afa318 100644 --- a/tests/backend/service_start_trap_regression.sh +++ b/tests/service_start_trap.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_BIN="$ROOT_DIR/podkop/files/usr/bin/podkop" PODKOP_INIT="$ROOT_DIR/podkop/files/etc/init.d/podkop" CLI_UC="$PODKOP_BIN" @@ -140,4 +140,4 @@ reject_pattern "has_tproxy_marking_rule" \ reject_pattern "has_tproxy_route" \ "service stop must not call the removed shell tproxy route helper" -printf 'service start trap regression checks passed\n' +printf 'service start trap checks passed\n' diff --git a/tests/backend/shell_inventory_regression.sh b/tests/shell_inventory.sh similarity index 97% rename from tests/backend/shell_inventory_regression.sh rename to tests/shell_inventory.sh index a70ed949..937b6ca5 100644 --- a/tests/backend/shell_inventory_regression.sh +++ b/tests/shell_inventory.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -euo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_FILES="$ROOT_DIR/podkop/files" PODKOP_BIN="$PODKOP_FILES/usr/bin/podkop" PODKOP_LIB="$PODKOP_FILES/usr/lib" @@ -86,4 +86,4 @@ if grep -n -E '(^|[^[:alnum:]_])(uci|rm|logger|rpcd|killall|jsonfilter|config_lo fail "LuCI uci-defaults must not own cache, rpcd, logging, or UCI logic" fi -printf 'shell inventory regression checks passed\n' +printf 'shell inventory checks passed\n' diff --git a/tests/backend/sing_box_runtime_regression.sh b/tests/sing_box_runtime.sh similarity index 99% rename from tests/backend/sing_box_runtime_regression.sh rename to tests/sing_box_runtime.sh index 1f919af4..76f75d07 100644 --- a/tests/backend/sing_box_runtime_regression.sh +++ b/tests/sing_box_runtime.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" PODKOP_BIN="$ROOT_DIR/podkop/files/usr/bin/podkop" CLI_UC="$PODKOP_BIN" @@ -935,4 +935,4 @@ assert(length(test_metadata) == 1, "same subscription URL metadata kept for seco assert(test_metadata[0].sourceSection == "test-subscription-1" && test_metadata[0].title == "WolfPN", "test source metadata marker"); ' "$WORK_DIR" -printf 'sing-box runtime regression checks passed\n' +printf 'sing-box runtime checks passed\n' diff --git a/tests/backend/singbox_rulesets_regression.sh b/tests/singbox_rulesets.sh similarity index 93% rename from tests/backend/singbox_rulesets_regression.sh rename to tests/singbox_rulesets.sh index 79117df4..d97bb53d 100644 --- a/tests/backend/singbox_rulesets_regression.sh +++ b/tests/singbox_rulesets.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" RULESETS_UC="$ROOT_DIR/podkop/files/usr/lib/singbox/rulesets.uc" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" @@ -47,4 +47,4 @@ assert_eq binary \ ucode -L "$PODKOP_LIB" -e 'let rulesets = require("singbox.rulesets"); if (rulesets.kind_from_reference_hint("geoip") != "subnets") exit(1);' -printf 'singbox rulesets regression checks passed\n' +printf 'singbox rulesets checks passed\n' diff --git a/tests/backend/subscription_alpn_regression.sh b/tests/subscription_alpn.sh similarity index 98% rename from tests/backend/subscription_alpn_regression.sh rename to tests/subscription_alpn.sh index 771f6f6f..1a4ad0ca 100644 --- a/tests/backend/subscription_alpn_regression.sh +++ b/tests/subscription_alpn.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PARSER="$ROOT_DIR/podkop/files/usr/lib/subscription/parser.uc" WORK_DIR="$(mktemp -d)" @@ -180,4 +180,4 @@ ucode "$PARSER" normalize-content-validated "$gzip_input" "$gzip_output" assert_contains "$gzip_output" '"tag": "gzip-vless"' "gzip normalize validated" assert_contains "$gzip_output" '"alpn": [ "http/1.1" ]' "gzip normalized ALPN" -printf 'subscription ALPN regression checks passed\n' +printf 'subscription ALPN checks passed\n' diff --git a/tests/backend/subscription_cache_state_regression.sh b/tests/subscription_cache_state.sh similarity index 99% rename from tests/backend/subscription_cache_state_regression.sh rename to tests/subscription_cache_state.sh index b19aab8f..4d45de79 100644 --- a/tests/backend/subscription_cache_state_regression.sh +++ b/tests/subscription_cache_state.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" CACHE_UC="$ROOT_DIR/podkop/files/usr/lib/subscription/cache.uc" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" WORK_DIR="$(mktemp -d)" @@ -444,4 +444,4 @@ runtime_env cache_ucode persist-source-cache \ [ ! -e "$WORK_DIR/runtime/persistent/proxy-subscription-1.metadata.json" ] || fail "changed subscription URL with empty metadata must drop stale metadata" -printf 'subscription cache state regression checks passed\n' +printf 'subscription cache state checks passed\n' diff --git a/tests/backend/subscription_hysteria2_regression.sh b/tests/subscription_hysteria2.sh similarity index 96% rename from tests/backend/subscription_hysteria2_regression.sh rename to tests/subscription_hysteria2.sh index f45baf35..8eef128b 100644 --- a/tests/backend/subscription_hysteria2_regression.sh +++ b/tests/subscription_hysteria2.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" PARSER="$ROOT_DIR/podkop/files/usr/lib/subscription/parser.uc" GENERATOR="$ROOT_DIR/podkop/files/usr/lib/singbox/generator.uc" @@ -127,4 +127,4 @@ if grep -Fq '"utls"' "$generator_output"; then fail "sing-box generator must drop stale Hysteria2 TLS uTLS from subscription cache" fi -printf 'subscription Hysteria2 regression checks passed\n' +printf 'subscription Hysteria2 checks passed\n' diff --git a/tests/backend/subscription_source_entry_regression.sh b/tests/subscription_source_entry.sh similarity index 94% rename from tests/backend/subscription_source_entry_regression.sh rename to tests/subscription_source_entry.sh index f311a0df..0db03b76 100644 --- a/tests/backend/subscription_source_entry_regression.sh +++ b/tests/subscription_source_entry.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" PARSER="$ROOT_DIR/podkop/files/usr/lib/subscription/parser.uc" WORK_DIR="$(mktemp -d)" @@ -71,4 +71,4 @@ UCODE ucode -L "$PODKOP_LIB" "$WORK_DIR/require-subscription-parser.uc" -printf 'subscription source entry regression checks passed\n' +printf 'subscription source entry checks passed\n' diff --git a/tests/backend/subscription_update_job_regression.sh b/tests/subscription_update_job.sh similarity index 97% rename from tests/backend/subscription_update_job_regression.sh rename to tests/subscription_update_job.sh index c7a8ea29..e246aec7 100644 --- a/tests/backend/subscription_update_job_regression.sh +++ b/tests/subscription_update_job.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" UPDATES_UC="$ROOT_DIR/podkop/files/usr/lib/components/updates.uc" UPDATES_RUNTIME="$ROOT_DIR/podkop/files/usr/lib/updates_runtime.sh" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" @@ -139,4 +139,4 @@ if (value.message !== "Subscription update completed by fake worker") { } NODE -printf 'subscription update job regression checks passed\n' +printf 'subscription update job checks passed\n' diff --git a/tests/backend/subscription_update_reload_regression.sh b/tests/subscription_update_reload.sh similarity index 97% rename from tests/backend/subscription_update_reload_regression.sh rename to tests/subscription_update_reload.sh index 2372081a..dd224526 100644 --- a/tests/backend/subscription_update_reload_regression.sh +++ b/tests/subscription_update_reload.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" UPDATES_UC="$ROOT_DIR/podkop/files/usr/lib/components/updates.uc" REAL_LIB="$ROOT_DIR/podkop/files/usr/lib" WORK_DIR="$(mktemp -d)" @@ -178,4 +178,4 @@ if grep -Eq 'server/service|config/validator|singbox/runtime|singbox/priority|si fail "unchanged subscription update must not rebuild or reload sing-box" fi -printf 'subscription update reload regression checks passed\n' +printf 'subscription update reload checks passed\n' diff --git a/tests/backend/subscription_user_agent_regression.sh b/tests/subscription_user_agent.sh similarity index 94% rename from tests/backend/subscription_user_agent_regression.sh rename to tests/subscription_user_agent.sh index d6f1e633..d51f982b 100644 --- a/tests/backend/subscription_user_agent_regression.sh +++ b/tests/subscription_user_agent.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" CACHE_UC="$ROOT_DIR/podkop/files/usr/lib/subscription/cache.uc" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" WORK_DIR="$(mktemp -d)" @@ -70,4 +70,4 @@ if cache_ucode user-agent-matches-config "Custom/1.0" Hiddify "$default_ua" >/de fail "configured UA should reject fallback cached UA" fi -printf 'subscription user-agent regression checks passed\n' +printf 'subscription user-agent checks passed\n' diff --git a/tests/backend/ui_runtime_job_regression.sh b/tests/ui_runtime_job.sh similarity index 99% rename from tests/backend/ui_runtime_job_regression.sh rename to tests/ui_runtime_job.sh index 4172f5bb..79c180af 100644 --- a/tests/backend/ui_runtime_job_regression.sh +++ b/tests/ui_runtime_job.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" UI_UC="$ROOT_DIR/podkop/files/usr/lib/service/ui.uc" PODKOP_FILES="$ROOT_DIR/podkop/files" PODKOP_BIN="$PODKOP_FILES/usr/bin/podkop" @@ -284,4 +284,4 @@ fi ui_ucode action-ack service "$job_id" >/dev/null || fail "action-ack should acknowledge finished service action" -printf 'UI runtime job regression checks passed\n' +printf 'UI runtime job checks passed\n' diff --git a/tests/backend/updates_due_regression.sh b/tests/updates_due.sh similarity index 98% rename from tests/backend/updates_due_regression.sh rename to tests/updates_due.sh index 1e635f44..dd8912e0 100644 --- a/tests/backend/updates_due_regression.sh +++ b/tests/updates_due.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" UPDATES_UC="$ROOT_DIR/podkop/files/usr/lib/components/updates.uc" @@ -277,4 +277,4 @@ invalid_due="$(updates_ucode subscription-update-section-due-status-fixture "$WO assert_eq 2 "$status" "invalid subscription due status" assert_eq $'error\tbad' "$invalid_due" "invalid subscription due output" -printf 'updates due regression checks passed\n' +printf 'updates due checks passed\n' diff --git a/tests/backend/urltest_groups_regression.sh b/tests/urltest_groups.sh similarity index 99% rename from tests/backend/urltest_groups_regression.sh rename to tests/urltest_groups.sh index 9da9bb8e..52d8cfbc 100644 --- a/tests/backend/urltest_groups_regression.sh +++ b/tests/urltest_groups.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" PARSER_UC="$PODKOP_LIB/subscription/parser.uc" GENERATOR_UC="$PODKOP_LIB/singbox/generator.uc" @@ -659,4 +659,4 @@ if (!urltest || length(urltest.outbounds || []) != 1 || urltest.outbounds[0] != die("cached country.is metadata was not applied to URLTest filtering\n"); ' "$country_is_config" || fail "URLTest country.is cached filtering" -printf 'URLTest group regression checks passed\n' +printf 'URLTest group checks passed\n' diff --git a/tests/backend/urltest_interrupt_regression.sh b/tests/urltest_interrupt.sh similarity index 98% rename from tests/backend/urltest_interrupt_regression.sh rename to tests/urltest_interrupt.sh index 1e9183e2..355e8467 100644 --- a/tests/backend/urltest_interrupt_regression.sh +++ b/tests/urltest_interrupt.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" WORK_DIR="$(mktemp -d)" @@ -257,4 +257,4 @@ if (!contains(selector.outbounds, "proxy-urltest-cfg020001-out")) die("URLTest outbound should remain in selector\n"); ' "$hide_added_output" || fail "URLTest hide added selector regression" -printf 'URLTest interrupt regression checks passed\n' +printf 'URLTest interrupt checks passed\n' diff --git a/tests/backend/zapret_runtime_owner_regression.sh b/tests/zapret_runtime_owner.sh similarity index 98% rename from tests/backend/zapret_runtime_owner_regression.sh rename to tests/zapret_runtime_owner.sh index fde87dcb..9d1d0a5b 100644 --- a/tests/backend/zapret_runtime_owner_regression.sh +++ b/tests/zapret_runtime_owner.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_BIN="$ROOT_DIR/podkop/files/usr/bin/podkop" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" CLI_UC="$PODKOP_BIN" @@ -149,4 +149,4 @@ printf 'table inet x { chain y { queue num 4301 bypass } }\n' | ucode -L "$PODKOP_LIB" "$ZAPRET2_CHECK" nft-queue-overlap PodkopPlusTable 4300 4555 >/dev/null || fail "providers/zapret2/check.uc must own zapret2 queue overlap checks" -printf 'zapret runtime ownership regression checks passed\n' +printf 'zapret runtime ownership checks passed\n' diff --git a/tests/backend/zapret_validator_regression.sh b/tests/zapret_validator.sh similarity index 97% rename from tests/backend/zapret_validator_regression.sh rename to tests/zapret_validator.sh index d062c832..0733083e 100644 --- a/tests/backend/zapret_validator_regression.sh +++ b/tests/zapret_validator.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PODKOP_LIB="$ROOT_DIR/podkop/files/usr/lib" VALIDATOR="$ROOT_DIR/podkop/files/usr/lib/providers/zapret/validator.uc" ZAPRET2_VALIDATOR="$ROOT_DIR/podkop/files/usr/lib/providers/zapret2/validator.uc" @@ -109,4 +109,4 @@ UCODE ucode -L "$PODKOP_LIB" "$WORK_DIR/require-zapret-validator.uc" -printf 'Zapret validator regression checks passed\n' +printf 'Zapret validator checks passed\n'