aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/aes128_anon/client_find_servers.conf20
-rw-r--r--tests/aes128_anon/server_lds.conf12
-rw-r--r--tests/aes128_anon/server_register.conf21
-rw-r--r--tests/aes128_user/client.conf11
-rw-r--r--tests/aes128_user/client_find_servers.conf24
-rw-r--r--tests/aes128_user/server_lds.conf3
-rw-r--r--tests/aes128_user/server_register.conf25
-rw-r--r--tests/aes128_user/server_register_client.conf14
-rw-r--r--tests/basic256sha256_anon/client.conf9
-rw-r--r--tests/basic256sha256_anon/client_find_servers.conf20
-rw-r--r--tests/basic256sha256_anon/server_lds.conf3
-rw-r--r--tests/basic256sha256_anon/server_register.conf19
-rw-r--r--tests/basic256sha256_anon/server_register_client.conf12
-rw-r--r--tests/basic256sha256_user/client_find_servers.conf24
-rw-r--r--tests/basic256sha256_user/server_lds.conf14
-rw-r--r--tests/basic256sha256_user/server_register.conf25
-rw-r--r--tests/none_anon/client.conf9
-rw-r--r--tests/none_anon/client_find_servers.conf20
-rw-r--r--tests/none_anon/server_lds.conf3
-rw-r--r--tests/none_anon/server_register.conf19
-rw-r--r--tests/none_anon/server_register_client.conf12
-rw-r--r--tests/none_user/client.conf11
-rw-r--r--tests/none_user/client_find_servers.conf24
-rw-r--r--tests/none_user/server_lds.conf3
-rw-r--r--tests/none_user/server_register.conf25
-rw-r--r--tests/none_user/server_register_client.conf14
-rwxr-xr-xtests/run_test.sh94
27 files changed, 180 insertions, 310 deletions
diff --git a/tests/aes128_anon/client_find_servers.conf b/tests/aes128_anon/client_find_servers.conf
deleted file mode 100644
index 2cc096d..0000000
--- a/tests/aes128_anon/client_find_servers.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-# ClientFindServers — test: aes128_anon
-
-discoveryEndpoint = opc.tcp://localhost:14840
-applicationUri = urn:bobink.ClientFindServers
-
-# Discovery (LDS) side
-discoveryCertificate = certs/ClientFindServers_cert.der
-discoveryPrivateKey = certs/ClientFindServers_key.der
-discoverySecurityMode = SignAndEncrypt
-discoverySecurityPolicy = Aes128_Sha256_RsaOaep
-discoveryAuthMode = anonymous
-discoveryTrustList = certs/ServerLDS_cert.der
-
-# Server side
-serverCertificate = certs/ClientFindServers_cert.der
-serverPrivateKey = certs/ClientFindServers_key.der
-serverSecurityMode = SignAndEncrypt
-serverSecurityPolicy = Aes128_Sha256_RsaOaep
-serverAuthMode = anonymous
-serverTrustList = certs/ServerRegister_cert.der
diff --git a/tests/aes128_anon/server_lds.conf b/tests/aes128_anon/server_lds.conf
deleted file mode 100644
index e8601d0..0000000
--- a/tests/aes128_anon/server_lds.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# ServerLDS — test: aes128_anon
-
-port = 14840
-applicationUri = urn:bobink.ServerLDS
-certificate = certs/ServerLDS_cert.der
-privateKey = certs/ServerLDS_key.der
-cleanupTimeout = 60
-
-authMode = anonymous
-
-trustList = certs/ServerRegisterClient_cert.der
-trustList = certs/ClientFindServers_cert.der
diff --git a/tests/aes128_anon/server_register.conf b/tests/aes128_anon/server_register.conf
deleted file mode 100644
index 8a8d1d1..0000000
--- a/tests/aes128_anon/server_register.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# ServerRegister — test: aes128_anon
-
-port = 14841
-applicationUri = urn:bobink.ServerRegister
-serverCertificate = certs/ServerRegister_cert.der
-serverPrivateKey = certs/ServerRegister_key.der
-clientCertificate = certs/ServerRegisterClient_cert.der
-clientPrivateKey = certs/ServerRegisterClient_key.der
-
-discoveryEndpoint = opc.tcp://localhost:14840
-registerInterval = 10
-
-securityMode = SignAndEncrypt
-securityPolicy = Aes128_Sha256_RsaOaep
-
-serverAuthMode = anonymous
-
-clientAuthMode = anonymous
-
-trustList = certs/ServerLDS_cert.der
-trustList = certs/ClientFindServers_cert.der
diff --git a/tests/aes128_user/client.conf b/tests/aes128_user/client.conf
new file mode 100644
index 0000000..026cd99
--- /dev/null
+++ b/tests/aes128_user/client.conf
@@ -0,0 +1,11 @@
+# Client — test: aes128_user
+
+applicationUri = urn:bobink.ClientFindServers
+certificate = certs/ClientFindServers_cert.der
+privateKey = certs/ClientFindServers_key.der
+securityMode = SignAndEncrypt
+securityPolicy = Aes128_Sha256_RsaOaep
+authMode = user
+username = user
+password = password
+trustStore = certs/trust/client
diff --git a/tests/aes128_user/client_find_servers.conf b/tests/aes128_user/client_find_servers.conf
deleted file mode 100644
index 4ecff56..0000000
--- a/tests/aes128_user/client_find_servers.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-# ClientFindServers — test: aes128_user
-
-discoveryEndpoint = opc.tcp://localhost:14840
-applicationUri = urn:bobink.ClientFindServers
-
-# Discovery (LDS) side
-discoveryCertificate = certs/ClientFindServers_cert.der
-discoveryPrivateKey = certs/ClientFindServers_key.der
-discoverySecurityMode = SignAndEncrypt
-discoverySecurityPolicy = Aes128_Sha256_RsaOaep
-discoveryAuthMode = user
-discoveryUsername = user
-discoveryPassword = password
-discoveryTrustList = certs/ServerLDS_cert.der
-
-# Server side
-serverCertificate = certs/ClientFindServers_cert.der
-serverPrivateKey = certs/ClientFindServers_key.der
-serverSecurityMode = SignAndEncrypt
-serverSecurityPolicy = Aes128_Sha256_RsaOaep
-serverAuthMode = user
-serverUsername = user
-serverPassword = password
-serverTrustList = certs/ServerRegister_cert.der
diff --git a/tests/aes128_user/server_lds.conf b/tests/aes128_user/server_lds.conf
index 484512a..c440ea4 100644
--- a/tests/aes128_user/server_lds.conf
+++ b/tests/aes128_user/server_lds.conf
@@ -10,5 +10,4 @@ authMode = user
username = user
password = password
-trustList = certs/ServerRegisterClient_cert.der
-trustList = certs/ClientFindServers_cert.der
+trustStore = certs/trust/server_lds
diff --git a/tests/aes128_user/server_register.conf b/tests/aes128_user/server_register.conf
index e100129..b0ce271 100644
--- a/tests/aes128_user/server_register.conf
+++ b/tests/aes128_user/server_register.conf
@@ -1,25 +1,14 @@
-# ServerRegister — test: aes128_user
+# ServerRegister server config — test: aes128_user
port = 14841
applicationUri = urn:bobink.ServerRegister
-serverCertificate = certs/ServerRegister_cert.der
-serverPrivateKey = certs/ServerRegister_key.der
-clientCertificate = certs/ServerRegisterClient_cert.der
-clientPrivateKey = certs/ServerRegisterClient_key.der
+certificate = certs/ServerRegister_cert.der
+privateKey = certs/ServerRegister_key.der
-discoveryEndpoint = opc.tcp://localhost:14840
registerInterval = 10
-securityMode = SignAndEncrypt
-securityPolicy = Aes128_Sha256_RsaOaep
+authMode = user
+username = user
+password = password
-serverAuthMode = user
-serverUsername = user
-serverPassword = password
-
-clientAuthMode = user
-clientUsername = user
-clientPassword = password
-
-trustList = certs/ServerLDS_cert.der
-trustList = certs/ClientFindServers_cert.der
+trustStore = certs/trust/server_register
diff --git a/tests/aes128_user/server_register_client.conf b/tests/aes128_user/server_register_client.conf
new file mode 100644
index 0000000..c919f7e
--- /dev/null
+++ b/tests/aes128_user/server_register_client.conf
@@ -0,0 +1,14 @@
+# ServerRegister client config — test: aes128_user
+
+applicationUri = urn:bobink.ServerRegister
+certificate = certs/ServerRegisterClient_cert.der
+privateKey = certs/ServerRegisterClient_key.der
+
+securityMode = SignAndEncrypt
+securityPolicy = Aes128_Sha256_RsaOaep
+
+authMode = user
+username = user
+password = password
+
+trustStore = certs/trust/server_register_client
diff --git a/tests/basic256sha256_anon/client.conf b/tests/basic256sha256_anon/client.conf
new file mode 100644
index 0000000..e46bb4c
--- /dev/null
+++ b/tests/basic256sha256_anon/client.conf
@@ -0,0 +1,9 @@
+# Client — test: basic256sha256_anon
+
+applicationUri = urn:bobink.ClientFindServers
+certificate = certs/ClientFindServers_cert.der
+privateKey = certs/ClientFindServers_key.der
+securityMode = SignAndEncrypt
+securityPolicy = Basic256Sha256
+authMode = anonymous
+trustStore = certs/trust/client
diff --git a/tests/basic256sha256_anon/client_find_servers.conf b/tests/basic256sha256_anon/client_find_servers.conf
deleted file mode 100644
index 332c3da..0000000
--- a/tests/basic256sha256_anon/client_find_servers.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-# ClientFindServers — test: basic256sha256_anon
-
-discoveryEndpoint = opc.tcp://localhost:14840
-applicationUri = urn:bobink.ClientFindServers
-
-# Discovery (LDS) side
-discoveryCertificate = certs/ClientFindServers_cert.der
-discoveryPrivateKey = certs/ClientFindServers_key.der
-discoverySecurityMode = SignAndEncrypt
-discoverySecurityPolicy = Basic256Sha256
-discoveryAuthMode = anonymous
-discoveryTrustList = certs/ServerLDS_cert.der
-
-# Server side
-serverCertificate = certs/ClientFindServers_cert.der
-serverPrivateKey = certs/ClientFindServers_key.der
-serverSecurityMode = SignAndEncrypt
-serverSecurityPolicy = Basic256Sha256
-serverAuthMode = anonymous
-serverTrustList = certs/ServerRegister_cert.der
diff --git a/tests/basic256sha256_anon/server_lds.conf b/tests/basic256sha256_anon/server_lds.conf
index 7da2fd6..add5f46 100644
--- a/tests/basic256sha256_anon/server_lds.conf
+++ b/tests/basic256sha256_anon/server_lds.conf
@@ -8,5 +8,4 @@ cleanupTimeout = 60
authMode = anonymous
-trustList = certs/ServerRegisterClient_cert.der
-trustList = certs/ClientFindServers_cert.der
+trustStore = certs/trust/server_lds
diff --git a/tests/basic256sha256_anon/server_register.conf b/tests/basic256sha256_anon/server_register.conf
index 798bf31..a5f904c 100644
--- a/tests/basic256sha256_anon/server_register.conf
+++ b/tests/basic256sha256_anon/server_register.conf
@@ -1,21 +1,12 @@
-# ServerRegister — test: basic256sha256_anon
+# ServerRegister server config — test: basic256sha256_anon
port = 14841
applicationUri = urn:bobink.ServerRegister
-serverCertificate = certs/ServerRegister_cert.der
-serverPrivateKey = certs/ServerRegister_key.der
-clientCertificate = certs/ServerRegisterClient_cert.der
-clientPrivateKey = certs/ServerRegisterClient_key.der
+certificate = certs/ServerRegister_cert.der
+privateKey = certs/ServerRegister_key.der
-discoveryEndpoint = opc.tcp://localhost:14840
registerInterval = 10
-securityMode = SignAndEncrypt
-securityPolicy = Basic256Sha256
+authMode = anonymous
-serverAuthMode = anonymous
-
-clientAuthMode = anonymous
-
-trustList = certs/ServerLDS_cert.der
-trustList = certs/ClientFindServers_cert.der
+trustStore = certs/trust/server_register
diff --git a/tests/basic256sha256_anon/server_register_client.conf b/tests/basic256sha256_anon/server_register_client.conf
new file mode 100644
index 0000000..3a80d21
--- /dev/null
+++ b/tests/basic256sha256_anon/server_register_client.conf
@@ -0,0 +1,12 @@
+# ServerRegister client config — test: basic256sha256_anon
+
+applicationUri = urn:bobink.ServerRegister
+certificate = certs/ServerRegisterClient_cert.der
+privateKey = certs/ServerRegisterClient_key.der
+
+securityMode = SignAndEncrypt
+securityPolicy = Basic256Sha256
+
+authMode = anonymous
+
+trustStore = certs/trust/server_register_client
diff --git a/tests/basic256sha256_user/client_find_servers.conf b/tests/basic256sha256_user/client_find_servers.conf
deleted file mode 100644
index 403dfa4..0000000
--- a/tests/basic256sha256_user/client_find_servers.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-# ClientFindServers — test: basic256sha256_user
-
-discoveryEndpoint = opc.tcp://localhost:14840
-applicationUri = urn:bobink.ClientFindServers
-
-# Discovery (LDS) side
-discoveryCertificate = certs/ClientFindServers_cert.der
-discoveryPrivateKey = certs/ClientFindServers_key.der
-discoverySecurityMode = SignAndEncrypt
-discoverySecurityPolicy = Basic256Sha256
-discoveryAuthMode = user
-discoveryUsername = user
-discoveryPassword = password
-discoveryTrustList = certs/ServerLDS_cert.der
-
-# Server side
-serverCertificate = certs/ClientFindServers_cert.der
-serverPrivateKey = certs/ClientFindServers_key.der
-serverSecurityMode = SignAndEncrypt
-serverSecurityPolicy = Basic256Sha256
-serverAuthMode = user
-serverUsername = user
-serverPassword = password
-serverTrustList = certs/ServerRegister_cert.der
diff --git a/tests/basic256sha256_user/server_lds.conf b/tests/basic256sha256_user/server_lds.conf
deleted file mode 100644
index 6841bb6..0000000
--- a/tests/basic256sha256_user/server_lds.conf
+++ /dev/null
@@ -1,14 +0,0 @@
-# ServerLDS — test: basic256sha256_user
-
-port = 14840
-applicationUri = urn:bobink.ServerLDS
-certificate = certs/ServerLDS_cert.der
-privateKey = certs/ServerLDS_key.der
-cleanupTimeout = 60
-
-authMode = user
-username = user
-password = password
-
-trustList = certs/ServerRegisterClient_cert.der
-trustList = certs/ClientFindServers_cert.der
diff --git a/tests/basic256sha256_user/server_register.conf b/tests/basic256sha256_user/server_register.conf
deleted file mode 100644
index 636edd8..0000000
--- a/tests/basic256sha256_user/server_register.conf
+++ /dev/null
@@ -1,25 +0,0 @@
-# ServerRegister — test: basic256sha256_user
-
-port = 14841
-applicationUri = urn:bobink.ServerRegister
-serverCertificate = certs/ServerRegister_cert.der
-serverPrivateKey = certs/ServerRegister_key.der
-clientCertificate = certs/ServerRegisterClient_cert.der
-clientPrivateKey = certs/ServerRegisterClient_key.der
-
-discoveryEndpoint = opc.tcp://localhost:14840
-registerInterval = 10
-
-securityMode = SignAndEncrypt
-securityPolicy = Basic256Sha256
-
-serverAuthMode = user
-serverUsername = user
-serverPassword = password
-
-clientAuthMode = user
-clientUsername = user
-clientPassword = password
-
-trustList = certs/ServerLDS_cert.der
-trustList = certs/ClientFindServers_cert.der
diff --git a/tests/none_anon/client.conf b/tests/none_anon/client.conf
new file mode 100644
index 0000000..32eea7c
--- /dev/null
+++ b/tests/none_anon/client.conf
@@ -0,0 +1,9 @@
+# Client — test: none_anon
+
+applicationUri = urn:bobink.ClientFindServers
+certificate = certs/ClientFindServers_cert.der
+privateKey = certs/ClientFindServers_key.der
+securityMode = None
+securityPolicy = None
+authMode = anonymous
+trustStore = certs/trust/client
diff --git a/tests/none_anon/client_find_servers.conf b/tests/none_anon/client_find_servers.conf
deleted file mode 100644
index 6ea7d2d..0000000
--- a/tests/none_anon/client_find_servers.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-# ClientFindServers — test: none_anon
-
-discoveryEndpoint = opc.tcp://localhost:14840
-applicationUri = urn:bobink.ClientFindServers
-
-# Discovery (LDS) side
-discoveryCertificate = certs/ClientFindServers_cert.der
-discoveryPrivateKey = certs/ClientFindServers_key.der
-discoverySecurityMode = None
-discoverySecurityPolicy = None
-discoveryAuthMode = anonymous
-discoveryTrustList = certs/ServerLDS_cert.der
-
-# Server side
-serverCertificate = certs/ClientFindServers_cert.der
-serverPrivateKey = certs/ClientFindServers_key.der
-serverSecurityMode = None
-serverSecurityPolicy = None
-serverAuthMode = anonymous
-serverTrustList = certs/ServerRegister_cert.der
diff --git a/tests/none_anon/server_lds.conf b/tests/none_anon/server_lds.conf
index 705b51f..cf1ae45 100644
--- a/tests/none_anon/server_lds.conf
+++ b/tests/none_anon/server_lds.conf
@@ -8,5 +8,4 @@ cleanupTimeout = 60
authMode = anonymous
-trustList = certs/ServerRegisterClient_cert.der
-trustList = certs/ClientFindServers_cert.der
+trustStore = certs/trust/server_lds
diff --git a/tests/none_anon/server_register.conf b/tests/none_anon/server_register.conf
index 349b6c7..e89fd59 100644
--- a/tests/none_anon/server_register.conf
+++ b/tests/none_anon/server_register.conf
@@ -1,21 +1,12 @@
-# ServerRegister — test: none_anon
+# ServerRegister server config — test: none_anon
port = 14841
applicationUri = urn:bobink.ServerRegister
-serverCertificate = certs/ServerRegister_cert.der
-serverPrivateKey = certs/ServerRegister_key.der
-clientCertificate = certs/ServerRegisterClient_cert.der
-clientPrivateKey = certs/ServerRegisterClient_key.der
+certificate = certs/ServerRegister_cert.der
+privateKey = certs/ServerRegister_key.der
-discoveryEndpoint = opc.tcp://localhost:14840
registerInterval = 10
-securityMode = None
-securityPolicy = None
+authMode = anonymous
-serverAuthMode = anonymous
-
-clientAuthMode = anonymous
-
-trustList = certs/ServerLDS_cert.der
-trustList = certs/ClientFindServers_cert.der
+trustStore = certs/trust/server_register
diff --git a/tests/none_anon/server_register_client.conf b/tests/none_anon/server_register_client.conf
new file mode 100644
index 0000000..83bf961
--- /dev/null
+++ b/tests/none_anon/server_register_client.conf
@@ -0,0 +1,12 @@
+# ServerRegister client config — test: none_anon
+
+applicationUri = urn:bobink.ServerRegister
+certificate = certs/ServerRegisterClient_cert.der
+privateKey = certs/ServerRegisterClient_key.der
+
+securityMode = None
+securityPolicy = None
+
+authMode = anonymous
+
+trustStore = certs/trust/server_register_client
diff --git a/tests/none_user/client.conf b/tests/none_user/client.conf
new file mode 100644
index 0000000..18419f0
--- /dev/null
+++ b/tests/none_user/client.conf
@@ -0,0 +1,11 @@
+# Client — test: none_user
+
+applicationUri = urn:bobink.ClientFindServers
+certificate = certs/ClientFindServers_cert.der
+privateKey = certs/ClientFindServers_key.der
+securityMode = None
+securityPolicy = None
+authMode = user
+username = user
+password = password
+trustStore = certs/trust/client
diff --git a/tests/none_user/client_find_servers.conf b/tests/none_user/client_find_servers.conf
deleted file mode 100644
index b538952..0000000
--- a/tests/none_user/client_find_servers.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-# ClientFindServers — test: none_user
-
-discoveryEndpoint = opc.tcp://localhost:14840
-applicationUri = urn:bobink.ClientFindServers
-
-# Discovery (LDS) side
-discoveryCertificate = certs/ClientFindServers_cert.der
-discoveryPrivateKey = certs/ClientFindServers_key.der
-discoverySecurityMode = None
-discoverySecurityPolicy = None
-discoveryAuthMode = user
-discoveryUsername = user
-discoveryPassword = password
-discoveryTrustList = certs/ServerLDS_cert.der
-
-# Server side
-serverCertificate = certs/ClientFindServers_cert.der
-serverPrivateKey = certs/ClientFindServers_key.der
-serverSecurityMode = None
-serverSecurityPolicy = None
-serverAuthMode = user
-serverUsername = user
-serverPassword = password
-serverTrustList = certs/ServerRegister_cert.der
diff --git a/tests/none_user/server_lds.conf b/tests/none_user/server_lds.conf
index eb6c2ff..12b2e4d 100644
--- a/tests/none_user/server_lds.conf
+++ b/tests/none_user/server_lds.conf
@@ -10,5 +10,4 @@ authMode = user
username = user
password = password
-trustList = certs/ServerRegisterClient_cert.der
-trustList = certs/ClientFindServers_cert.der
+trustStore = certs/trust/server_lds
diff --git a/tests/none_user/server_register.conf b/tests/none_user/server_register.conf
index 890790e..81cf046 100644
--- a/tests/none_user/server_register.conf
+++ b/tests/none_user/server_register.conf
@@ -1,25 +1,14 @@
-# ServerRegister — test: none_user
+# ServerRegister server config — test: none_user
port = 14841
applicationUri = urn:bobink.ServerRegister
-serverCertificate = certs/ServerRegister_cert.der
-serverPrivateKey = certs/ServerRegister_key.der
-clientCertificate = certs/ServerRegisterClient_cert.der
-clientPrivateKey = certs/ServerRegisterClient_key.der
+certificate = certs/ServerRegister_cert.der
+privateKey = certs/ServerRegister_key.der
-discoveryEndpoint = opc.tcp://localhost:14840
registerInterval = 10
-securityMode = None
-securityPolicy = None
+authMode = user
+username = user
+password = password
-serverAuthMode = user
-serverUsername = user
-serverPassword = password
-
-clientAuthMode = user
-clientUsername = user
-clientPassword = password
-
-trustList = certs/ServerLDS_cert.der
-trustList = certs/ClientFindServers_cert.der
+trustStore = certs/trust/server_register
diff --git a/tests/none_user/server_register_client.conf b/tests/none_user/server_register_client.conf
new file mode 100644
index 0000000..14f409b
--- /dev/null
+++ b/tests/none_user/server_register_client.conf
@@ -0,0 +1,14 @@
+# ServerRegister client config — test: none_user
+
+applicationUri = urn:bobink.ServerRegister
+certificate = certs/ServerRegisterClient_cert.der
+privateKey = certs/ServerRegisterClient_key.der
+
+securityMode = None
+securityPolicy = None
+
+authMode = user
+username = user
+password = password
+
+trustStore = certs/trust/server_register_client
diff --git a/tests/run_test.sh b/tests/run_test.sh
index 8a87824..ef359ef 100755
--- a/tests/run_test.sh
+++ b/tests/run_test.sh
@@ -5,7 +5,8 @@
# Usage: tests/run_test.sh <config_dir> <expected_policy>
#
# config_dir — directory containing server_lds.conf,
-# server_register.conf, client_find_servers.conf
+# server_register.conf, server_register_client.conf,
+# client.conf
# expected_policy — security-policy string that must appear in
# the client's endpoint listing (e.g.
# "Basic256Sha256", "Aes128_Sha256_RsaOaep",
@@ -35,6 +36,24 @@ cleanup() {
}
trap cleanup EXIT
+# ── helpers ────────────────────────────────────────────────────
+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
+}
+
# ── port check ─────────────────────────────────────────────────
for port in $LDS_PORT $SR_PORT; do
if ss -tlnp 2>/dev/null | grep -q ":${port} "; then
@@ -46,29 +65,14 @@ done
# ── start LDS ──────────────────────────────────────────────────
build/ServerLDS "$CONFIG_DIR/server_lds.conf" >/dev/null 2>&1 &
LDS_PID=$!
-sleep 2
-if ! kill -0 "$LDS_PID" 2>/dev/null; then
- echo "FAIL: ServerLDS exited prematurely"
- exit 1
-fi
+wait_for_port "$LDS_PORT" "$LDS_PID" "ServerLDS"
# ── start ServerRegister ───────────────────────────────────────
-build/ServerRegister "$CONFIG_DIR/server_register.conf" >/dev/null 2>&1 &
+build/ServerRegister "$CONFIG_DIR/server_register.conf" "$CONFIG_DIR/server_register_client.conf" "opc.tcp://localhost:$LDS_PORT" >/dev/null 2>&1 &
SR_PID=$!
-sleep 3
-if ! kill -0 "$SR_PID" 2>/dev/null; then
- echo "FAIL: ServerRegister exited prematurely"
- exit 1
-fi
+wait_for_port "$SR_PORT" "$SR_PID" "ServerRegister"
-# ── run client ─────────────────────────────────────────────────
-TMPFILE=$(mktemp)
-# UA_Log_Stdout writes to stdout; capture both stdout and stderr.
-build/ClientFindServers "$CONFIG_DIR/client_find_servers.conf" >"$TMPFILE" 2>&1
-CLIENT_RC=$?
-CLIENT_OUTPUT=$(<"$TMPFILE")
-
-# ── validation checks ─────────────────────────────────────────
+# ── validation helper ─────────────────────────────────────────
check() {
local label="$1" result="$2"
if [ "$result" -eq 0 ]; then
@@ -79,27 +83,49 @@ check() {
fi
}
-# 1. Exit code
-[ "$CLIENT_RC" -eq 0 ]
-check "client exit code is 0 (got $CLIENT_RC)" $?
+# ── FindServers ───────────────────────────────────────────────
+TMPFILE=$(mktemp)
+build/Client "$CONFIG_DIR/client.conf" find-servers "opc.tcp://localhost:$LDS_PORT" >"$TMPFILE" 2>&1
+FS_RC=$?
+FS_OUTPUT=$(<"$TMPFILE")
+
+[ "$FS_RC" -eq 0 ]
+check "find-servers exit code is 0 (got $FS_RC)" $?
+
+echo "$FS_OUTPUT" | grep -q "urn:bobink.ServerRegister"
+check "find-servers contains urn:bobink.ServerRegister" $?
+
+# ── GetEndpoints ──────────────────────────────────────────────
+build/Client "$CONFIG_DIR/client.conf" get-endpoints "opc.tcp://localhost:$SR_PORT" >"$TMPFILE" 2>&1
+GE_RC=$?
+GE_OUTPUT=$(<"$TMPFILE")
+
+[ "$GE_RC" -eq 0 ]
+check "get-endpoints exit code is 0 (got $GE_RC)" $?
+
+echo "$GE_OUTPUT" | grep -q "$EXPECTED_POLICY"
+check "get-endpoints contains $EXPECTED_POLICY" $?
-# 2. FindServers returned the registered server
-echo "$CLIENT_OUTPUT" | grep -q "urn:bobink.ServerRegister"
-check "FindServers contains urn:bobink.ServerRegister" $?
+# ── ReadTime ──────────────────────────────────────────────────
+build/Client "$CONFIG_DIR/client.conf" read-time "opc.tcp://localhost:$SR_PORT" >"$TMPFILE" 2>&1
+RT_RC=$?
+RT_OUTPUT=$(<"$TMPFILE")
-# 3. Client read the current time
-echo "$CLIENT_OUTPUT" | grep -q "date is:"
-check "client read current time" $?
+[ "$RT_RC" -eq 0 ]
+check "read-time exit code is 0 (got $RT_RC)" $?
-# 4. Endpoint lists expected security policy
-echo "$CLIENT_OUTPUT" | grep -q "$EXPECTED_POLICY"
-check "endpoint contains $EXPECTED_POLICY" $?
+echo "$RT_OUTPUT" | grep -q "date is:"
+check "read-time output contains 'date is:'" $?
# ── result ─────────────────────────────────────────────────────
if [ "$FAILURES" -ne 0 ]; then
echo ""
- echo "--- client output ---"
- echo "$CLIENT_OUTPUT"
+ echo "--- find-servers output ---"
+ echo "$FS_OUTPUT"
+ echo "--- get-endpoints output ---"
+ echo "$GE_OUTPUT"
+ echo "--- read-time output ---"
+ echo "$RT_OUTPUT"
echo "--- end ---"
exit 1
fi