Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ICKDSF related changes #615

Closed
SE20225 opened this issue Jan 20, 2024 · 15 comments
Closed

ICKDSF related changes #615

SE20225 opened this issue Jan 20, 2024 · 15 comments
Assignees
Labels
BUG The issue describes likely incorrect product functionality that likely needs corrected. Enhancement This issue does not describe a problem but rather describes a suggested change or improvement.

Comments

@SE20225
Copy link

SE20225 commented Jan 20, 2024

I have spent some time on testing running ICKDSF (and IBCDASDI as well!) Stand Alone. Partly because it is fun to use Hercules like this and also in some still unsatisfied hope to again get the most intriguing error message that I ever saw. In the CE school we actually once got an IBC-message with the contents of WRONG ERROR. It happened when a 3880 half reported an error from the other half! I have tested running the 'quick DASDI' type of initialization. Running standalone ICKDSF is my only way to execute ECKD (DX/LR) CCW chains.

I also tried running ICKDSF R13 without the cu=3880 override, so that the ECKD chains did work. But it took a few changes. I am enclosing the updated source of ckddasd.c below.

Summary of changes made:

  1. Correct erroneous testing for command 19 (WRITE HOME ADDRESS) in an ECKD chain. This prevented use of ICKSADSF and would also kill ICKDSF from a MVS system with ECKD support, so it is a true bug although TK4- (or TK5) MVS users would never experience it! These systems have no ECKD support, so cu=3880 is required.

  2. Support command 0A (DIAGNOSTIC READ HOME ADDRESS). It seems that ICKDSF continues in spite of the CMDREJ, so no real harm occurred. And no message was issued, although there were plenty of CMDREJs. Why issue a chain that fails and not report it or kill the job??? Anyway, now it runs and a synthetic HA is returned.

  3. Command 64 (READ DEVICE CHARACTERISTICS) receives a correct CMDREJ when executed on pre-3380 dasd, but erroneously sets sense byte 7 (Message code) to 02, whereas it should be set to 01 instead. Cosmetic.

  4. Handle the actual byte count for command 19 (WRITE HOME ADDRESS) on 3375 and 3380. Rather cosmetic since probably only ICKDSF uses this command and uses the proper byte count.

The two different Write HA commands produce the same 'HA' 5 bytes record in the virtual track. The flag byte becomes 00 for the alternate tracks as well. But Hercules has no need for alternate tracks. The contents of the HA is really based on the preceding seek rather than the data sent with the command. And the data received by the corresponding Read HA commands does not really match reality but ICKDSF runs OK with these changes. I tested with ICKDSF R17 too and all was OK, as with IBCDASDI from TK4- too.

So my problem now is to submit this suggested change. I hesitate to open it as a problem. But what else can I do?

The source changes are all marked with /*AE, so a FIND for this will put you in the right place. Of course the changes will require some editing more than removing the /*AE tag and the old code, which I have left commented out. And realignment is probably also required to make it all look like it was written by a single programmer! I assume you already have some standard procedures for testing changes to Hercules code before shipping another edition! Further testing should be done with a modern MVS with support for ECKD chains. Almost all these changes involve handling HA, so normal I/O would not care, but ICKDSF does. And do not test with cu=3880 specified for 3390 devices!

Anders Edlund

@Fish-Git
Copy link
Member

Fish-Git commented Jan 28, 2024

First, please review my editing to your above posting/report to ensure there are no mistakes and that I didn't accidentally change what you really meant to say! Thanks!

So my problem now is to submit this suggested change. I hesitate to open it as a problem. But what else can I do?

Given your suspected level of 'git' competence, you did the right thing!

For the record however, we prefer that someone create a temporary fork of our repository, make their changes to their fork, and then submit a 'pull' request for their changes. I realize you probably don't know what that means since, as I said, I suspect you're unfamiliar with 'git' and GitHub itself. But that's okay. Uploading (attaching) your new version of the source file in question works just fine too.

One thing though: when attaching an updated version of a given source file, it would be nice if you would make clear what specific version of Hercules your changes were made to. In this particular case it looks like your changes were made against Hercules version 4.6.0.10941-SDL-g65c97fd6 (i.e. the current official 4.6 release). Yes? I only mention this since the 4.7 development version of Hercules (still currently under development) of the same source file looks very different from the 4.6 one you attached. That is to say, a lot of changes have been made to ckddasd.c since 4.6 was released, and thus your attached version doesn't have those changes, making it more difficult to manually "merge" your changes into the current development version.

But again, that's okay. We understand you're not familiar with Hercules development. You're not familiar with 'git' and GitHub, etc. So what you did was fine. Don't worry about it. I'm only mentioning it for the record.

I assume you already have some standard procedures for testing changes to Hercules code before shipping another edition!

Not really, no. Well, at least for me anyway. I can't speak for any of the other developers of course.

The only testing that I personally do is to perform a runtest that invokes one or more (or all) of our builtin Quality Assurance tests, that test a few things here and there that have caused us problems in the past. They mostly just check to ensure we didn't accidentally revert (break) something that we had previously fixed. But we don't have any real suite of intensive diagnostic tests such as OLTEP that we can run on a given device. No. The only real dasd test we have in our runtest QA testing suite is our existing E7Prefix test, and it only tests a very small select few of very specific channel programs that, as I said, simply verify that a bug we previously fixed is still fixed:

That's the only type of testing that I myself do. Other developers who are more experienced with, say, z/OS and/or z/VM for example, may be able to run some things that are able to perform a more thorough test, I don't know. I can only speak for myself.

If you could provide for us a very simple channel program consisting of only a couple of CCWs that verify the correct functioning of the changes you mentioned you made however, we would be very appreciative! I'll be happy to add such a test to our E7Prefix test program!

And do not test with cu=3880 specified for 3390 devices!

Can 3390's even be attached to 3880 controllers?? I'm somehow doubting it! AFAIK they can only be attached to 3990 controllers, yes? If Hercules is not currently checking for this, it should be! And if it's not, I'll see if I can add that check to Hercules ASAP.  (I presume using cu=3880 for 3390 devices leads to Bad Things(tm) happening?)

IN SUMMARY, I would like to thank you, Anders, for taking the time and effort of offer these changes (fixes) to Hercules! We appreciate your effort and thoughtful consideration very much! It's people like you that help make Hercules the quality product it is today!   :)

@Fish-Git Fish-Git self-assigned this Jan 28, 2024
@Fish-Git Fish-Git added BUG The issue describes likely incorrect product functionality that likely needs corrected. Enhancement This issue does not describe a problem but rather describes a suggested change or improvement. QUESTION... A question was asked but has not been answered yet, -OR- additional feedback is requested. Researching... The issue is being looked into or additional information is being gathered/located. IN PROGRESS... I'm working on it! (Or someone else is!) and removed Researching... The issue is being looked into or additional information is being gathered/located. QUESTION... A question was asked but has not been answered yet, -OR- additional feedback is requested. labels Jan 28, 2024
@Fish-Git
Copy link
Member

Fish-Git commented Jan 29, 2024

(@SE20225)

This is not right!

In the logic for your new command 0A (DIAGNOSTIC READ HOME ADDRESS), I'm seeing:

    ...

    /* Calculate number of bytes and set residual */
    if (dev->devtype == 0x3375)
    {
        size = 27;      // (3375 complete HA length)
        HAoff = 18;     // (offset to Flag field)
    }
    else
    {
        size = 28;      // (3380 and 3390 complete HA length)
        HAoff = 19;     // (offset to Flag field)
    }

    num = (count < size) ? count : size;
    *residual = count - num;
    if (count < size) *more = 1;

    /* Copy the classical HA fields to the I/O buffer.
       Only Flag+CC+HH will contain data. The rest is zeros.
       Definitely not correct data, but if written back,
       it would at least be ignored!
    */
    memset( iobuf, 0, size );
    memcpy( &iobuf[ HAoff ], &trkhdr, CKD_TRKHDR_SIZE );

    /* Save size and offset of data not used by this CCW */
    size = CKD_TRKHDR_SIZE;    /* Restore standard HA length */     <-------- WTF?! -------
    dev->ckdrem = (U16)(size - num);
    dev->ckdpos = (U16)(num);

It's the last 3 lines that don't seem right to me:  the calculating of dev->ckdrem!

CKD_TRKHDR_SIZE is only 5 bytes, and you're subtracting from it the value num, which could easily be up to 27 or 28 bytes!

size is the amount of data that is available, which was previously set to either 27 or 28. num is how much of that we're giving to them (which is however much they asked for (count) up the maximum of size). So dev->ckdrem should be how much of what was available that we didn't give them: i.e. 27 - num or 28 - num. Yes?

I think the line "Restore standard HA length" shouldn't be there!

Would you or others concur?

@Fish-Git Fish-Git added the QUESTION... A question was asked but has not been answered yet, -OR- additional feedback is requested. label Jan 29, 2024
@SE20225
Copy link
Author

SE20225 commented Jan 31, 2024

Since I did that change, I have learned more about how read or write type CCWs operate including possible Data Chaining. I assume that the negative value of ckdrem went undetected since no DC was used. The line setting size to 5 shall just be taken away. I guess my thought was to avoid permanent changes to the size variable when the code for cmd 0A was copied from the regular Read HA (1A) command code. A bit too careful in this case! Then it should at least have been a couple of lines further below!

I will recompile and retest when I set up and try the CCW chains you are asking for.

@Fish-Git
Copy link
Member

Fish-Git commented Jan 31, 2024

The line setting size to 5 shall just be taken away.

Good. Agreed.

I guess my thought was to avoid permanent changes to the size variable when the code for cmd 0A was copied from the regular Read HA (1A) command code.

Understood. But since it's only a temporary work variable that isn't used any further once the num I/O amount, *residual value and *more flag have been calculated/set, it doesn't make any sense to me to suddenly set is to a different value.

Then it should at least have been a couple of lines further below!

Actually, it's not needed at all! As I said, once it has been properly calculated (according to the dev->devtype), there is no logical reason to reset it or change it to a different value!

In fact, I would argue that the setting of dev->ckdrem and dev->ckdpos should logically be moved further up in the logic, to be immediately after where num, *residual and *more are currently being calculated and set. Like this:

    ....

    /* Calculate number of bytes and set residual */
    if (dev->devtype == 0x3375)
    {
        size = 27;      // (3375 complete HA length)
        HAoff = 18;     // (offset to Flag field)
    }
    else
    {
        size = 28;      // (3380 and 3390 complete HA length)
        HAoff = 19;     // (offset to Flag field)
    }

    num = (count < size) ? count : size;
    *residual = count - num;
    if (count < size) *more = 1;

    /* Save size and offset of data not used by this CCW */
    dev->ckdpos = (U16)(num);
    dev->ckdrem = (U16)(size - num);

    /* Copy the classical HA fields to the I/O buffer.
       Only Flag+CC+HH will contain data. The rest is zeros.
       Definitely not correct data, but if written back,
       it would at least be ignored!
    */
    memset( iobuf, 0, size );
    memcpy( &iobuf[ HAoff ], &trkhdr, CKD_TRKHDR_SIZE );

    /* Return normal status */
    *unitstat = CSW_CE | CSW_DE;

    break;

I will recompile and retest when I set up and try the CCW chains you are asking for.

I would appreciate that very much. Thanks. Your proposed change looks fine otherwise, and I'd like to get it committed. But of course, I would like to test them myself beforehand too. So the sooner I get that/those simple channel programs (CCW chains) that verify (prove) the fix it good, the better.

Thanks again for all your hard work, Anders. Much appreciated buddy!

@SE20225
Copy link
Author

SE20225 commented Feb 2, 2024

I am attaching a .zip file with the CCW chains to verify the changes, and a few thoughts about the DASD emulation in combination with the TurnKey MVS systems. I am also including DUMPCORE versions of the 'handloops' I used for verification.

Out of interest, I also verified the 0A command with the 'extra', erroneous change back to 5 for the size variable. When I introduced Data Chaining to the CCW, it ended with Incorrect Length and Command Chaining was of course suppressed. I am now convinced that ICKDSF will not use DC, and who else uses the 0A command at all? But with the statement removed, Data Chaining works OK, and the next command is correctly processed. That test is called TEST2B.

@Fish-Git
Copy link
Member

Fish-Git commented Feb 2, 2024

THANK YOU, Anders!

I am looking over your information right now!

If you can provide a copy of ckddasd.c from the upcoming 4.7 release, I can look into what my changes will look like at that level. Or can I fetch it from git?

If you understand what "branches" are on git, you can get it yourself. All of our development is done in the "develop" branch (which is where version 4.7 is currently being developed). The default git branch is always "master", which is always the current released version of Hercules (currently 4.6). That's what you have.

To relieve you from having to learn about git branches however (I would encourage you to try and do so, but at your leisure), I've attached the current 4.7 development version of ckddasd.c below, with your changes already applied (but please verify I did them correctly!):

I will give your tests a try. Thank you! It will take me some time to integrate them into our existing testing suite however. The only dasd test we have is for 3390 dasd, so I will need to make some changes or create some new tests for the other device types. It will take me some time to do that of course.

HOWEVER, once I have confirmed your tests, I will go ahead and commit your changes. The updating of our existing tests with your new tests is not critical and can come later.

Thank again for everything, Anders! Your knowledge and effort are greatly appreciated!  :)

@SE20225
Copy link
Author

SE20225 commented Feb 3, 2024

Checked the source for the 4.7 edition. Seemlessly integrated!

@Fish-Git
Copy link
Member

Fish-Git commented Feb 6, 2024

@SE20225

I'm reading the comments you wrote in your "Response.txt" file included in your tests you provided earlier that supposedly explain what results should be expected for each of the tests, but am confused about something.

For the first test, you wrote:

  1. Write HA in a ECKD chain, 19x.

Run on a 3390 model 1 (with 3990 CU)

The operation is on the first alternate track,

63aaaaaa 40000010 with data: C2C40000 00000000 04590000 0459000E
47aaaaaa 40000010 with data: 43000002 04590000 04590000 00000000
19aaaaaa 40000005 with data: 0104590000
15aaaaaa 40000010 with data: 04590000 00000008 00000000 00000000
23aaaaaa 40000001 with data: 00
1Aaaaaaa 50000005 provide 5+ bytes of x'FF'
16aaaaaa 00000010 provide 16+ bytes of x'FF'

The last data area will contain the R0 of the track, i.e.
04590000 00000008 00000000 00000000
after the chain is complete.

The data area of the 0A command will contain the HA of 0004590000 at offset
19 decimal.

0459 can be replaced with a different cylinder number if you wish, but
then the first byte of the HA (01 above) should be zero although this is not
really checked! This chain is used by ICKDSF.

Before the fix, this chain got a CMDREJ on the 19 CCW.

Yet, in the series of CCW commands you listed that the test should execute, there is no X'0A' command!

@SE20225
Copy link
Author

SE20225 commented Feb 6, 2024

You are right again. That remark belongs to the next (No 2) test case. The text is there already, so just strike the line out here.

I guess this test would be improved by removing the SKIP flag from the 1A (Read HA) CCW so that it becomes possible to verify the data received. I copied all these chains from tracing actual ICKDSF chains which obviously often use SKIP to just verify that a previous write was correctly (no data check) readable from the disk surface.

@Fish-Git
Copy link
Member

Fish-Git commented Feb 6, 2024

You are right again. That remark belongs to the next (No 2) test case. The text is there already, so just strike the line out here.

Good. I'll do so in my copy.

I guess this test would be improved by removing the SKIP flag from the 1A (Read HA) CCW so that it becomes possible to verify the data received.

That's a good idea. I will make that change too. Thanks.

I copied all these chains from tracing actual ICKDSF chains which obviously often use SKIP to just verify that a previous write was correctly (no data check) readable from the disk surface.

Understood.

I'm almost done with my test program. I'll upload it here once it's ready so that you can see it. It's basically your test program but modified to be able to run each test individually one after the other verifying the results of each one as it goes. Like I said, I'll upload it for you later today.

Fish-Git pushed a commit that referenced this issue Feb 6, 2024
Fish-Git added a commit that referenced this issue Feb 6, 2024
@Fish-Git
Copy link
Member

Fish-Git commented Feb 6, 2024

Closed by commit db4aafb.

@Fish-Git Fish-Git closed this as completed Feb 6, 2024
@Fish-Git
Copy link
Member

Fish-Git commented Feb 6, 2024

Anders (@SE20225),

As promised, here is the Hercules QA test I created based on your tests:

Tell me what you think. Thanks,

@SE20225
Copy link
Author

SE20225 commented Feb 9, 2024

I had a look at the ASM code that you sent. The scheme established is clearly extendable to do other testing of other chains. I guess it is an advantage (for the book-keeping) to have one set of tests for each 'issue' rather than combining all directly CCW related tests into a single module.

I assume that you also have some automatic method to move the code from the assembly into storage to create the test? (rather than directly typing?) Otherwise let me suggest that you look into the '3card loader' although it seems it has been better integrated into both the SADUMP code or the 360 HASP workstation code than it was in the 1970s. I am sure that that could be used to IPL the object deck into storage to create the saved storage dump.

@Fish-Git
Copy link
Member

Fish-Git commented Feb 9, 2024

I guess it is an advantage (for the book-keeping) to have one set of tests for each 'issue' rather than combining all directly CCW related tests into a single module.

Yes, it's easier that way.

I assume that you also have some automatic method to move the code from the assembly into storage to create the test? (rather than directly typing?)

Of course. Hercules has a full suite of automated tests. What I showed you was just the source code for only one of them. The others are all in Hercules's "tests" sub-directory. You'll find the GH615 test there, along with its associated "core".

Otherwise let me suggest that you look into the '3card loader' although it seems it has been better integrated into both the SADUMP code or the 360 HASP workstation code than it was in the 1970s. I am sure that that could be used to IPL the object deck into storage to create the saved storage dump.

Thanks, but no thanks.  :)

We already have something that we use to build all of our QA tests with. It's called "SATK" (Stand Alone Tool Kit), and was written by one of our developers, a brilliant man by the name of Harold Grovesteen (@s390guy). We've been using it for years now and it's a fantastic product. I couldn't imagine being a Hercules developer without it.

We use SATK to create "core" files, which are then automatically loaded, run and verified by our in-house developed QA testing harness, which we call "runtest" (designed and developed by former Hercules developer and former IBM'er John P. Hartmann of CMS Pipelines fame). Our "runtest" testing harness is documented in our internal "Low-level Test Cases" README document.

So if you find yourself regularly writing stand alone test programs by hand, I would like to encourage you to give SATK a try. It's a really great tool and it's not that difficult to use. It might be difficult (confusing) to get started with it, but I (or Harold!) would be happy to help you with that if you're interested. It's worth it IMHO if you find yourself manually writing a lot of stand alone tests by hand. I use it a lot because I'm a Hercules developer and we need to be constantly writing tests to verify that Hercules is operating properly.

If you don't regularly write a lot of stand alone tests however, then it would probably be just a curiosity to you.

Hope that helps!  :)

@Fish-Git
Copy link
Member

Fish-Git commented Feb 9, 2024

FYI: Here is the report that gets generated by our "runtest" automated testing script that I ran recently. As you'll notice, the "GH615 ICKDSF related changes" test is now included among the many other tests that we always run before each release of a new version of Hercules:

Begin: "runtest -d "..\hyperion-0\tests" -n * -f tst -64 -b release -w hyp0\work\allTests-64-release" ...

On:     Thu 02/08/2024  at  9:12:29 AM

Variable $platform           set to "Windows"
Variable $ptrsize            set to "8"
Variable $can_s370_mode      set to "1"
Variable $can_esa390_mode    set to "1"
Variable $can_zarch_mode     set to "1"
Variable $max_cpu_engines    set to "64"
Variable $libraries          set to "Shared"
Variable $threading_model    set to "Fish"
Variable $locking_model      set to "Error"
Variable $shared_devices     set to "1"
Variable $HDL                set to "1"
Variable $externalgui        set to "1"
Variable $keepalive          set to "Partial"
Variable $IPV6               set to "1"
Variable $HTTP               set to "1"
Variable $sqrtl              set to "1"
Variable $sighandling        set to "1"
Variable $CCKD_BZIP2         set to "1"
Variable $HET_BZIP2          set to "1"
Variable $ZLIB               set to "1"
Variable $regex              set to "1"
Variable $rexx_supported     set to "1"
Variable $HAO                set to "1"
Variable $NLS                set to "0"
Variable $cmpxchg1           set to "1"
Variable $cmpxchg4           set to "1"
Variable $cmpxchg8           set to "1"
Variable $cmpxchg16          set to "1"
Variable $hatomics           set to "msvcIntrinsics"
Variable $rexx_package       set to "OORexx"
Variable $rexx_VERSION       set to "REXX-ooRexx_4.2.0(MT)_64-bit 6.04 22 Feb 2014"
Variable $rexx_SOURCE        set to "WindowsNT"
Variable $rexx_Mode          set to "Subroutine"
Variable $rexx_MsgLevel      set to "0"
Variable $rexx_MsgPrefix     set to "0"
Variable $rexx_ErrPrefix     set to "0"
Variable $rexx_Resolver      set to "1"
Variable $rexx_SysPath       set to "1"
Variable $rexx_RexxPath      set to ""
Variable $rexx_Extensions    set to ".REXX;.rexx;.REX;.rex;.CMD;.cmd;.RX;.rx"
Test "1403 printer Load UCS Buffer":  2 OK compares.  All pass.
Test "3211 printer (OORexx)":  2 OK compares.  All pass.
Test "agf 20161211 12.44":  10 OK compares.  All pass.
Test "S/370 AWS tape BSF into Load Point":  5 OK compares.  All pass.
Test "BC-mode ILC Handling":  4 OK compares.  All pass.
Test "bfp-001-divtoint: Test IEEE Divide To Integer":  1 OK compares.  All pass.
Test "bfp-002-loadr: Test IEEE Load Rounded":  1 OK compares.  All pass.
Test "bfp-003-loadfpi: Test IEEE Load FP Integer":  1 OK compares.  All pass.
Test "bfp-004-cvttolog: Test IEEE Convert To Logical (uint-32)":  1 OK compares.  All pass.
Test "bfp-005-cvttolog64: Test IEEE Cvt To Logical (uint-64)":  1 OK compares.  All pass.
Test "bfp-006-cvttofix: Test IEEE Convert To Fixed (int-32)":  1 OK compares.  All pass.
Test "bfp-007-cvttofix64: Test IEEE Convert To Fixed (int-64)":  1 OK compares.  All pass.
Test "bfp-008-cvtfrlog: Test IEEE Convert From Fixed (uint-32)":  1 OK compares.  All pass.
Test "bfp-009-cvtfrlog64: Test IEEE Cvt From Fixed (uint-64)":  1 OK compares.  All pass.
Test "bfp-010-cvtfrfix: Test IEEE Convert From Fixed (int-32)":  1 OK compares.  All pass.
Test "bfp-011-cvtfrfix64: Test IEEE Cvt From Fixed (int-64)":  1 OK compares.  All pass.
Test "bfp-012-loadtest: Test IEEE Test Data Class, Load And Test":  1 OK compares.  All pass.
Test "bfp-013-comps: Test IEEE Compare, Compare And Signal":  1 OK compares.  All pass.
Test "bfp-014-divide: Test IEEE Divide":  1 OK compares.  All pass.
Test "bfp-015-sqrt: Test IEEE Square Root":  1 OK compares.  All pass.
Test "bfp-016-add: Test IEEE Add":  1 OK compares.  All pass.
Test "bfp-017-loadl: Test IEEE Load Lengthened":  1 OK compares.  All pass.
Test "bfp-018-subtract: Test IEEE Subtract":  1 OK compares.  All pass.
Test "bfp-019-multiply: Test IEEE Multiply":  1 OK compares.  All pass.
Test "bfp-020-multlonger: Test IEEE Multiply":  1 OK compares.  All pass.
Test "bfp-021-multadd: Test IEEE Multiply And Add":  1 OK compares.  All pass.
Test "bfp-022-multsub: Test IEEE Multiply And Subtract":  1 OK compares.  All pass.
Test "bim-001-add-sub: Test Basic Integer Math Add & Subtract":  1 OK compares.  All pass.
Test "CBUC (Concurrent Block Update Consistency)":  2 OK compares.  All pass.
Test "CCW-ILS (CCW Incorrect Length Suppression)":  2 OK compares.  All pass.
Test "cmpxchg16 as used by CDSG, STPQ and LPQ instructions":  2 OK compares.  All pass.
Test "cipher 20161202 12.03":  305 OK compares.  All pass.
Test "CLCL-et-al (Test CLCL, MVCIN and TRT instructions)":  1 OK compares.  All pass.
Test "CLCL Unaligned Buffers Test":  1 OK compares.  All pass.
Test "CLCLE-01-unaligned-buffers Test":  1 OK compares.  All pass.
Test "CLCLE-02-unaligned-buffers Test":  1 OK compares.  All pass.
Test "CLCLE-03-basic (Test CLCLE instructions)":  1 OK compares.  All pass.
Test "CLCLE-04-performance (Test CLCLE instructions)":  1 OK compares.  All pass.
Test "CMPSC (Compression Call)":  1 OK compares.  All pass.
Test "Initial control register values":  9 OK compares.  All pass.
Test "csxtr csdtr cxstr cxutr 20160605 09.38":  8 OK compares.  All pass.
Test "CUSE-01-basic (Test CUSE instruction)":  1 OK compares.  All pass.
Test "CUSE-02-performance (Test CUSE instruction)":  1 OK compares.  All pass.
Test "dfp-080-from-packed.tst:   CDPT, CXPT":  162 OK compares.  All pass.
Test "dfp-080-to-packed.tst:   CPDT, CPXT":  393 OK compares.  All pass.
Test "digest 20161202 12.03":  57 OK compares.  All pass.
Test "Various CKD dasd I/O tests":  1 OK compares.  All pass.
Test "Facility 53 Instructions":  1 OK compares.  All pass.
Test "FAC5861: Quick Test of Misc. Instr. Ext. 2 & 3":  1 OK compares.  All pass.
Test "fix-page: Test the Fix Page E502 Assist":  1 OK compares.  All pass.
Test "HFP Floating Point (370, no AFP, no EXTENSION)":  6 OK compares.  All pass.
Test "HFP Floating Point (370, with AFP, no EXTENSION)":  6 OK compares.  All pass.
Test "HFP Floating Point (370, no AFP, with EXTENSION)":  6 OK compares.  All pass.
Test "HFP Floating Point (370, with AFP, with EXTENSION)":  6 OK compares.  All pass.
Test "HFP Floating Point (z/Arch, no AFP)":  6 OK compares.  All pass.
Test "HFP Floating Point (z/Arch, with AFP enabled)":  6 OK compares.  All pass.
Test "GH615 ICKDSF related changes":  1 OK compares.  All pass.
Test "S/370 HET (ZLIB) tape BSF into Load Point":  5 OK compares.  All pass.
Test "S/370 HET (BZIP2) tape BSF into Load Point":  5 OK compares.  All pass.
Test "IF-ELSE-01":  2 OK compares.  All pass.
Test "IF-ELSE-02":  2 OK compares.  All pass.
Test "IF-ELSE-03":  2 OK compares.  All pass.
Test "IF-ELSE-04":  2 OK compares.  All pass.
Test "IF-ELSE-05":  2 OK compares.  All pass.
Test "IF-ELSE-06":  2 OK compares.  All pass.
Test "IF-ELSE-07":  2 OK compares.  All pass.
Test "ilc":  3 OK compares.  All pass.
Test "invpsw processed 16 Jan 2016 12:11:11 by bldhtc.rexx":  1 OK compares.  All pass.
Test "KIMD fc0":  2 OK compares.  All pass.
Test "KIMD fc1":  3 OK compares.  All pass.
Test "KIMD fc2":  3 OK compares.  All pass.
Test "KIMD fc3":  5 OK compares.  All pass.
Test "KIMD fc65":  2 OK compares.  All pass.
Test "KLMD fc0":  2 OK compares.  All pass.
Test "KLMD fc1":  3 OK compares.  All pass.
Test "KLMD fc2":  3 OK compares.  All pass.
Test "KLMD fc3":  5 OK compares.  All pass.
Test "KM fc0":  2 OK compares.  All pass.
Test "KM fc1":  3 OK compares.  All pass.
Test "KM fc2":  3 OK compares.  All pass.
Test "KM fc3":  3 OK compares.  All pass.
Test "KM fc9":  3 OK compares.  All pass.
Test "KM fc10":  3 OK compares.  All pass.
Test "KM fc11":  3 OK compares.  All pass.
Test "KM fc18":  3 OK compares.  All pass.
Test "KM fc19":  3 OK compares.  All pass.
Test "KM fc20":  3 OK compares.  All pass.
Test "KM fc26":  3 OK compares.  All pass.
Test "KM fc27":  3 OK compares.  All pass.
Test "KM fc28":  3 OK compares.  All pass.
Test "KM fc50":  3 OK compares.  All pass.
Test "KM fc52":  3 OK compares.  All pass.
Test "KM fc58":  3 OK compares.  All pass.
Test "KM fc60":  3 OK compares.  All pass.
Test "KMAC fc0":  2 OK compares.  All pass.
Test "KMAC fcbad":  2 OK compares.  All pass.
Test "KMAC fc1":  2 OK compares.  All pass.
Test "KMAC fc2":  2 OK compares.  All pass.
Test "KMAC fc3":  2 OK compares.  All pass.
Test "KMAC fc9":  2 OK compares.  All pass.
Test "KMAC fc10":  2 OK compares.  All pass.
Test "KMAC fc11":  2 OK compares.  All pass.
Test "KMAC fc18":  2 OK compares.  All pass.
Test "KMAC fc19":  2 OK compares.  All pass.
Test "KMAC fc20":  2 OK compares.  All pass.
Test "KMAC fc26":  2 OK compares.  All pass.
Test "KMAC fc27":  2 OK compares.  All pass.
Test "KMAC fc28":  2 OK compares.  All pass.
Test "KMC fc0":  2 OK compares.  All pass.
Test "KMC bad":  2 OK compares.  All pass.
Test "KMC badreg0":  2 OK compares.  All pass.
Test "KMC badreg3":  2 OK compares.  All pass.
Test "KMC fc1":  3 OK compares.  All pass.
Test "KMC fc2":  3 OK compares.  All pass.
Test "KMC fc3":  3 OK compares.  All pass.
Test "KMC fc9":  3 OK compares.  All pass.
Test "KMC fc10":  3 OK compares.  All pass.
Test "KMC fc11":  3 OK compares.  All pass.
Test "KMC fc18":  3 OK compares.  All pass.
Test "KMC fc19":  3 OK compares.  All pass.
Test "KMC fc20":  3 OK compares.  All pass.
Test "KMC fc26":  3 OK compares.  All pass.
Test "KMC fc27":  3 OK compares.  All pass.
Test "KMC fc28":  3 OK compares.  All pass.
Test "KMC fc67":  3 OK compares.  All pass.
Test "KMCTR fc0":  2 OK compares.  All pass.
Test "KMCTR bad":  2 OK compares.  All pass.
Test "KMCTR fc1":  3 OK compares.  All pass.
Test "KMCTR fc2":  3 OK compares.  All pass.
Test "KMCTR fc3":  3 OK compares.  All pass.
Test "KMCTR fc9":  3 OK compares.  All pass.
Test "KMCTR fc10":  3 OK compares.  All pass.
Test "KMCTR fc11":  3 OK compares.  All pass.
Test "KMCTR fc18":  2 OK compares.  All pass.
Test "KMCTR fc19":  2 OK compares.  All pass.
Test "KMCTR fc20":  2 OK compares.  All pass.
Test "KMCTR fc26":  3 OK compares.  All pass.
Test "KMCTR fc27":  3 OK compares.  All pass.
Test "KMCTR fc28":  3 OK compares.  All pass.
Test "KMF fc0":  2 OK compares.  All pass.
Test "KMF bad":  2 OK compares.  All pass.
Test "KMF fc1":  3 OK compares.  All pass.
Test "KMF fc2":  3 OK compares.  All pass.
Test "KMF fc3":  3 OK compares.  All pass.
Test "KMF fc9":  3 OK compares.  All pass.
Test "KMF fc10":  3 OK compares.  All pass.
Test "KMF fc11":  3 OK compares.  All pass.
Test "KMF fc18":  3 OK compares.  All pass.
Test "KMF fc19":  3 OK compares.  All pass.
Test "KMF fc20":  3 OK compares.  All pass.
Test "KMF fc26":  3 OK compares.  All pass.
Test "KMF fc27":  3 OK compares.  All pass.
Test "KMF fc28":  3 OK compares.  All pass.
Test "KMO fc0":  2 OK compares.  All pass.
Test "KMO bad":  2 OK compares.  All pass.
Test "KMO fc1":  3 OK compares.  All pass.
Test "KMO fc2":  3 OK compares.  All pass.
Test "KMO fc3":  3 OK compares.  All pass.
Test "KMO fc9":  3 OK compares.  All pass.
Test "KMO fc10":  3 OK compares.  All pass.
Test "KMO fc11":  3 OK compares.  All pass.
Test "KMO fc18":  3 OK compares.  All pass.
Test "KMO fc19":  3 OK compares.  All pass.
Test "KMO fc20":  3 OK compares.  All pass.
Test "KMO fc26":  3 OK compares.  All pass.
Test "KMO fc27":  3 OK compares.  All pass.
Test "KMO fc28":  3 OK compares.  All pass.
Test "leapfrog processed 16 Jan 2016 12:11:11 by bldhtc.rexx":  3 OK compares.  All pass.
Test "logicImmediate processed 12 Nov 2015 12:36:58 by bldhtc.rexx":  17 OK compares.  All pass.
Test "mainsize check storage size":  26 OK compares.  All pass.
Test "mhi":  4 OK compares.  All pass.
Test "mvcle-370":  3 OK compares.  All pass.
Test "mvcos-001.tst:":  1 OK compares.  All pass.
Test "PERZAD: Quick PER Zero-Address Detection test":  1 OK compares.  All pass.
Test "PFPO    ORIGINAL":  2 OK compares.  All pass.
Test "PFPO    TRUNCATED":  2 OK compares.  All pass.
Test "z/Arch prefix register and real/absolute storage set/display":  10 OK compares.  All pass.
Test "ESA/390 prefix register and real/absolute storage set/display":  10 OK compares.  All pass.
Test "S/370 prefix register and real/absolute storage set/display":  10 OK compares.  All pass.
Test "privopisk":  2 OK compares.  All pass.
Test "privopiske":  2 OK compares.  All pass.
Test "privopgo":  3 OK compares.  All pass.
Test "problem":  2 OK compares.  All pass.
Test "runtest0: all cpus 0 seconds":  5 OK compares.  All pass.
Test "runtest4: all cpus 1-4 seconds":  5 OK compares.  All pass.
Test "semipriv":  5 OK compares.  All pass.
Test "sigp":  1 OK compares.  All pass.
Test "Storage Keys: pure System/370 only":  1 OK compares.  All pass.
Test "Storage Keys: S/390 then z/Arch":  1 OK compares.  All pass.
Test "Storage Keys: Pure z/Arch only":  1 OK compares.  All pass.
Test "SRSTU: Simple Search String Unicode test":  1 OK compares.  All pass.
Test "sske#1":  2 OK compares.  All pass.
Test "sske#2":  53 OK compares.  All pass.
Test "STFL and STFLE":  6 OK compares.  All pass.
Test "cpuverid FORCE (z/Arch LPAR FMT-0)":  2 OK compares.  All pass.
Test "S/370  BASIC  FMT-0  CPUs = 1":  2 OK compares.  All pass.
Test "S/370  BASIC  FMT-1  CPUs = 1":  2 OK compares.  All pass.
Test "S/370  LPAR  FMT-0  CPUs = 1":  2 OK compares.  All pass.
Test "S/370  LPAR  FMT-1  CPUs = 1":  2 OK compares.  All pass.
Test "S/370  BASIC  FMT-0  CPUs = 2":  2 OK compares.  All pass.
Test "S/370  BASIC  FMT-1  CPUs = 2":  2 OK compares.  All pass.
Test "S/370  LPAR  FMT-0  CPUs = 2":  2 OK compares.  All pass.
Test "S/370  LPAR  FMT-1  CPUs = 2":  2 OK compares.  All pass.
Test "ESA/390  BASIC  FMT-0  CPUs = 1":  2 OK compares.  All pass.
Test "ESA/390  BASIC  FMT-1  CPUs = 1":  2 OK compares.  All pass.
Test "ESA/390  LPAR  FMT-0  CPUs = 1":  2 OK compares.  All pass.
Test "ESA/390  LPAR  FMT-1  CPUs = 1":  2 OK compares.  All pass.
Test "ESA/390  BASIC  FMT-0  CPUs = 2":  2 OK compares.  All pass.
Test "ESA/390  BASIC  FMT-1  CPUs = 2":  2 OK compares.  All pass.
Test "ESA/390  LPAR  FMT-0  CPUs = 2":  2 OK compares.  All pass.
Test "ESA/390  LPAR  FMT-1  CPUs = 2":  2 OK compares.  All pass.
Test "z/Arch  BASIC  FMT-0  CPUs = 1":  2 OK compares.  All pass.
Test "z/Arch  BASIC  FMT-1  CPUs = 1":  2 OK compares.  All pass.
Test "z/Arch  LPAR  FMT-0  CPUs = 1":  2 OK compares.  All pass.
Test "z/Arch  LPAR  FMT-1  CPUs = 1":  2 OK compares.  All pass.
Test "z/Arch  BASIC  FMT-0  CPUs = 2":  2 OK compares.  All pass.
Test "z/Arch  BASIC  FMT-1  CPUs = 2":  2 OK compares.  All pass.
Test "z/Arch  LPAR  FMT-0  CPUs = 2":  2 OK compares.  All pass.
Test "z/Arch  LPAR  FMT-1  CPUs = 2":  2 OK compares.  All pass.
Test "str-001-cksm: Test CKSM Instruction":  1 OK compares.  All pass.
Test "str-001-clst: Test CLST Instruction":  1 OK compares.  All pass.
Test "str-001-mvst: Test MVST Instruction":  1 OK compares.  All pass.
Test "str-001-srst: Test SRST Instruction":  1 OK compares.  All pass.
Test "Tape Data Chaining":  2 OK compares.  All pass.
Test "timeout":  1 OK compares.  All pass.
Test "TRE-01-basic (Test TRE instructions)":  1 OK compares.  All pass.
Test "TRE-02-performance (Test TRE instructions)":  1 OK compares.  All pass.
Test "TRTE-01-basic (Test TRTE instruction)":  1 OK compares.  All pass.
Test "TRTE-02-performance (Test TRTE instruction)":  1 OK compares.  All pass.
Test "TRTR-01-basic (Test TRTR instruction)":  1 OK compares.  All pass.
Test "TRTR-02-performance (Test TRTR instruction)":  1 OK compares.  All pass.
Test "TRTRE-01-basic (Test TRTRE instruction)":  1 OK compares.  All pass.
Test "TRTRE-02-performance (Test TRTRE instruction)":  1 OK compares.  All pass.
Test "TXFPER: Test PER Tracing of TXF Transactions":  1 OK compares.  All pass.
Test "multix":  2 OK compares.  All pass.
Test "multix1":  2 OK compares.  All pass.
Test "zeos":  6 OK compares.  All pass.
Did 237 tests.  All OK.

Duration: 27 seconds

End: ** Success! **


@Fish-Git Fish-Git removed QUESTION... A question was asked but has not been answered yet, -OR- additional feedback is requested. IN PROGRESS... I'm working on it! (Or someone else is!) labels Feb 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BUG The issue describes likely incorrect product functionality that likely needs corrected. Enhancement This issue does not describe a problem but rather describes a suggested change or improvement.
Projects
None yet
Development

No branches or pull requests

2 participants