mirror of
https://github.com/okhsunrog/vpnhide.git
synced 2026-05-06 03:24:19 +00:00
feat(codegen): grammar forms digits_optional / any + generated tests for all 4 langs
Some checks are pending
CI / kmod (android13-5.15) (push) Waiting to run
CI / kmod (android14-5.15) (push) Waiting to run
CI / kmod (android14-6.1) (push) Waiting to run
CI / kmod (android15-6.6) (push) Waiting to run
CI / kmod (android16-6.12) (push) Waiting to run
CI / kmod (android12-5.10) (push) Waiting to run
CI / kmod (android13-5.10) (push) Waiting to run
CI / setup (push) Waiting to run
CI / lint (push) Blocked by required conditions
CI / zygisk (push) Blocked by required conditions
CI / lsposed (push) Blocked by required conditions
CI / portshide (push) Waiting to run
CI / release (push) Blocked by required conditions
Some checks are pending
CI / kmod (android13-5.15) (push) Waiting to run
CI / kmod (android14-5.15) (push) Waiting to run
CI / kmod (android14-6.1) (push) Waiting to run
CI / kmod (android15-6.6) (push) Waiting to run
CI / kmod (android16-6.12) (push) Waiting to run
CI / kmod (android12-5.10) (push) Waiting to run
CI / kmod (android13-5.10) (push) Waiting to run
CI / setup (push) Waiting to run
CI / lint (push) Blocked by required conditions
CI / zygisk (push) Blocked by required conditions
CI / lsposed (push) Blocked by required conditions
CI / portshide (push) Waiting to run
CI / release (push) Blocked by required conditions
Two follow-ups to #90 in one PR: 1. Two new match forms in data/interfaces.toml grammar: suffix = "digits_optional" prefix + 0+ ASCII digits suffix = "any" prefix + 1+ any chars Needed by the upcoming whitelist (PR-B) for patterns like `seth_lte\d*` and `v4-.+`. Not used by any current [[vpn]] rule, but the helper functions are exercised by direct unit tests in the generated test modules so a bug would surface before whitelist lands. 2. [[test]] vectors in data/interfaces.toml that the codegen renders into per-language unit tests: - zygisk + lsposed/native: #[cfg(test)] mod tests inside the generated iface_lists.rs (run via `cargo test`) - lsposed/app: a separate IfaceListsGeneratedTest under src/test/kotlin (run via `:app:testDebugUnitTest`) - kmod: a userspace test driver test_iface_lists.c — the generated header now has __KERNEL__-guarded includes so the same matcher compiles against libc, and a new lint step builds and runs it via gcc. 36 fixed vectors today; trivial to grow as new rules / corner cases come up. CI catches drift on the next push: any single matcher that disagrees with the toml fails its job. No production behavior change — generated matches_vpn / vpnhide_iface_is_vpn / IfaceLists.isVpnIface bodies are byte-identical to before; only the helper functions and test modules grew.
This commit is contained in:
parent
d1328b75f7
commit
38f9b56f5b
9 changed files with 772 additions and 58 deletions
5
.github/workflows/ci.yml
vendored
5
.github/workflows/ci.yml
vendored
|
|
@ -63,6 +63,11 @@ jobs:
|
|||
# C (kernel module)
|
||||
- name: clang-format
|
||||
run: clang-format --dry-run --Werror kmod/vpnhide_kmod.c
|
||||
- name: kmod iface-list test (host build)
|
||||
run: |
|
||||
cd kmod
|
||||
gcc -O2 -Wall -Werror -o /tmp/test_iface_lists test_iface_lists.c
|
||||
/tmp/test_iface_lists
|
||||
|
||||
# Kotlin
|
||||
- name: ktlint
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue