Skip to Main Content
IBM Z Software


This portal is to open public enhancement requests against IBM Z Software products. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Not under consideration
Workspace PL/I Compilers
Created by Guest
Created on May 2, 2017

PL/1 Unit Tests

We want to unit test PL/1 moduls (also internal procedures).

This would be possible by adding additional code to a module with a generator I wrote. The problem by doing this is that the source code tested would be not the same than the one deployed to production.

To make this possible there should be two things:

1) hook for internal procedure / call / fetch / Exec

What we need would be a compiler option which would allow us to add a custom exit to every marked internal procedure / call / fetch / Exec with or without calling the real end point.

To be able to identify which jump the test is for, the user should set some sort of annotation. For example @test("name")

There sould be only for this points the possibility of testing.

The interface to the exit should be something like

name, commarea, eib ,parms - but I am not sure about what all is needed. The most important is, that we should be able to set all parameters in the exit, so that there is a simmulation of data.

2) Program entrys

The second thing would be the possibility to add a hook to the program entry, because it sould be possible to test internal procedures only.

There again should be an annotation like @testentry("name"). Only possible to be defined on PROC statements.

And now there should be a way to jump to this entry directly (like an assembler goto) without going through the hole code. And here should be a second exit where we could add inputdata.

3) How to test

We have a Pl/1 Code analyser which analyses the hole code down to the variables. The analyser is written in java and runs in rdz/eclipse and the build server.

In eclipse the developper would add the annotations where he wants to test. The analyser works realtime, so the developpers would immediately get the testing points in a sepearate view. As we analyse down to the variables he immediately can add test data to an testing point.

During the build phase which runs on a build server we would aggregate the testdata and deploy it to a mainframe database in xml format.

The build phase also would generate a Test modul for the real modul and call the entrys in the real modul marked with @testentry

After the deployment the buildserver would run a test phase where he executes all testmodules and this would result in running through all test cases.

This would be a perfect and very easy way to have unit tests in PL/1.

Off course the same way could be used to execute integration tests with the database and other sources.

Idea priority Medium
  • Guest
    Reply
    |
    Dec 8, 2020

    his requirement has been re-assessed.  It is not likely that this will be implemented in the next 12-24 months and so it is being declined at this point. The requirement will be kept in the RFE system and might be reassessed in the future. You also have an opportunity to resubmit in twelve months time if you wish it to be reconsidered then.

  • Guest
    Reply
    |
    Jul 1, 2018

    This topic is really very important for us, so if you need any other information, for example how we work etc. Please feel to invite us for a call or contact me any time. Thanks Peter

  • Guest
    Reply
    |
    Jun 21, 2018

    I think we are clear on what is needed, but this will take some time to do - but it is important and would be very useful

  • Guest
    Reply
    |
    May 18, 2017

    This would be very good to do, but will require some work with the customer to work out the details etc

  • Guest
    Reply
    |
    May 2, 2017

    I just reviewed the test scenario with my workmate and there is on point missing on the entrypoints. On calling the "testentry point" there must be a possibility to add an identifier (string) to the call which then is passed to the "test point" to identify the test case, because there always are multiple test cases on an entry point and the data could be specific for a test case.