diff --git a/TcUnit/TcUnit/DUTs/ST_TestCaseResult.TcDUT b/TcUnit/TcUnit/DUTs/ST_TestCaseResult.TcDUT
index 2d77c16..d0c58e2 100644
--- a/TcUnit/TcUnit/DUTs/ST_TestCaseResult.TcDUT
+++ b/TcUnit/TcUnit/DUTs/ST_TestCaseResult.TcDUT
@@ -8,6 +8,7 @@ STRUCT
TestIsFailed : BOOL;
TestIsSkipped : BOOL;
FailureMessage : T_MaxString;
+ FailureAssertion : Tc2_System.T_MaxString;
FailureType : E_AssertionType;
NumberOfAsserts : UINT;
Duration : LREAL; // in seconds
diff --git a/TcUnit/TcUnit/ITFs/I_AssertMessageFormatter.TcIO b/TcUnit/TcUnit/ITFs/I_AssertMessageFormatter.TcIO
index 67bfe3e..59cae67 100644
--- a/TcUnit/TcUnit/ITFs/I_AssertMessageFormatter.TcIO
+++ b/TcUnit/TcUnit/ITFs/I_AssertMessageFormatter.TcIO
@@ -4,7 +4,7 @@
-
-
0 THEN
TestInstancePathFinal := CONCAT(STR1 := TestInstancePathFinal,
STR2 := ', MSG: %s');
@@ -57,4 +60,4 @@ GVL_TcUnit.AdsMessageQueue.WriteLog(MsgCtrlMask := ADSLOG_MSGTYPE_ERROR,
-
\ No newline at end of file
+
diff --git a/TcUnit/TcUnit/POUs/FB_Test.TcPOU b/TcUnit/TcUnit/POUs/FB_Test.TcPOU
index c40dfb0..c80568d 100644
--- a/TcUnit/TcUnit/POUs/FB_Test.TcPOU
+++ b/TcUnit/TcUnit/POUs/FB_Test.TcPOU
@@ -17,6 +17,7 @@ VAR
// Failure parameters. If TestIsFailed is TRUE, the other parameters will hold values as well
TestIsFailed : BOOL; // Indication of whether this test has at least one failed assert
AssertionMessage : T_MaxString; // Assertion message for the first assertion in this test
+ AssertionFailure : Tc2_System.T_MaxString; // Assertion failure for the first assertion in this test
AssertionType : E_AssertionType; // Assertion type for the first assertion in this test
StartedAt : LWORD; // Temporary variable to calculate the actual duration of the test, the value holds the cpu cycle counter when a test is started in 100ns precision
@@ -25,6 +26,12 @@ END_VAR]]>
+
+
+
+
+
+
@@ -80,6 +87,18 @@ METHOD INTERNAL GetTestOrder : UINT(0..GVL_Param_TcUnit.MaxNumberOfTestsForEachT
+
+
+
+
+
+
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -328,10 +329,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := LREAL_TO_STRING(Actual));
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -365,6 +370,8 @@ VAR
ActualArrayIndex : ARRAY[1..2] OF DINT; // Array of current Actual array indexes when looping through arrays
Expected : REAL; // Single expected value
Actual : REAL; // Single actual value
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_REAL,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -479,11 +485,15 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := '] = ');
ActualString := CONCAT(STR1 := ActualString, STR2 := REAL_TO_STRING(Actual));
END_IF
-
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -517,6 +527,8 @@ VAR
ActualArrayIndex : ARRAY[1..3] OF DINT; // Array of current Actual array indexes when looping through arrays
Expected : LREAL; // Single expected value
Actual : LREAL; // Single actual value
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array3D_LREAL,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -659,10 +670,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := LREAL_TO_STRING(Actual));
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -699,6 +714,8 @@ VAR
ExpectedValueString : T_MaxString;
ActualValueString : T_MaxString;
FormatString : FB_FormatString; // String formatter for output messages
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array3D_REAL,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -841,10 +857,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := REAL_TO_STRING(Actual));
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -870,6 +890,8 @@ VAR
SizeOfActuals : DINT;
ExpectedsIndex : DINT;
ActualsIndex : DINT;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array_BOOL,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -929,10 +950,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := BOOL_TO_STRING(Actuals[ActualsIndex]));
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -960,6 +985,8 @@ VAR
ActualByteString : STRING;
ExpectedsIndex : DINT;
ActualsIndex : DINT;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array_BYTE,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -1028,10 +1054,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := ActualByteString);
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -1057,6 +1087,8 @@ VAR
SizeOfActuals : DINT;
ExpectedsIndex : DINT;
ActualsIndex : DINT;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array_DINT,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -1116,10 +1147,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := DINT_TO_STRING(Actuals[ActualsIndex]));
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -1147,6 +1182,8 @@ VAR
ActualDWordString : STRING;
ExpectedsIndex : DINT;
ActualsIndex : DINT;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array_DWORD,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -1214,10 +1250,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := ActualDWordString);
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -1243,6 +1283,8 @@ VAR
SizeOfActuals : DINT;
ExpectedsIndex : DINT;
ActualsIndex : DINT;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array_INT,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -1302,10 +1343,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := INT_TO_STRING(Actuals[ActualsIndex]));
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -1331,6 +1376,8 @@ VAR
SizeOfActuals : DINT;
ExpectedsIndex : DINT;
ActualsIndex : DINT;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array_LINT,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -1390,10 +1436,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := LINT_TO_STRING(Actuals[ActualsIndex]));
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -1420,6 +1470,8 @@ VAR
SizeOfActuals : DINT;
ExpectedsIndex : DINT;
ActualsIndex : DINT;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array_LREAL,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -1479,10 +1530,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := LREAL_TO_STRING(Actuals[ActualsIndex]));
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -1510,6 +1565,8 @@ VAR
ActualLWordString : STRING;
ExpectedsIndex : DINT;
ActualsIndex : DINT;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array_LWORD,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -1577,10 +1633,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := ActualLWordString);
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -1607,6 +1667,8 @@ VAR
SizeOfActuals : DINT;
ExpectedsIndex : DINT;
ActualsIndex : DINT;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array_REAL,
- AssertionMessage := Message);
-
+ TestMessage := Message;
+
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
ExpectedString := 'SIZE = ';
@@ -1666,10 +1727,13 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := REAL_TO_STRING(Actuals[ActualsIndex]));
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -1695,6 +1759,8 @@ VAR
SizeOfActuals : DINT;
ExpectedsIndex : DINT;
ActualsIndex : DINT;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array_SINT,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -1754,10 +1819,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := SINT_TO_STRING(Actuals[ActualsIndex]));
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -1783,6 +1852,8 @@ VAR
SizeOfActuals : DINT;
ExpectedsIndex : DINT;
ActualsIndex : DINT;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array_UDINT,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -1839,14 +1909,17 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := 'ARRAY[';
ActualString := CONCAT(STR1 := ActualString, STR2 := DINT_TO_STRING(ActualsIndex));
ActualString := CONCAT(STR1 := ActualString, STR2 := '] = ');
- ActualString :=
-CONCAT(STR1 := ActualString, STR2 := UDINT_TO_STRING(Actuals[ActualsIndex]));
+ ActualString := CONCAT(STR1 := ActualString, STR2 := UDINT_TO_STRING(Actuals[ActualsIndex]));
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -1872,6 +1945,8 @@ VAR
SizeOfActuals : DINT;
ExpectedsIndex : DINT;
ActualsIndex : DINT;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array_UINT,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -1931,10 +2005,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := UINT_TO_STRING(Actuals[ActualsIndex]));
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -1960,6 +2038,8 @@ VAR
SizeOfActuals : DINT;
ExpectedsIndex : DINT;
ActualsIndex : DINT;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array_ULINT,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -2019,10 +2098,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := ULINT_TO_STRING(Actuals[ActualsIndex]));
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -2048,6 +2131,8 @@ VAR
SizeOfActuals : DINT;
ExpectedsIndex : DINT;
ActualsIndex : DINT;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array_USINT,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -2107,10 +2191,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := USINT_TO_STRING(Actuals[ActualsIndex]));
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -2138,6 +2226,8 @@ VAR
ActualDWordString : STRING;
ExpectedsIndex : DINT;
ActualsIndex : DINT;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND NOT Equals THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_Array_WORD,
- AssertionMessage := Message);
+ TestMessage := Message;
IF NOT SizeEquals THEN
Message := CONCAT(STR1 := Message, STR2 := ', size of arrays not matching.');
@@ -2205,10 +2294,14 @@ IF NOT AlreadyReported AND NOT Equals THEN
ActualString := CONCAT(STR1 := ActualString, STR2 := ActualDWordString);
END_IF
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedString,
Actual := ActualString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -2281,6 +2374,9 @@ VAR
DataSizeNotEquals : BOOL; // The data size of the two ANY input parameters are not equal
DataContentNotEquals : BOOL; // The data content of the two ANY input parameters are not equal
IteratorCounter : DINT;
+
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND (DataTypesNotEquals OR DataSizeNotEquals OR DataContentNotEquals) THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_ANY,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := ExpectedDataString,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ExpectedDataString,
Actual := ActualDataString,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -2590,6 +2689,8 @@ END_VAR
VAR
AlreadyReported : BOOL;
TestInstancePath : T_MaxString;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_BOOL,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := BOOL_TO_STRING(Expected),
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := BOOL_TO_STRING(Expected),
Actual := BOOL_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -2630,6 +2734,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_BYTE,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := CONCAT(
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := Tc2_Standard.CONCAT(
STR1 := '0x',
STR2 := BYTE_TO_HEXSTR(in := Expected,
iPrecision := 2,
@@ -2664,6 +2769,10 @@ IF NOT AlreadyReported AND Expected <> Actual THEN
bLoCase := FALSE)),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -2678,6 +2787,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_DATE,
- AssertionMessage := Message);
-
- AssertMessageFormatter.LogAssertFailure(Expected := DATE_TO_STRING(Expected),
+ TestMessage := Message;
+
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := DATE_TO_STRING(Expected),
Actual := DATE_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -2718,6 +2832,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_DATE_AND_TIME,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := DT_TO_STRING(Expected),
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := DT_TO_STRING(Expected),
Actual := DT_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -2758,6 +2877,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_DINT,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := DINT_TO_STRING(Expected),
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := DINT_TO_STRING(Expected),
Actual := DINT_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -2798,6 +2922,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_DWORD,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := CONCAT(
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := Tc2_Standard.CONCAT(
STR1 := '0x',
STR2 := DWORD_TO_HEXSTR(in := Expected,
iPrecision := 8,
@@ -2832,6 +2957,10 @@ IF NOT AlreadyReported AND Expected <> Actual THEN
bLoCase := FALSE)),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -2846,6 +2975,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_INT,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := INT_TO_STRING(Expected),
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := INT_TO_STRING(Expected),
Actual := INT_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -2886,6 +3020,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_LINT,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := LINT_TO_STRING(Expected),
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := LINT_TO_STRING(Expected),
Actual := LINT_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -2927,6 +3066,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND ABS(Expected - Actual) > Delta THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_LREAL,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := LREAL_TO_STRING(Expected),
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := LREAL_TO_STRING(Expected),
Actual := LREAL_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -2967,6 +3111,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_LTIME,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := LTIME_TO_STRING(Expected),
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := LTIME_TO_STRING(Expected),
Actual := LTIME_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -3007,6 +3156,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_LWORD,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := CONCAT(
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := Tc2_Standard.CONCAT(
STR1 := '0x',
STR2 := LWORD_TO_HEXSTR(in := Expected,
iPrecision := 16,
@@ -3041,6 +3191,10 @@ IF NOT AlreadyReported AND Expected <> Actual THEN
bLoCase := FALSE)),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -3056,6 +3210,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND ABS(Expected - Actual) > Delta THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_REAL,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := REAL_TO_STRING(Expected),
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := REAL_TO_STRING(Expected),
Actual := REAL_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -3096,6 +3255,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_SINT,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := SINT_TO_STRING(Expected),
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := SINT_TO_STRING(Expected),
Actual := SINT_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -3136,6 +3300,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND (LEN(STR := Expected) <> LEN(STR := Actual) OR (Expected <> Actual)) THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_STRING,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := Expected,
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := Expected,
Actual := Actual,
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -3176,6 +3345,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_TIME,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := TIME_TO_STRING(Expected),
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := TIME_TO_STRING(Expected),
Actual := TIME_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -3216,6 +3390,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_TIME_OF_DAY,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := TOD_TO_STRING(Expected),
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := TOD_TO_STRING(Expected),
Actual := TOD_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -3256,6 +3435,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_UDINT,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := UDINT_TO_STRING(Expected),
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := UDINT_TO_STRING(Expected),
Actual := UDINT_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -3296,6 +3480,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_UINT,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := UINT_TO_STRING(Expected),
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := UINT_TO_STRING(Expected),
Actual := UINT_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -3336,6 +3525,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_ULINT,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := ULINT_TO_STRING(Expected),
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := ULINT_TO_STRING(Expected),
Actual := ULINT_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -3376,6 +3570,8 @@ END_VAR
VAR
AlreadyReported : BOOL;
TestInstancePath : T_MaxString;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_USINT,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := USINT_TO_STRING(Expected),
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := USINT_TO_STRING(Expected),
Actual := USINT_TO_STRING(Actual),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -3416,6 +3615,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND Expected <> Actual THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_WORD,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := CONCAT(
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := Tc2_Standard.CONCAT(
STR1 := '0x',
STR2 := WORD_TO_HEXSTR(in := Expected,
iPrecision := 4,
@@ -3450,6 +3650,10 @@ IF NOT AlreadyReported AND Expected <> Actual THEN
bLoCase := FALSE)),
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -3464,6 +3668,8 @@ END_VAR
VAR
TestInstancePath : T_MaxString;
AlreadyReported : BOOL;
+ TestMessage : Tc2_System.T_MaxString; // Holds the actual message of the test
+ TestFailure : Tc2_System.T_MaxString; // Holds the failure message of the test
END_VAR]]>
AlreadyReported);
IF NOT AlreadyReported AND (WLEN(STR := Expected) <> WLEN(STR := Actual) OR (Expected <> Actual)) THEN
- SetTestFailed(AssertionType := E_AssertionType.Type_WSTRING,
- AssertionMessage := Message);
+ TestMessage := Message;
- AssertMessageFormatter.LogAssertFailure(Expected := 'Not possible to print EXP unicode WSTRING value',
+ TestFailure := AssertMessageFormatter.LogAssertFailure(Expected := 'Not possible to print EXP unicode WSTRING value',
Actual := 'Not possible to print ACT unicode WSTRING value',
Message := Message,
TestInstancePath := TestInstancePath);
+
+ SetTestFailed(AssertionType := E_AssertionType.Type_Array2D_LREAL,
+ AssertionMessage := TestMessage,
+ AssertionFailure := TestFailure);
END_IF]]>
@@ -3755,6 +3964,7 @@ END_IF]]>
VAR_INPUT
AssertionType : E_AssertionType;
AssertionMessage : T_MaxString;
+ AssertionFailure : Tc2_System.T_MaxString;
END_VAR
VAR
IteratorCounter : UINT;
@@ -3769,6 +3979,7 @@ FOR IteratorCounter := 1 TO NumberOfTestsToAnalyse BY 1 DO
Tests[IteratorCounter].SetFailed();
Tests[IteratorCounter].SetAssertionType(AssertType := AssertionType);
Tests[IteratorCounter].SetAssertionMessage(AssertMessage := AssertionMessage);
+ Tests[IteratorCounter].SetAssertionFailure(AssertFailure := AssertionFailure);
END_IF
END_FOR]]>
@@ -3801,4 +4012,4 @@ SetTestFinished := FALSE;]]>
-
\ No newline at end of file
+
diff --git a/TcUnit/TcUnit/POUs/FB_xUnitXmlPublisher.TcPOU b/TcUnit/TcUnit/POUs/FB_xUnitXmlPublisher.TcPOU
index 741e7ee..cf93251 100644
--- a/TcUnit/TcUnit/POUs/FB_xUnitXmlPublisher.TcPOU
+++ b/TcUnit/TcUnit/POUs/FB_xUnitXmlPublisher.TcPOU
@@ -80,11 +80,17 @@ VAR
UnitTestResults : REFERENCE TO ST_TestSuiteResults;
CurrentSuiteNumber : UINT;
CurrentTestCount : UINT;
+ AdjustAssertFailureMessageToMax253CharLength : FB_AdjustAssertFailureMessageToMax253CharLength;
+ message : Tc2_System.T_MaxString;
+ FailureMessageLen : INT;
+ AssertionMessageLen : INT;
END_VAR
VAR CONSTANT
TEST_STATUS_SKIP : STRING := 'SKIP';
TEST_STATUS_PASS : STRING := 'PASS';
TEST_STATUS_FAIL : STRING := 'FAIL';
+ MSG_FMT_STRING_MAX_NUMBER_OF_CHARACTERS : INT := 253;
+ MSG_TOO_LONG : STRING := '...';
END_VAR]]>
*)
+
+ FailureMessageLen := Tc2_Standard.LEN(UnitTestResults.TestSuiteResults[CurrentSuiteNumber].TestCaseResults[CurrentTestCount].FailureMessage);
+ AssertionMessageLen := Tc2_Standard.LEN(UnitTestResults.TestSuiteResults[CurrentSuiteNumber].TestCaseResults[CurrentTestCount].FailureAssertion);
+ IF FailureMessageLen = 0
+ THEN
+ message := UnitTestResults.TestSuiteResults[CurrentSuiteNumber].TestCaseResults[CurrentTestCount].FailureAssertion;
+ ELSE
+ message := CONCAT(UnitTestResults.TestSuiteResults[CurrentSuiteNumber].TestCaseResults[CurrentTestCount].FailureMessage, CONCAT('; ', UnitTestResults.TestSuiteResults[CurrentSuiteNumber].TestCaseResults[CurrentTestCount].FailureAssertion));
+
+ IF Tc2_Standard.LEN(message) > MSG_FMT_STRING_MAX_NUMBER_OF_CHARACTERS
+ THEN
+ message := Tc2_Standard.LEFT(STR := message, SIZE := (MSG_FMT_STRING_MAX_NUMBER_OF_CHARACTERS - Tc2_Standard.LEN(STR := MSG_TOO_LONG)));
+ message := Tc2_Standard.CONCAT(STR1 := message, STR2 := MSG_TOO_LONG);
+ END_IF
+ END_IF
+
Xml.NewTag('failure');
- Xml.NewParameter('message', UnitTestResults.TestSuiteResults[CurrentSuiteNumber].TestCaseResults[CurrentTestCount].FailureMessage);
+ Xml.NewParameter('message', message);
Xml.NewParameter('type', F_AssertionTypeToString(UnitTestResults.TestSuiteResults[CurrentSuiteNumber].TestCaseResults[CurrentTestCount].FailureType));
// Close failure tag
Xml.CloseTag();
diff --git a/TcUnit/TcUnit/TcUnit.plcproj b/TcUnit/TcUnit/TcUnit.plcproj
index 89fb59a..e5dbaf2 100644
--- a/TcUnit/TcUnit/TcUnit.plcproj
+++ b/TcUnit/TcUnit/TcUnit.plcproj
@@ -435,4 +435,4 @@ Documentation and examples are available at www.tcunit.org
false
-->
-
\ No newline at end of file
+
diff --git a/TcUnit/TcUnit/Version/Global_Version.TcGVL b/TcUnit/TcUnit/Version/Global_Version.TcGVL
index 8175869..e3ecef6 100644
--- a/TcUnit/TcUnit/Version/Global_Version.TcGVL
+++ b/TcUnit/TcUnit/Version/Global_Version.TcGVL
@@ -11,4 +11,4 @@ VAR_GLOBAL CONSTANT
END_VAR
]]>
-
\ No newline at end of file
+