Skip to content

Runtime Error "SSE Invalid Operation" when Asserting a Real after a String #237

@GustlCGN

Description

@GustlCGN

Describe the bug
When running a Test with first an AssertEquals_String with an Empty String and then an AssertEquals_Real a runtime Error can occur. This probably happens because TcUnit is checking all prior assertions which leads to the String being interpreted as a Real which can lead to a Invalid Real and a crash follows. As this check happens with the union of the expected and actual value, the crash also depends on both expected and actual value of the string. My observation is that, one has to be a NaN and the other one has to be really empty for the crash to happen.

To Reproduce
Reproducing the problem is difficult, probably because it is depended on the old data in the memory area allocated to the T_MaxString. But if you do first an AssertEquals_String with an Empty String and then an AssertEquals_Real the runtime Error can occur. Maybe if you write directly to the memory area of the string a more deterministic crash can be achieved.

Expected behavior
The assertion of the Real should not be dependent on asserting a String before.

Screenshots
grafik
The picture shows the NaN when the String is interpreted as a Real.

Software versions
TcUnit 1.3.0,
TwinCAT XAE version 55

Run environment
Desktop development machine

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions