Files

1631 lines
47 KiB
JSON

[
{
"sdk": "1.5.378.0",
"process": 2095,
"cases": [
{
"name": "trusted-SignAndEncrypt-API-key",
"status": "passed"
},
{
"name": "raw-UNS-URI-browse",
"status": "passed"
},
{
"name": "initial-quality-explicit-source-and-server-timestamps",
"status": "passed"
},
{
"name": "scalar-read-write-ns-2",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-2",
"status": "passed"
},
{
"name": "scalar-read-write-ns-3",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-3",
"status": "passed"
},
{
"name": "monitor-quality-timestamps",
"status": "passed"
},
{
"name": "event-filter-and-native-ack",
"status": "passed"
},
{
"name": "raw-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-where-filter-positive-and-negative",
"status": "passed"
}
],
"observations": [
{
"SecurityMode": "SignAndEncrypt",
"SecurityPolicyUri": "http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256"
},
{
"rawChildren": [
{
"NodeId": "ns=2;s=Matrix/dev/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Alarm",
"DisplayName": "Alarm",
"NodeClass": "Object",
"HasChildren": true
},
{
"NodeId": "ns=2;s=Matrix/dev/UnsetTimestamp",
"DisplayName": "UnsetTimestamp",
"NodeClass": "Variable",
"HasChildren": false
}
],
"unsChildren": [
{
"NodeId": "ns=3;s=Eq/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=3;s=Eq/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Alarm",
"DisplayName": "Alarm",
"NodeClass": "Object",
"HasChildren": true
}
]
},
{
"sourceTimestamp": "2026-10-01T00:00:00.0000000Z",
"serverTimestamp": "2026-11-10T17:08:30.7803750Z",
"contract": "Source supplied as 2026-10-01T00:00:00Z; server timestamp observed without normalization or historian algorithm changes"
},
{
"sourceTimestamp": "2026-11-10T17:08:30.8186650Z",
"serverTimestamp": "2026-11-10T17:08:30.8189610Z",
"status": "Good"
},
{
"sourceTimestamp": "2026-11-10T17:08:31.3060170Z",
"serverTimestamp": "2026-11-10T17:08:31.3060170Z",
"timestampObservation": "Fixture source supplied DateTime.MinValue (unset). These are unmodified application/SDK wire observations; no historian algorithm or expected timestamp was changed."
},
{
"benchmarkRound": 1,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.2347,
"p95": 0.2777,
"p99": 0.4115,
"throughputOperationsPerSecond": 4247.547041583485
},
"scalar-write": {
"p50": 0.2475,
"p95": 0.3551,
"p99": 0.467,
"throughputOperationsPerSecond": 3914.9669185295393
},
"array-read": {
"p50": 0.22,
"p95": 0.348,
"p99": 0.4761,
"throughputOperationsPerSecond": 4272.5548168783
},
"array-write": {
"p50": 0.2162,
"p95": 0.2537,
"p99": 0.308,
"throughputOperationsPerSecond": 4684.411216354217
}
},
"clientCpuMilliseconds": 59.439,
"clientAllocatedBytes": 1326424,
"clientWorkingSetBytes": 136069120,
"clientPrivateBytes": 0,
"clientThreads": 18,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 2,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.2139,
"p95": 0.2667,
"p99": 9.8394,
"throughputOperationsPerSecond": 2467.1255520193436
},
"scalar-write": {
"p50": 0.2129,
"p95": 0.2416,
"p99": 0.2922,
"throughputOperationsPerSecond": 4696.82025268893
},
"array-read": {
"p50": 0.159,
"p95": 0.1834,
"p99": 0.1943,
"throughputOperationsPerSecond": 6253.204767443315
},
"array-write": {
"p50": 0.1596,
"p95": 0.1851,
"p99": 0.2105,
"throughputOperationsPerSecond": 6296.515508317695
}
},
"clientCpuMilliseconds": 46.567,
"clientAllocatedBytes": 1325560,
"clientWorkingSetBytes": 137723904,
"clientPrivateBytes": 0,
"clientThreads": 18,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 3,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.1999,
"p95": 0.2326,
"p99": 0.2473,
"throughputOperationsPerSecond": 4936.467661200353
},
"scalar-write": {
"p50": 0.2064,
"p95": 0.2288,
"p99": 0.2527,
"throughputOperationsPerSecond": 4859.794916654518
},
"array-read": {
"p50": 0.1617,
"p95": 0.225,
"p99": 2.4465,
"throughputOperationsPerSecond": 4636.928498562553
},
"array-write": {
"p50": 0.2002,
"p95": 0.2324,
"p99": 0.2492,
"throughputOperationsPerSecond": 4939.637628183596
}
},
"clientCpuMilliseconds": 52.231,
"clientAllocatedBytes": 1299672,
"clientWorkingSetBytes": 139329536,
"clientPrivateBytes": 0,
"clientThreads": 18,
"clientHandles": 0,
"collections": [
1,
0,
0
]
}
],
"failures": 0,
"loadedSdkAssemblies": [
{
"name": "Opc.Ua.Core",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-baseline/bin/Release/net10.0/Opc.Ua.Core.dll"
},
{
"name": "Opc.Ua.Types",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-baseline/bin/Release/net10.0/Opc.Ua.Types.dll"
},
{
"name": "Opc.Ua.Configuration",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-baseline/bin/Release/net10.0/Opc.Ua.Configuration.dll"
},
{
"name": "Opc.Ua.Security.Certificates",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-baseline/bin/Release/net10.0/Opc.Ua.Security.Certificates.dll"
},
{
"name": "Opc.Ua.Client",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-baseline/bin/Release/net10.0/Opc.Ua.Client.dll"
}
],
"name": "baseline-client-to-baseline-server",
"server": {
"endpoint": "opc.tcp://127.0.0.1:51391/OtOpcUa",
"process": 2088,
"sdk": "1.5.378.0",
"rawUri": "https://zb.com/otopcua/raw",
"unsUri": "https://zb.com/otopcua/uns"
},
"status": "passed",
"historyBackendRequests": [
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 5
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
}
],
"certificateValidation": "explicit trusted peers; server and Shared client autoaccept disabled",
"authentication": "ephemeral API-key-shaped credential, exact fixture authenticator; real authority/ACL/method gates"
},
{
"sdk": "1.5.378.0",
"process": 2116,
"cases": [
{
"name": "trusted-SignAndEncrypt-API-key",
"status": "passed"
},
{
"name": "raw-UNS-URI-browse",
"status": "failed",
"error": "System.InvalidOperationException: Missing raw children: ns=2;s=Matrix/dev/Alarm\n at ProcessHost.Require(Boolean yes, String message) in /Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/scripts/validation/opcua-sdk-compatibility/ProcessHost.cs:line 59\n at ProcessHost.<>c__DisplayClass23_0.<<Client>b__3>d.MoveNext() in /Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/scripts/validation/opcua-sdk-compatibility/ProcessHost.cs:line 171\n--- End of stack trace from previous location ---\n at ProcessHost.Case(String name, Func`1 action) in /Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/scripts/validation/opcua-sdk-compatibility/ProcessHost.cs:line 62"
},
{
"name": "initial-quality-explicit-source-and-server-timestamps",
"status": "passed"
},
{
"name": "scalar-read-write-ns-2",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-2",
"status": "passed"
},
{
"name": "scalar-read-write-ns-3",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-3",
"status": "passed"
},
{
"name": "monitor-quality-timestamps",
"status": "passed"
},
{
"name": "event-filter-and-native-ack",
"status": "passed"
},
{
"name": "raw-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-where-filter-positive-and-negative",
"status": "passed"
}
],
"observations": [
{
"SecurityMode": "SignAndEncrypt",
"SecurityPolicyUri": "http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256"
},
{
"rawChildren": [
{
"NodeId": "ns=2;s=Matrix/dev/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/UnsetTimestamp",
"DisplayName": "UnsetTimestamp",
"NodeClass": "Variable",
"HasChildren": false
}
],
"unsChildren": [
{
"NodeId": "ns=3;s=Eq/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=3;s=Eq/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Alarm",
"DisplayName": "Alarm",
"NodeClass": "Object",
"HasChildren": true
}
]
},
{
"sourceTimestamp": "2026-10-01T00:00:00.0000000Z",
"serverTimestamp": "2026-11-10T17:08:34.9567910Z",
"contract": "Source supplied as 2026-10-01T00:00:00Z; server timestamp observed without normalization or historian algorithm changes"
},
{
"sourceTimestamp": "2026-11-10T17:08:35.0067640Z",
"serverTimestamp": "2026-11-10T17:08:35.0082430Z",
"status": "Good"
},
{
"sourceTimestamp": "2026-11-10T17:08:37.4194690Z",
"serverTimestamp": "2026-11-10T17:08:37.4194690Z",
"timestampObservation": "Fixture source supplied DateTime.MinValue (unset). These are unmodified application/SDK wire observations; no historian algorithm or expected timestamp was changed."
},
{
"benchmarkRound": 1,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.2877,
"p95": 0.3479,
"p99": 0.3968,
"throughputOperationsPerSecond": 3384.5070803888125
},
"scalar-write": {
"p50": 0.2809,
"p95": 0.3688,
"p99": 0.4182,
"throughputOperationsPerSecond": 3591.3348273286215
},
"array-read": {
"p50": 0.1883,
"p95": 0.2321,
"p99": 0.2993,
"throughputOperationsPerSecond": 5210.721580724499
},
"array-write": {
"p50": 0.2434,
"p95": 0.2744,
"p99": 0.2913,
"throughputOperationsPerSecond": 4162.850720173175
}
},
"clientCpuMilliseconds": 64.488,
"clientAllocatedBytes": 1311000,
"clientWorkingSetBytes": 138821632,
"clientPrivateBytes": 0,
"clientThreads": 19,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 2,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.2007,
"p95": 0.2446,
"p99": 0.2677,
"throughputOperationsPerSecond": 4869.4026216863695
},
"scalar-write": {
"p50": 0.1958,
"p95": 0.2334,
"p99": 0.2659,
"throughputOperationsPerSecond": 5017.259372240508
},
"array-read": {
"p50": 0.2241,
"p95": 0.2746,
"p99": 0.3111,
"throughputOperationsPerSecond": 4563.167933706297
},
"array-write": {
"p50": 0.2413,
"p95": 0.2929,
"p99": 0.3359,
"throughputOperationsPerSecond": 4081.1329224992865
}
},
"clientCpuMilliseconds": 49.282,
"clientAllocatedBytes": 1342232,
"clientWorkingSetBytes": 140460032,
"clientPrivateBytes": 0,
"clientThreads": 19,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 3,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.18,
"p95": 0.2434,
"p99": 0.2651,
"throughputOperationsPerSecond": 5161.610009394129
},
"scalar-write": {
"p50": 0.2279,
"p95": 0.289,
"p99": 2.7065,
"throughputOperationsPerSecond": 3560.467418162656
},
"array-read": {
"p50": 0.2116,
"p95": 0.3061,
"p99": 0.3697,
"throughputOperationsPerSecond": 4561.794062368847
},
"array-write": {
"p50": 0.2069,
"p95": 0.5657,
"p99": 1.1183,
"throughputOperationsPerSecond": 4077.604977940157
}
},
"clientCpuMilliseconds": 51.507,
"clientAllocatedBytes": 1283712,
"clientWorkingSetBytes": 142000128,
"clientPrivateBytes": 0,
"clientThreads": 19,
"clientHandles": 0,
"collections": [
1,
0,
0
]
}
],
"failures": 1,
"loadedSdkAssemblies": [
{
"name": "Opc.Ua.Core",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-baseline/bin/Release/net10.0/Opc.Ua.Core.dll"
},
{
"name": "Opc.Ua.Types",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-baseline/bin/Release/net10.0/Opc.Ua.Types.dll"
},
{
"name": "Opc.Ua.Configuration",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-baseline/bin/Release/net10.0/Opc.Ua.Configuration.dll"
},
{
"name": "Opc.Ua.Security.Certificates",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-baseline/bin/Release/net10.0/Opc.Ua.Security.Certificates.dll"
},
{
"name": "Opc.Ua.Client",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-baseline/bin/Release/net10.0/Opc.Ua.Client.dll"
}
],
"name": "baseline-client-to-candidate-server",
"server": {
"endpoint": "opc.tcp://127.0.0.1:51408/OtOpcUa",
"process": 2106,
"sdk": "2.0.1.0",
"rawUri": "https://zb.com/otopcua/raw",
"unsUri": "https://zb.com/otopcua/uns"
},
"status": "failed",
"historyBackendRequests": [
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 5
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
}
],
"certificateValidation": "explicit trusted peers; server and Shared client autoaccept disabled",
"authentication": "ephemeral API-key-shaped credential, exact fixture authenticator; real authority/ACL/method gates"
},
{
"sdk": "2.0.1.0",
"process": 2138,
"cases": [
{
"name": "trusted-SignAndEncrypt-API-key",
"status": "passed"
},
{
"name": "raw-UNS-URI-browse",
"status": "passed"
},
{
"name": "initial-quality-explicit-source-and-server-timestamps",
"status": "passed"
},
{
"name": "scalar-read-write-ns-2",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-2",
"status": "passed"
},
{
"name": "scalar-read-write-ns-3",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-3",
"status": "passed"
},
{
"name": "monitor-quality-timestamps",
"status": "passed"
},
{
"name": "event-filter-and-native-ack",
"status": "passed"
},
{
"name": "raw-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-where-filter-positive-and-negative",
"status": "passed"
}
],
"observations": [
{
"SecurityMode": "SignAndEncrypt",
"SecurityPolicyUri": "http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256"
},
{
"rawChildren": [
{
"NodeId": "ns=2;s=Matrix/dev/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Alarm",
"DisplayName": "Alarm",
"NodeClass": "Object",
"HasChildren": true
},
{
"NodeId": "ns=2;s=Matrix/dev/UnsetTimestamp",
"DisplayName": "UnsetTimestamp",
"NodeClass": "Variable",
"HasChildren": false
}
],
"unsChildren": [
{
"NodeId": "ns=3;s=Eq/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=3;s=Eq/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Alarm",
"DisplayName": "Alarm",
"NodeClass": "Object",
"HasChildren": true
}
]
},
{
"sourceTimestamp": "2026-10-01T00:00:00.0000000Z",
"serverTimestamp": "2026-11-10T17:08:40.3331160Z",
"contract": "Source supplied as 2026-10-01T00:00:00Z; server timestamp observed without normalization or historian algorithm changes"
},
{
"sourceTimestamp": "2026-11-10T17:08:40.3846180Z",
"serverTimestamp": "2026-11-10T17:08:40.3849830Z",
"status": "Good"
},
{
"sourceTimestamp": "2026-11-10T17:08:42.7341660Z",
"serverTimestamp": "2026-11-10T17:08:42.7341660Z",
"timestampObservation": "Fixture source supplied DateTime.MinValue (unset). These are unmodified application/SDK wire observations; no historian algorithm or expected timestamp was changed."
},
{
"benchmarkRound": 1,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.2351,
"p95": 0.2742,
"p99": 0.3472,
"throughputOperationsPerSecond": 4174.842399699412
},
"scalar-write": {
"p50": 0.2256,
"p95": 0.3225,
"p99": 0.3469,
"throughputOperationsPerSecond": 4430.2675881623245
},
"array-read": {
"p50": 0.1636,
"p95": 0.219,
"p99": 0.282,
"throughputOperationsPerSecond": 5734.0764696438
},
"array-write": {
"p50": 0.182,
"p95": 0.2217,
"p99": 0.3657,
"throughputOperationsPerSecond": 5398.635225015117
}
},
"clientCpuMilliseconds": 67.659,
"clientAllocatedBytes": 682192,
"clientWorkingSetBytes": 128434176,
"clientPrivateBytes": 0,
"clientThreads": 20,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 2,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.1898,
"p95": 0.2761,
"p99": 8.439,
"throughputOperationsPerSecond": 2790.5367318350022
},
"scalar-write": {
"p50": 0.1579,
"p95": 0.2199,
"p99": 0.2504,
"throughputOperationsPerSecond": 6137.755790972587
},
"array-read": {
"p50": 0.1529,
"p95": 0.1941,
"p99": 0.2041,
"throughputOperationsPerSecond": 6405.001024800167
},
"array-write": {
"p50": 0.197,
"p95": 0.224,
"p99": 0.3047,
"throughputOperationsPerSecond": 4992.11246230955
}
},
"clientCpuMilliseconds": 64.007,
"clientAllocatedBytes": 681896,
"clientWorkingSetBytes": 129269760,
"clientPrivateBytes": 0,
"clientThreads": 20,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 3,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.1911,
"p95": 0.2087,
"p99": 0.228,
"throughputOperationsPerSecond": 5317.338778288241
},
"scalar-write": {
"p50": 0.1544,
"p95": 0.1962,
"p99": 0.2215,
"throughputOperationsPerSecond": 6244.5360309729
},
"array-read": {
"p50": 0.1529,
"p95": 0.194,
"p99": 0.2007,
"throughputOperationsPerSecond": 6457.528832866238
},
"array-write": {
"p50": 0.1948,
"p95": 0.2181,
"p99": 0.2209,
"throughputOperationsPerSecond": 5132.363658759406
}
},
"clientCpuMilliseconds": 62.326,
"clientAllocatedBytes": 674328,
"clientWorkingSetBytes": 130105344,
"clientPrivateBytes": 0,
"clientThreads": 20,
"clientHandles": 0,
"collections": [
0,
0,
0
]
}
],
"failures": 0,
"loadedSdkAssemblies": [
{
"name": "Opc.Ua.Core",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-candidate/bin/Release/net10.0/Opc.Ua.Core.dll"
},
{
"name": "Opc.Ua.Types",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-candidate/bin/Release/net10.0/Opc.Ua.Types.dll"
},
{
"name": "Opc.Ua.Core.Types",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-candidate/bin/Release/net10.0/Opc.Ua.Core.Types.dll"
},
{
"name": "Opc.Ua.Configuration",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-candidate/bin/Release/net10.0/Opc.Ua.Configuration.dll"
},
{
"name": "Opc.Ua.Security.Certificates",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-candidate/bin/Release/net10.0/Opc.Ua.Security.Certificates.dll"
},
{
"name": "Opc.Ua.Client",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-candidate/bin/Release/net10.0/Opc.Ua.Client.dll"
}
],
"name": "candidate-client-to-baseline-server",
"server": {
"endpoint": "opc.tcp://127.0.0.1:51445/OtOpcUa",
"process": 2135,
"sdk": "1.5.378.0",
"rawUri": "https://zb.com/otopcua/raw",
"unsUri": "https://zb.com/otopcua/uns"
},
"status": "passed",
"historyBackendRequests": [
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 5
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
}
],
"certificateValidation": "explicit trusted peers; server and Shared client autoaccept disabled",
"authentication": "ephemeral API-key-shaped credential, exact fixture authenticator; real authority/ACL/method gates"
},
{
"sdk": "2.0.1.0",
"process": 2498,
"cases": [
{
"name": "trusted-SignAndEncrypt-API-key",
"status": "passed"
},
{
"name": "raw-UNS-URI-browse",
"status": "failed",
"error": "System.InvalidOperationException: Missing raw children: ns=2;s=Matrix/dev/Alarm\n at ProcessHost.Require(Boolean yes, String message) in /Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/scripts/validation/opcua-sdk-compatibility/ProcessHost.cs:line 59\n at ProcessHost.<>c__DisplayClass23_0.<<Client>b__3>d.MoveNext() in /Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/scripts/validation/opcua-sdk-compatibility/ProcessHost.cs:line 171\n--- End of stack trace from previous location ---\n at ProcessHost.Case(String name, Func`1 action) in /Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/scripts/validation/opcua-sdk-compatibility/ProcessHost.cs:line 62"
},
{
"name": "initial-quality-explicit-source-and-server-timestamps",
"status": "passed"
},
{
"name": "scalar-read-write-ns-2",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-2",
"status": "passed"
},
{
"name": "scalar-read-write-ns-3",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-3",
"status": "passed"
},
{
"name": "monitor-quality-timestamps",
"status": "passed"
},
{
"name": "event-filter-and-native-ack",
"status": "passed"
},
{
"name": "raw-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-where-filter-positive-and-negative",
"status": "passed"
}
],
"observations": [
{
"SecurityMode": "SignAndEncrypt",
"SecurityPolicyUri": "http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256"
},
{
"rawChildren": [
{
"NodeId": "ns=2;s=Matrix/dev/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/UnsetTimestamp",
"DisplayName": "UnsetTimestamp",
"NodeClass": "Variable",
"HasChildren": false
}
],
"unsChildren": [
{
"NodeId": "ns=3;s=Eq/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=3;s=Eq/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Alarm",
"DisplayName": "Alarm",
"NodeClass": "Object",
"HasChildren": true
}
]
},
{
"sourceTimestamp": "2026-10-01T00:00:00.0000000Z",
"serverTimestamp": "2026-11-10T17:08:46.4350150Z",
"contract": "Source supplied as 2026-10-01T00:00:00Z; server timestamp observed without normalization or historian algorithm changes"
},
{
"sourceTimestamp": "2026-11-10T17:08:46.4950230Z",
"serverTimestamp": "2026-11-10T17:08:46.4964010Z",
"status": "Good"
},
{
"sourceTimestamp": "2026-11-10T17:08:48.8292260Z",
"serverTimestamp": "2026-11-10T17:08:48.8292260Z",
"timestampObservation": "Fixture source supplied DateTime.MinValue (unset). These are unmodified application/SDK wire observations; no historian algorithm or expected timestamp was changed."
},
{
"benchmarkRound": 1,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.239,
"p95": 0.3001,
"p99": 0.358,
"throughputOperationsPerSecond": 4126.059365742155
},
"scalar-write": {
"p50": 0.2148,
"p95": 0.2879,
"p99": 0.3175,
"throughputOperationsPerSecond": 4492.040104934056
},
"array-read": {
"p50": 0.1875,
"p95": 0.2319,
"p99": 0.2727,
"throughputOperationsPerSecond": 5230.89155315632
},
"array-write": {
"p50": 0.2125,
"p95": 0.2495,
"p99": 0.2616,
"throughputOperationsPerSecond": 4711.558395054749
}
},
"clientCpuMilliseconds": 61.711,
"clientAllocatedBytes": 683008,
"clientWorkingSetBytes": 130859008,
"clientPrivateBytes": 0,
"clientThreads": 19,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 2,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.222,
"p95": 0.2395,
"p99": 0.257,
"throughputOperationsPerSecond": 4523.863379325944
},
"scalar-write": {
"p50": 0.2301,
"p95": 0.2691,
"p99": 0.2902,
"throughputOperationsPerSecond": 4321.110352516183
},
"array-read": {
"p50": 0.1783,
"p95": 0.2305,
"p99": 0.2665,
"throughputOperationsPerSecond": 5491.608821720411
},
"array-write": {
"p50": 0.1969,
"p95": 0.2422,
"p99": 0.2482,
"throughputOperationsPerSecond": 4943.935768386496
}
},
"clientCpuMilliseconds": 61.822,
"clientAllocatedBytes": 667360,
"clientWorkingSetBytes": 131710976,
"clientPrivateBytes": 0,
"clientThreads": 19,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 3,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.2294,
"p95": 0.2634,
"p99": 0.2932,
"throughputOperationsPerSecond": 4350.890627311411
},
"scalar-write": {
"p50": 0.2014,
"p95": 0.2714,
"p99": 0.2784,
"throughputOperationsPerSecond": 4738.932223791336
},
"array-read": {
"p50": 0.1888,
"p95": 0.2546,
"p99": 0.2766,
"throughputOperationsPerSecond": 5162.3560993237315
},
"array-write": {
"p50": 0.2432,
"p95": 0.2793,
"p99": 0.2975,
"throughputOperationsPerSecond": 4101.184422061091
}
},
"clientCpuMilliseconds": 66.152,
"clientAllocatedBytes": 675104,
"clientWorkingSetBytes": 132546560,
"clientPrivateBytes": 0,
"clientThreads": 19,
"clientHandles": 0,
"collections": [
0,
0,
0
]
}
],
"failures": 1,
"loadedSdkAssemblies": [
{
"name": "Opc.Ua.Core",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-candidate/bin/Release/net10.0/Opc.Ua.Core.dll"
},
{
"name": "Opc.Ua.Types",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-candidate/bin/Release/net10.0/Opc.Ua.Types.dll"
},
{
"name": "Opc.Ua.Core.Types",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-candidate/bin/Release/net10.0/Opc.Ua.Core.Types.dll"
},
{
"name": "Opc.Ua.Configuration",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-candidate/bin/Release/net10.0/Opc.Ua.Configuration.dll"
},
{
"name": "Opc.Ua.Security.Certificates",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-candidate/bin/Release/net10.0/Opc.Ua.Security.Certificates.dll"
},
{
"name": "Opc.Ua.Client",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/build-candidate/bin/Release/net10.0/Opc.Ua.Client.dll"
}
],
"name": "candidate-client-to-candidate-server",
"server": {
"endpoint": "opc.tcp://127.0.0.1:51485/OtOpcUa",
"process": 2491,
"sdk": "2.0.1.0",
"rawUri": "https://zb.com/otopcua/raw",
"unsUri": "https://zb.com/otopcua/uns"
},
"status": "failed",
"historyBackendRequests": [
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 5
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
}
],
"certificateValidation": "explicit trusted peers; server and Shared client autoaccept disabled",
"authentication": "ephemeral API-key-shaped credential, exact fixture authenticator; real authority/ACL/method gates"
},
{
"sdk": "2.0.1.0",
"process": 71,
"cases": [
{
"name": "driver-trusted-encrypted-API-key-connect",
"status": "passed"
},
{
"name": "driver-raw-UNS-URI-scalar-and-array-read",
"status": "passed"
},
{
"name": "driver-scalar-array-write-roundtrip",
"status": "passed"
},
{
"name": "driver-monitor-quality-timestamps",
"status": "passed"
},
{
"name": "production-CLI-read",
"status": "passed",
"log": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/candidate-driver-cli-to-baseline-server/cli-read.log",
"expectedOutput": "Value: 92"
},
{
"name": "production-CLI-raw-history",
"status": "passed",
"log": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/candidate-driver-cli-to-baseline-server/cli-raw-history.log",
"expectedOutput": "25 values returned."
},
{
"name": "production-CLI-event-history",
"status": "passed",
"log": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/candidate-driver-cli-to-baseline-server/cli-event-history.log",
"expectedOutput": "25 events returned."
}
],
"observations": [
{
"SourceTimestampUtc": "2026-11-10T17:08:54.4701737Z",
"ServerTimestampUtc": "2026-11-10T17:08:54.4710355Z",
"StatusCode": 0
},
{
"capability": "driver-history",
"status": "not-applicable",
"evidence": "Driver has no IHistoryProvider/HistoryRead capability; .claude/rules/drivers.md #655. Shared/CLI own history."
}
],
"failures": 0,
"loadedSdkAssemblies": [
{
"name": "Opc.Ua.Core",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Core.dll"
},
{
"name": "Opc.Ua.Types",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Types.dll"
},
{
"name": "Opc.Ua.Core.Types",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Core.Types.dll"
},
{
"name": "Opc.Ua.Client",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Client.dll"
},
{
"name": "Opc.Ua.Configuration",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Configuration.dll"
},
{
"name": "Opc.Ua.Security.Certificates",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Security.Certificates.dll"
}
],
"name": "candidate-driver-cli-to-baseline-server",
"status": "passed",
"container": "otopcua-sdk2-matrix-b25890fd7a1c",
"network": "none; all peers in task container, separate SDK processes",
"driverCertificateValidation": "explicit trusted peers; autoaccept disabled",
"cliCertificateValidation": "explicit exchanged peers; CLI always configures AutoAcceptCertificates=true (CommandBase.CreateConnectionSettings)",
"server": {
"endpoint": "opc.tcp://127.0.0.1:44507/OtOpcUa",
"process": 33,
"sdk": "1.5.378.0",
"rawUri": "https://zb.com/otopcua/raw",
"unsUri": "https://zb.com/otopcua/uns"
}
},
{
"sdk": "2.0.1.0",
"process": 79,
"cases": [
{
"name": "driver-trusted-encrypted-API-key-connect",
"status": "passed"
},
{
"name": "driver-raw-UNS-URI-scalar-and-array-read",
"status": "passed"
},
{
"name": "driver-scalar-array-write-roundtrip",
"status": "passed"
},
{
"name": "driver-monitor-quality-timestamps",
"status": "passed"
},
{
"name": "production-CLI-read",
"status": "passed",
"log": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/candidate-driver-cli-to-candidate-server/cli-read.log",
"expectedOutput": "Value: 92"
},
{
"name": "production-CLI-raw-history",
"status": "passed",
"log": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/candidate-driver-cli-to-candidate-server/cli-raw-history.log",
"expectedOutput": "25 values returned."
},
{
"name": "production-CLI-event-history",
"status": "passed",
"log": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-08/candidate-driver-cli-to-candidate-server/cli-event-history.log",
"expectedOutput": "25 events returned."
}
],
"observations": [
{
"SourceTimestampUtc": "2026-11-10T17:09:02.4564886Z",
"ServerTimestampUtc": "2026-11-10T17:09:02.4579244Z",
"StatusCode": 0
},
{
"capability": "driver-history",
"status": "not-applicable",
"evidence": "Driver has no IHistoryProvider/HistoryRead capability; .claude/rules/drivers.md #655. Shared/CLI own history."
}
],
"failures": 0,
"loadedSdkAssemblies": [
{
"name": "Opc.Ua.Core",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Core.dll"
},
{
"name": "Opc.Ua.Types",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Types.dll"
},
{
"name": "Opc.Ua.Core.Types",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Core.Types.dll"
},
{
"name": "Opc.Ua.Client",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Client.dll"
},
{
"name": "Opc.Ua.Configuration",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Configuration.dll"
},
{
"name": "Opc.Ua.Security.Certificates",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Security.Certificates.dll"
}
],
"name": "candidate-driver-cli-to-candidate-server",
"status": "passed",
"container": "otopcua-sdk2-matrix-1d0ef5c8d9ac",
"network": "none; all peers in task container, separate SDK processes",
"driverCertificateValidation": "explicit trusted peers; autoaccept disabled",
"cliCertificateValidation": "explicit exchanged peers; CLI always configures AutoAcceptCertificates=true (CommandBase.CreateConnectionSettings)",
"server": {
"endpoint": "opc.tcp://127.0.0.1:42475/OtOpcUa",
"process": 33,
"sdk": "2.0.1.0",
"rawUri": "https://zb.com/otopcua/raw",
"unsUri": "https://zb.com/otopcua/uns"
}
}
]