<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to tickets</title><link href="https://sourceforge.net/p/irpgunit/tickets/" rel="alternate"/><link href="https://sourceforge.net/p/irpgunit/tickets/feed.atom" rel="self"/><id>https://sourceforge.net/p/irpgunit/tickets/</id><updated>2026-03-05T06:21:03.317000Z</updated><subtitle>Recent changes to tickets</subtitle><entry><title>#3 Unexpected behavior passing 1 library to parameter LIBL of  RUCALLTST</title><link href="https://sourceforge.net/p/irpgunit/tickets/3/?limit=25#f929" rel="alternate"/><published>2026-03-05T06:21:03.317000Z</published><updated>2026-03-05T06:21:03.317000Z</updated><author><name>Thomas Raddatz</name><uri>https://sourceforge.net/u/tools400/</uri></author><id>https://sourceforge.net97ed7f341318500eb5e25a41c9f71f1dae6c0301</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: pending --&amp;gt; closed&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry><entry><title>#1 Compile error when installing iRPGUnit into a different library.</title><link href="https://sourceforge.net/p/irpgunit/tickets/1/?limit=25#7ca6" rel="alternate"/><published>2026-03-05T06:20:29.123000Z</published><updated>2026-03-05T06:20:29.123000Z</updated><author><name>Thomas Raddatz</name><uri>https://sourceforge.net/u/tools400/</uri></author><id>https://sourceforge.net69261de89a536a1a41f5c7db332ff540a33ed240</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: open --&amp;gt; closed&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry><entry><title>Parameterized Unit Tests</title><link href="https://sourceforge.net/p/irpgunit/tickets/4/" rel="alternate"/><published>2019-12-30T22:22:17.644000Z</published><updated>2019-12-30T22:22:17.644000Z</updated><author><name>Mihael Schmidt</name><uri>https://sourceforge.net/u/fist/</uri></author><id>https://sourceforge.nete484fd1cdc7a4aadf3f1ffeffb3a1d0fa2dad2e4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;It would be nice to be able to use parameterized unit tests in iRPGUnit just like in other languages (like Java).&lt;/p&gt;
&lt;p&gt;The idea is to create a set of data and execute a test with every data entry of the set.&lt;/p&gt;
&lt;p&gt;The test writer would need to provide a procedure (unittest_provideData) which creates a list (module LLIST) of data entries and a procedure which receives one data entry for the next test case run (unittest_setData).&lt;/p&gt;
&lt;p&gt;I have created a first prototype which identifies the parameterized test by the existence of the procedure unittest_provideData, see module CMDRUN. There the test data provider is called and the data set.&lt;/p&gt;
&lt;p&gt;This prototype needs more work on the output (spooled file and userspace). Perhaps a version 4 interface for the userspace? I think the only thing we need to add to the userspace is the index of the test run. Though the question is if a single testcase instance of a parameterized testcase should be able to be rerun? Or is it enough to rerun the whole testcase?&lt;/p&gt;
&lt;p&gt;I created a simple test case (PTEST1) with a test data provider (PTESTDTAPR) which are bound to a service program PTEST:&lt;/p&gt;
&lt;p&gt;crtsrvpgm ptest module(ptest1 ptestdtapr) bndsrvpgm(rpgunit/rutestcase llist) export(*all)   &lt;/p&gt;
&lt;p&gt;I have attached source and test output.&lt;/p&gt;
&lt;p&gt;Note: Some includes use absolute paths for more convenient development on my side :)&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#3 Unexpected behavior passing 1 library to parameter LIBL of  RUCALLTST</title><link href="https://sourceforge.net/p/irpgunit/tickets/3/?limit=25#0782" rel="alternate"/><published>2019-08-30T17:02:00.078000Z</published><updated>2019-08-30T17:02:00.078000Z</updated><author><name>Kyle Lawson</name><uri>https://sourceforge.net/u/idomath23/</uri></author><id>https://sourceforge.net34be8eed00ff3e2a96791fa155eca8d6fb094015</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Awesome thanks!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#3 Unexpected behavior passing 1 library to parameter LIBL of  RUCALLTST</title><link href="https://sourceforge.net/p/irpgunit/tickets/3/?limit=25#6bef" rel="alternate"/><published>2019-08-30T15:22:50.829000Z</published><updated>2019-08-30T15:22:50.829000Z</updated><author><name>Thomas Raddatz</name><uri>https://sourceforge.net/u/tools400/</uri></author><id>https://sourceforge.net48d0e17c2f46c9e4f58cdc2ff84810fbd32fa437</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: open --&amp;gt; pending&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry><entry><title>#3 Unexpected behavior passing 1 library to parameter LIBL of  RUCALLTST</title><link href="https://sourceforge.net/p/irpgunit/tickets/3/?limit=25#c90b" rel="alternate"/><published>2019-08-30T15:22:35.722000Z</published><updated>2019-08-30T15:22:35.722000Z</updated><author><name>Thomas Raddatz</name><uri>https://sourceforge.net/u/tools400/</uri></author><id>https://sourceforge.netd086567eb00c028d789b91c5e350731f4b870948</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Good point!&lt;br/&gt;
In fact I fixed it this way in order to honor special value *CURRENT:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;          select;
          when (libl.numE = 1);
             select;
             when (libl.lib(1) = '*JOBD');
                if (jobd.nm = '*DFT');
                   jobd.nm = 'RPGUNIT';
                   jobd.lib = testPgmLib;
                endif;
                loadedLibl = loadLibl(jobd);
                restoreLibl(loadedLibl);
                return *ON;
             when (libl.lib(1) = '*CURRENT');
                // keep current library list
             other;
                changeLibl('*CRTDFT': libL);
                return *ON;
             endsl;

          when (libl.numE &amp;gt; 1);
             changeLibl('*CRTDFT': libL);
             return *ON;
          endsl;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I will create a new plug-in version after my vacation.&lt;br/&gt;
Thanks,&lt;br/&gt;
Thomas.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Unexpected behavior passing 1 library to parameter LIBL of  RUCALLTST</title><link href="https://sourceforge.net/p/irpgunit/tickets/3/" rel="alternate"/><published>2019-08-29T18:44:16.030000Z</published><updated>2019-08-29T18:44:16.030000Z</updated><author><name>Kyle Lawson</name><uri>https://sourceforge.net/u/idomath23/</uri></author><id>https://sourceforge.netfb403504862e72793bb036340dc9e3f033ce1f0e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;In /trunk/host/iRPGUnit/QSRC/LIBL.RPGLE there is a method named setTestSuiteLibl.&lt;/p&gt;
&lt;p&gt;I was using the LIBL() parameter of RUCALLTST.  I found that if I pass the one library I need, the tests fail.  If I pass the library I need and some other unrelated library then it succeeds.  It appears in the method that if the passed library list has 1 member it only is looking for it to have *JOBD in it.  Otherwise if there is more than 1 then the passed library list is used.&lt;/p&gt;
&lt;p&gt;Maybe a proposed change would be...&lt;/p&gt;
&lt;p&gt;select;&lt;br/&gt;
          when (libl.numE = 1);&lt;br/&gt;
             if (libl.lib(1) = '&lt;em&gt;JOBD');&lt;br/&gt;
                if (jobd.nm = '&lt;/em&gt;DFT');&lt;br/&gt;
                   jobd.nm = 'RPGUNIT';&lt;br/&gt;
                   jobd.lib = testPgmLib;&lt;br/&gt;
                endif;&lt;br/&gt;
                loadedLibl = loadLibl(jobd);&lt;br/&gt;
                restoreLibl(loadedLibl);&lt;br/&gt;
                return *ON;&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;         **Begin Suggested Code**
         else;
            changeLibl('*CRTDFT': libL);
            return *ON;
         **End Suggested Code**

         endif;

      when (libl.numE &amp;gt; 1);
         changeLibl('*CRTDFT': libL);
         return *ON;
      endsl;

      return *OFF;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>Unexpected behavior passing 1 library to parameter LIBL of  RUCALLTST</title><link href="https://sourceforge.net/p/irpgunit/tickets/3/" rel="alternate"/><published>2019-08-29T18:44:16.030000Z</published><updated>2019-08-29T18:44:16.030000Z</updated><author><name>Kyle Lawson</name><uri>https://sourceforge.net/u/idomath23/</uri></author><id>https://sourceforge.netafa990b75a330e42ce47663deb04c862305e9af2</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Ticket 3 has been modified: Unexpected behavior passing 1 library to parameter LIBL of  RUCALLTST&lt;br/&gt;
Edited By: Thomas Raddatz (tools400)&lt;br/&gt;
Status updated: u'open' =&amp;gt; u'pending'&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Unexpected behavior passing 1 library to parameter LIBL of  RUCALLTST</title><link href="https://sourceforge.net/p/irpgunit/tickets/3/" rel="alternate"/><published>2019-08-29T18:44:16.030000Z</published><updated>2019-08-29T18:44:16.030000Z</updated><author><name>Kyle Lawson</name><uri>https://sourceforge.net/u/idomath23/</uri></author><id>https://sourceforge.net88dcc3264a2bca52990c6034264aa06d43b5b398</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Ticket 3 has been modified: Unexpected behavior passing 1 library to parameter LIBL of  RUCALLTST&lt;br/&gt;
Edited By: Thomas Raddatz (tools400)&lt;br/&gt;
Status updated: 'pending' =&amp;gt; 'closed'&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#2 Install RPGUNIT LIBRARY : Problem Owner</title><link href="https://sourceforge.net/p/irpgunit/tickets/2/?limit=25#db6d" rel="alternate"/><published>2019-03-31T13:59:22.177000Z</published><updated>2019-03-31T13:59:22.177000Z</updated><author><name>Thomas Raddatz</name><uri>https://sourceforge.net/u/tools400/</uri></author><id>https://sourceforge.netb8a3a730778ef0a485d4461743e51f5c68a015ce</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: pending --&amp;gt; closed&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry></feed>