View Issue Details

IDProjectCategoryView StatusLast Update
0008467CTT UA Scripts1 - Script Issuepublic2023-05-04 16:43
ReporterV. Monfort Assigned ToAlexander Allmendinger  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Target Version1.03.502Fixed in Version1.03.502 
Summary0008467: Base Info Server Capabilities 005.js might lead to send too large WriteRequet message
Description

UACTT version: v1.04.11-01.00.500

UACTT attempts to write the maximum array size declared by the server (in my case 10000) in the available array variable nodes.
Those write operations are done in a single OPC UA message, which is likely to reach the maximum OpcUa message size since we are testing array length limit.
As a general remark, UACTT should check for too large messages compared to the HEL-ACK declared sizes and split those messages into several messages when needed.
For the particular case of Base Info Server Capabilities 005.js writing the array variable nodes into separate WriteRequests might reduce the probability of reaching the message maximum size allowed. I attached a patch for this minor modification.

TagsNo tags attached.
Attached Files
005.patch (1,401 bytes)   
--- a/maintree/Base Information/Base Info Server Capabilities/Test Cases/005.js   
+++ b/maintree/Base Information/Base Info Server Capabilities/Test Cases/005.js   
@@ -55,11 +55,13 @@ function test() {
     ReadHelper.Execute( { NodesToRead: writableNodes } );
     
     // overwrite the values by filling the array
-    for( var i=0; i<writableNodes.length; i++ ) UaVariant.Fill( { Variant: writableNodes[i].Value.Value, Length: realValue } );  // set the new value
-    if( WriteHelper.Execute( { NodesToWrite: writableNodes, ReadVerification: false } ) ) {
-        // now to revert all values back to their initial value....
-        for( var i=0; i<writableNodes.length; i++ ) writableNodes[i].Value.Value = writableNodes[i].InitialValue.clone();
-        WriteHelper.Execute( { NodesToWrite: writableNodes, ReadVerification: false } );
+    for( var i=0; i<writableNodes.length; i++ ){
+        UaVariant.Fill( { Variant: writableNodes[i].Value.Value, Length: realValue } );  // set the new value
+        if( WriteHelper.Execute( { NodesToWrite: writableNodes[i], ReadVerification: false } ) ) {
+            // now to revert all values back to their initial value....
+            writableNodes[i].Value.Value = writableNodes[i].InitialValue.clone();
+            WriteHelper.Execute( { NodesToWrite: writableNodes[i], ReadVerification: false } );
+        }
     }
     return( true );
 }
005.patch (1,401 bytes)   
Files Affected

Activities

Alexander Allmendinger

2023-02-09 15:41

developer   ~0018694

Changed to issue individual write request for every array test.

Also during the test I noticed that the test is silently skipped if no dynamic arrays are configured. I changed the script to also run if the max array size of the configured node matches the MaxArraySize.
Also added printing a skipped messages, when none of the nodes match the criteria.

Paul Hunkar

2023-05-04 16:43

administrator   ~0019284

Review change -9was previously also reviewed - was released before - agreed to all and closed

Issue History

Date Modified Username Field Change
2022-11-28 08:36 V. Monfort New Issue
2022-11-28 08:36 V. Monfort File Added: 005.patch
2023-01-26 17:43 Paul Hunkar Assigned To => Alexander Allmendinger
2023-01-26 17:43 Paul Hunkar Status new => assigned
2023-01-26 17:43 Paul Hunkar Project Compliance Test Tool (CTT) Unified Architecture => CTT UA Scripts
2023-01-26 17:44 Paul Hunkar Target Version => 1.03.502
2023-02-09 15:41 Alexander Allmendinger Status assigned => resolved
2023-02-09 15:41 Alexander Allmendinger Resolution open => fixed
2023-02-09 15:41 Alexander Allmendinger Note Added: 0018694
2023-05-04 16:43 Paul Hunkar Status resolved => closed
2023-05-04 16:43 Paul Hunkar Fixed in Version => 1.03.502
2023-05-04 16:43 Paul Hunkar Note Added: 0019284