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 +