Files
NeoTachyon/tests/core_ip.sh
T
Dushnilin 8c9bb8734b Рефакторинг и стабилизация: обновление установщика, бэкенд-утилит и оптимизация фронтенда
- Установщик (install.sh): внедрена верификация хешей sha256sums.txt, нормализована очерёдность бутстрапа ucode до языковых проверок.
- Сборщик (build.sh): добавлена автоматическая генерация sha256sums.txt для пакетов релиза.
- Бэкенд: права на honeypot FIFO ограничены до 0660 в watchdog.uc, исправлена опечатка в SUBNETS_TELEGRAM, удалён helpers.old.uc.
- Тесты бэкенда: написаны тесты для core_ip, core_url и config_connections.
- Фронтенд: реализовано автопереподключение WebSocket с экспоненциальным бэкоффом, проведена дедупликация виджетов и модальных окон в initController.ts, мигрирован CSS-префикс с fkp_ на tachyon_.
- Тесты фронтенда: добавлен initController.test.ts для тестирования загрузки дашборда.
2026-07-13 20:23:33 +03:00

50 lines
1.8 KiB
Bash

#!/usr/bin/env bash
set -eo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
TACHYON_LIB="$ROOT_DIR/tachyon/files/usr/lib"
ucode -L "$TACHYON_LIB" -e '
let ip = require("core.ip");
function assert(val, msg) {
if (!val) {
warn("Assertion failed: " + msg + "\n");
exit(1);
}
}
// valid_ipv4
assert(ip.valid_ipv4("1.1.1.1"), "1.1.1.1 should be valid");
assert(ip.valid_ipv4("255.255.255.255"), "255.255.255.255 should be valid");
assert(!ip.valid_ipv4("256.1.1.1"), "256.1.1.1 should be invalid");
assert(!ip.valid_ipv4("1.1.1.1.1"), "1.1.1.1.1 should be invalid");
assert(!ip.valid_ipv4("abc"), "abc should be invalid");
// valid_ipv4_cidr
assert(ip.valid_ipv4_cidr("1.1.1.1/32"), "1.1.1.1/32 should be valid");
assert(ip.valid_ipv4_cidr("192.168.1.0/24"), "192.168.1.0/24 should be valid");
assert(!ip.valid_ipv4_cidr("1.1.1.1/33"), "1.1.1.1/33 should be invalid");
assert(!ip.valid_ipv4_cidr("256.1.1.1/24"), "256.1.1.1/24 should be invalid");
// valid_ipv6
assert(ip.valid_ipv6("2001:db8::1"), "2001:db8::1 should be valid");
assert(ip.valid_ipv6("::1"), "::1 should be valid");
assert(!ip.valid_ipv6("2001:db8:::1"), "2001:db8:::1 should be invalid");
// valid_ipv6_cidr
assert(ip.valid_ipv6_cidr("2001:db8::1/64"), "2001:db8::1/64 should be valid");
assert(ip.valid_ipv6_cidr("::1/128"), "::1/128 should be valid");
assert(!ip.valid_ipv6_cidr("2001:db8::1/129"), "2001:db8::1/129 should be invalid");
// ip_family
assert(ip.ip_family("1.1.1.1") == 4, "family of 1.1.1.1 is 4");
assert(ip.ip_family("2001:db8::1") == 6, "family of 2001:db8::1 is 6");
assert(ip.ip_family("abc") == 0, "family of abc is 0");
// format_ipv6_tproxy_target
assert(ip.format_ipv6_tproxy_target("2001:db8::1", 1234) == "[2001:db8::1]:1234", "format IPv6 target");
'
printf 'core/ip checks passed\n'