diff options
| author | Thomas Vanbesien <tvanbesi@proton.me> | 2026-02-19 00:01:18 +0100 |
|---|---|---|
| committer | Thomas Vanbesien <tvanbesi@proton.me> | 2026-02-19 00:01:18 +0100 |
| commit | f3648fefe040152bb1676d651ebf7d836cb8ac9e (patch) | |
| tree | a656270416167c3a15e61f937c27093a7fb05bf0 /tests/test_helpers.sh | |
| parent | 965db7e3243aecb02f7f57b4fe8dabe9ad50a697 (diff) | |
| download | BobinkCOpcUa-f3648fefe040152bb1676d651ebf7d836cb8ac9e.tar.gz BobinkCOpcUa-f3648fefe040152bb1676d651ebf7d836cb8ac9e.zip | |
Refactor: reduce duplication and tighten helpers
- Remove redundant applicationUri log in print_application_description
- Use UA_SECURITY_POLICY_NONE_URI macro instead of hardcoded string
- Extract _s_register_with_lds / _s_deregister_from_lds helpers
- Rename signal handler param 'sign' to 'sig' for consistency
- Add INT_MIN/INT_MAX bounds check to config_require_int
- Extract shared test helpers into tests/test_helpers.sh
Diffstat (limited to 'tests/test_helpers.sh')
| -rw-r--r-- | tests/test_helpers.sh | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/test_helpers.sh b/tests/test_helpers.sh new file mode 100644 index 0000000..a9d420c --- /dev/null +++ b/tests/test_helpers.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash +# --------------------------------------------------------------- +# Shared helpers for OPC UA discovery integration tests. +# +# Source this file from test scripts: +# source "$(dirname "$0")/test_helpers.sh" +# --------------------------------------------------------------- + +FAILURES=0 + +# Waits up to 5 seconds for a process to listen on a TCP port. +# Exits immediately if the process dies before the port opens. +# +# wait_for_port <port> <pid> <label> +wait_for_port() { + local port="$1" pid="$2" label="$3" i=0 + while [ $i -lt 50 ]; do + if ! kill -0 "$pid" 2>/dev/null; then + echo "FAIL: $label exited prematurely" + exit 1 + fi + if ss -tlnp 2>/dev/null | grep -q ":${port} "; then + return 0 + fi + sleep 0.1 + i=$((i + 1)) + done + echo "FAIL: $label did not listen on port $port within 5 s" + exit 1 +} + +# Records a PASS/FAIL result. Increments FAILURES on failure. +# +# check <label> <exit-code> +check() { + local label="$1" result="$2" + if [ "$result" -eq 0 ]; then + echo "PASS: $label" + else + echo "FAIL: $label" + FAILURES=$((FAILURES + 1)) + fi +} + +# Asserts that the given TCP ports are not already in use. +# Exits immediately if any port is occupied. +# +# assert_ports_free <port> [port...] +assert_ports_free() { + for port in "$@"; do + if ss -tlnp 2>/dev/null | grep -q ":${port} "; then + echo "FAIL: port $port is already in use" + exit 1 + fi + done +} |
