<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Ticket search results</title><link>https://forge.codesys.com/lib/counit/tickets/</link><description>You searched for !status:wont-fix &amp;&amp; !status:closed</description><language>en</language><lastBuildDate>Fri, 18 Jul 2025 07:55:14 -0000</lastBuildDate><item><title>Test Suit Methods should be Protected not Private</title><link>https://forge.codesys.com/lib/counit/tickets/71/</link><description>I inherited from FB_TestSuite to create a AssertEquals_String that accepts longer strings, but I can't build because the following methods are marked private. They should be marked Protected.

* AddTestNameToInstancePath
* FindTestSuiteInstancePath
* SetTestFailed</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">bnewman</dc:creator><pubDate>Mon, 07 Jul 2025 20:48:08 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/71/</guid></item><item><title>AssertEquals_String doesn't work for Strings longer than 255 characters</title><link>https://forge.codesys.com/lib/counit/tickets/70/</link><description>AssertEquals_String doesn't work for strings longer than 255 characters

T_MaxString should be configurable. </description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">bnewman</dc:creator><pubDate>Mon, 07 Jul 2025 19:57:45 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/70/</guid></item><item><title>Links to help.codesys.com are dead</title><link>https://forge.codesys.com/lib/counit/tickets/69/</link><description>Hi!
On the start page are a few dead links to help.codesys.com. You may point to the new help system under helpme-codesys.com. The old system is sadly discontinued.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Thu, 06 Feb 2025 08:23:47 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/69/</guid></item><item><title>Request: Tutorial for Jinkins and example Python Scripts</title><link>https://forge.codesys.com/lib/counit/tickets/68/</link><description>It would be really nice if you guys could create a tutorial for setting up an Automated testing environment with Jinkins,and also include some example scripts.

This would make the learning curve much easier.



</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">bnewman</dc:creator><pubDate>Fri, 07 Jun 2024 18:33:36 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/68/</guid></item><item><title>AccessViolation Exception thrown in FB_AssertResultStatic.AddAssertResult()</title><link>https://forge.codesys.com/lib/counit/tickets/67/</link><description>AccessViolation Exception thrown in FB_AssertResultStatic.AddAssertResult()

Comparing 2 LREALS

See screen shots

</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">bnewman</dc:creator><pubDate>Wed, 04 Sep 2024 21:03:24 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/67/</guid></item><item><title>CoUnit Library installation error in CodeSys 3.5 SP11</title><link>https://forge.codesys.com/lib/counit/tickets/66/</link><description>Hello,

I have been unable to install **CoUnit Library in CodeSys 3.5 SP11**, by using the binaries provided in the SVN (v1.2.0.0.package or co♻e.library).

1. If I install "v1.2.0.0.package" via the Package Manager, I receive an installation error stating that co♻e.library is

&gt; not a zip file

2. If I try to open co♻e.library with CodeSys I receive an error stating

&gt; - The project file is corrupted or invalid
&gt; - The project has been saved with newer version of the programming system. If this is the case, you can open the project in the corresponding version, choose Save as... with the appropriate storage version, and retry again

How can I import CoUnit Library into CodeSys 3.5 SP11?

Thank you in advance,
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">azabala</dc:creator><pubDate>Wed, 08 May 2024 13:39:26 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/66/</guid></item><item><title>coUnitRunner Error: no more free global space</title><link>https://forge.codesys.com/lib/counit/tickets/65/</link><description>Hello together,

I have followed the tutorial for a first simple unit test and got the following error while compiling:

&gt; 
[INFORMATION] co♻e - a unittest framework for codesys, 1.2.0.0 (www.co5e.org): GVL_coUnit(line 33): co♻e - A unittest framework for CODESYS based on TcUnit. Forked with kind permission by Jakob Sagatowski and contributors. MIT Licensed.
[ERROR] co♻e - a unittest framework for codesys, 1.2.0.0 (www.co5e.org): GVL_coUnit(line 4): C0106: No more free global memory available: Variable 'coUnitRunner', 77728400 Bytes (Largest contiguous free memory 109824). Incremental translation or adding variables to the persistent variable lists could generate fragmented memory. Execute the "Reorder list and clean up gaps" command to defragment the list of persistent variables or "Translate, clean up" to reallocate the memory for other data and code.


Any ideas on how to resolve this error?

Thank you in advance!</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">elpanoo1</dc:creator><pubDate>Mon, 07 Oct 2024 12:32:41 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/65/</guid></item><item><title>Jenkins python scripts</title><link>https://forge.codesys.com/lib/counit/tickets/64/</link><description>Can someone post the python scripts used to automate unit testing. The website only refers to the general python scripting CODESYS website. For example: how to change the output path for the xUnit file and set it to the Jenkins folder? I figured out that it can be changed in the project library manager under the parameter global variable by selecting the parameter tab. No idea how to change it programmatically in python. I am sure people have done it for CodeForge Drone and it must be similar for Jenkins. Help please.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">adenis</dc:creator><pubDate>Fri, 27 Oct 2023 14:39:58 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/64/</guid></item><item><title>xml Results file not being written to file system</title><link>https://forge.codesys.com/lib/counit/tickets/63/</link><description>I am running my tests in Win Control 64 SL with the demo, so all should be good.

The file was not writing to C:\. No error was shown in the log. the log even said that it had written it.

I thought maybe it was a file system permissions issues so I created a folder called temp, sets its permission to allow everyone read/write/modify access and updated the path in the library Parameter list.

It again says it wrote the file to the location I specified but nothing is there.


</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">thecolonel26</dc:creator><pubDate>Mon, 10 Apr 2023 17:12:46 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/63/</guid></item><item><title>FB_AssertResultStatic.ReportResult - PLC Crash</title><link>https://forge.codesys.com/lib/counit/tickets/61/</link><description>If I have a test that asserts a condition across multiple cycles in a timed test (by default more than 1000), the PLC crashes.

The 1000 number depends on the setup of the maximum number of asserts allowed in the library.

It is expected obviously for the PLC not to crash if the number of unique asserts, not already reported, are below 1000.

A simple example is a test like this one:

Declaration:
~~~
METHOD IfFail_test
VAR_STAT
	
	State : WORD := 0;
	PrevState : WORD := 0;
	
	Cycles : DINT := 0;
	Test_Signal : BOOL := FALSE;
	
END_VAR
~~~

Code:
~~~
TEST('PLC_EXCEPTION');
PrevState := State;

CASE State OF
	
	0:
		// Initialize test.
		AssertFalse(Test_Signal, 'Signal is active!');
		
		Cycles := Cycles + 1;
		
		IF Cycles &gt; 2000 THEN
			State := 10;
		ELSE
			State := 0;
		END_IF; 

	10:
		TEST_FINISHED();
		
	ELSE
		State := 10;
		
END_CASE
~~~

I don't know exactly if this is "by-design".

Looking at the point where the exception is raised, I've found that the code of FB_AssertResultStatic.ReportResult has some information on how to distinguish assertions already "known" to the test, but the variables *FoundOne* and *AdditionalIdenticalAssert* are never set anywhere (at least for the knowledge I've of the code). Thus every assertion is considered a new assertion and recorded.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">stmos</dc:creator><pubDate>Wed, 18 May 2022 16:45:31 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/61/</guid></item><item><title>AssertEquals_REAL does not handle NaN</title><link>https://forge.codesys.com/lib/counit/tickets/60/</link><description>## What happened.
~~~
rlExpected := 1.0 / 0.0; // results in NaN
AssertEquals_REAL(0.0, rlExpected, 0.0001, 'comparison of a valid REAL and NaN should fail');
~~~

## What I expected.

A comparison between a float value and NaN should be a fail.
Comparison between NaN, +Inf, -Inf should also be supported. If both Expected and Actual are NaN (etc) it should pass.

## What happened instead.

The test passed.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jtebokkel</dc:creator><pubDate>Tue, 24 May 2022 22:56:28 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/60/</guid></item><item><title>FAQ page not working</title><link>https://forge.codesys.com/lib/counit/tickets/59/</link><description>Hi, I just ran across counit and so far it is looking great. I do have a few questions and attempted to visit the FAQ but getting an error when doing so.

The FAQ link from the main project page goes to https://forge.codesys.com/lib/counit/questions I have had no luck accessing it while being logged in or logged out.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mr337</dc:creator><pubDate>Wed, 19 Jun 2024 09:57:15 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/59/</guid></item><item><title>Create .yml pipeline and tuned manifest </title><link>https://forge.codesys.com/lib/counit/tickets/57/</link><description>Create .yml pipeline and tuned manifest per svn / git repo in order to automate various tasks</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aliazzz</dc:creator><pubDate>Sun, 09 Jan 2022 11:13:18 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/57/</guid></item><item><title>AssertEquals_STRING fails to display Error Severity</title><link>https://forge.codesys.com/lib/counit/tickets/55/</link><description>When testing a sanitizing function I loaded a STRING(255) with a string of length 255. When that string fails to be equal I'll get the test marked as failed, but the PLC log doesn't highlight the error. (See attached screen shot)

I'd expect to have a FAILED TEST log message for that test.

I presume it is because comparing two strings of length 255 breaks the messaging system.

#### T001_Parametrize
~~~
METHOD T001_Parametrize
VAR_INPUT
	sTestName : STRING(255);
	val : STRING(255);
	expected : STRING(255);
END_VAR
VAR
	result : STRING(255);
END_VAR

TEST(sTestName);

result := TMT.Sanitize(val);

AssertEquals_STRING(expected, result, 'unexpected sanitize result');

TEST_FINISHED();
~~~


#### Method calls
~~~
T001_Parametrize('T001_Parameterize:nothing to do', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris mollis lectus nisi, id suscipit felis porta sit amet. Sed tincidunt pharetra velit vitae molestie. Fusce auctor ornare posuere. Class aptent taciti sociosqu ad litora torquent per conubia id.', 
'/orem ipsum dolor sit amet, consectetur adipiscing elit. Mauris mollis lectus nisi, id suscipit felis porta sit amet. Sed tincidunt pharetra velit vitae molestie. Fusce auctor ornare posuere. Class aptent taciti sociosqu ad litora torquent per conubia id.');

T001_Parametrize(sTestName:='T001_Parametrize:quote_hello', 
             '$'hello, world!$'', 
             '$'$'hello, world!$'$'x');
~~~

</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jtebokkel</dc:creator><pubDate>Sat, 08 Jan 2022 14:26:30 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/55/</guid></item><item><title>create git repo's</title><link>https://forge.codesys.com/lib/counit/tickets/54/</link><description>* [ ] create git repo's -&gt; only v1.2.0.0 and Tags will be migrated to git as the svn repo will be kept but deprecated.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">hermsen</dc:creator><pubDate>Fri, 18 Jul 2025 07:55:14 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/54/</guid></item><item><title>Implement support for new SP16 64bits datatype assertions</title><link>https://forge.codesys.com/lib/counit/tickets/41/</link><description>This ticket serves as a placeholder to implement new SP16 64 bits datatypes assertions.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aliazzz</dc:creator><pubDate>Tue, 10 Aug 2021 01:57:37 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/41/</guid></item><item><title>Assert_Equals() with STRING(1024) Causes PLC Crash</title><link>https://forge.codesys.com/lib/counit/tickets/39/</link><description>**Test version: **v1.0.9.9 RC2
**Problem: **Using Assert_Equals() with STRING(1024) Causes PLC to crash.
The problem is, the AssertEquals uses pointers to write to memory, and will happily copy an entire 1024 character string over the top of a 255 character string
See screenshot for the line which causes the memory overwrite
**Steps to repeat: **
With the Verifier_MultiCycle_Examplev1.0.9.9.project, change the following POU:
Test/FB_AnyPrimitiveTypes.Test_ANY_STRING_Equals
to
~~~ST
METHOD PRIVATE Test_ANY_STRING_Equals
VAR
    a : STRING(1024) := 'WCPRZC2VAB
01SQ7HD707
68UUBLAN0H
AI2HPVN8YO
NQ5T9PIV9M
DAQYA96Y8T';
    b : STRING(1024) := 'WCPRZC2VAB
01SQ7HD707
68UUBLAN0H
AI2HPVN8YO
NQ5T9PIV9M
DAQYA96Y8T';
END_VAR
~~~
~~~ST
TEST('Test_ANY_STRING_Equals');

AssertEquals(Expected := a,
             Actual := b,
             Message := 'Values differ');

TEST_FINISHED();
~~~
Download to the PLC and run
==&gt; IS: PLC stops unexpectedly, no logs written, PLC won't start again
==&gt; SHOULD: Either allow to compare any length strings, OR don't allow them and print an error message rather than crashing the PLC
Note: To recover, delete the application from the PLC, for example at C:\ProgramData\CODESYS\CODESYSControlWinV3x64\AAAA\PlcLogic\Application\</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">i-campbell</dc:creator><pubDate>Tue, 10 Aug 2021 01:56:43 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/lib/counit/tickets/39/</guid></item></channel></rss>