Simplify build and backend test layout

This commit is contained in:
ushan0v
2026-07-11 05:11:50 +03:00
parent d0b53e9525
commit dc052f03a7
64 changed files with 122 additions and 161 deletions
+5 -7
View File
@@ -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::"
+1 -1
View File
@@ -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
-1
View File
@@ -4,7 +4,6 @@ fe-app-podkop/.yarn/
fe-app-podkop/.env
.DS_Store
AGENTS.md
sandbox/
.wsl-build/
dist/
-12
View File
@@ -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
-11
View File
@@ -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
+2 -2
View File
@@ -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() {
-7
View File
@@ -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/
-6
View File
@@ -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/
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'
@@ -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'