diff --git a/meddfnsrv.rpgle b/meddfnsrv.rpgle index 730450a..a31de94 100644 --- a/meddfnsrv.rpgle +++ b/meddfnsrv.rpgle @@ -8,7 +8,7 @@ // Serviceprogramm erstellen mit : // CRTSRVPGM SRVPGM(GOSCH1/MEDDFNSRV) // MODULE(GOSCH1/MEDDFNSRV -// GOSCH1/MEEDFNPRS +// GOSCH1/MEdDFNPRS // GOSCH1/MEDDFNBLD) // EXPORT(*SRCFILE) // SRCFILE(GOSCH1/MEDDFN) diff --git a/meddfntstx.rpgle b/meddfntstx.rpgle new file mode 100644 index 0000000..d81e908 --- /dev/null +++ b/meddfntstx.rpgle @@ -0,0 +1,159 @@ +**FREE +//===================================================================== +// +// Project.....: MEDDFN +// +// Member......: MEDDFNTSTX +// +// Description.: MEDDFN Parser Error Test Program +// +// Erstellen mit: +// +// CRTRPGMOD MODULE(GOSCH1/MEDDFNTSTX) +// SRCSTMF('/home/GOSCH/meddfn/meddfntstx.rpgle') +// OPTION(*EVENTF) +// DBGVIEW(*SOURCE) +// TGTRLS(*CURRENT) +// +// CRTPGM PGM(GOSCH1/MEDDFNTSTX) +// MODULE(GOSCH1/MEDDFNTSTX) +// MODULE(GOSCH1/MEDDFNPRS) +// ACTGRP(*NEW) +// TGTRLS(*CURRENT) +// +//===================================================================== + +ctl-opt + option(*srcstmt:*nodebugio); + + +/COPY './meddfn_h.rpgle' +/COPY './meddfnap_h.rpgle' + + +//===================================================================== +// +// Data +// +//===================================================================== + +dcl-s ReceiverBuffer + char(32767); + +dcl-ds MediaDefinition + likeds(MD_MediaDefinition_T); + +dcl-ds Error + likeds(MD_Error_T); + + +//===================================================================== +// +// Prototype +// +//===================================================================== + +dcl-pr MD_ParseRetrieveBuffer; + + ReceiverBuffer + char(32767) const + options(*varsize); + + MediaDefinition + likeds(MD_MediaDefinition_T); + + Error + likeds(MD_Error_T); + +end-pr; + + +dcl-pr TestInvalidHeader; +end-pr; + + +//===================================================================== +// +// Main +// +//===================================================================== + +TestInvalidHeader(); + + +dsply '----------------------------------------'; +dsply 'MEDDFN Parser Error Test completed'; +dsply '----------------------------------------'; + + +//===================================================================== +// +// TestInvalidHeader +// +// Verifies that the parser rejects an invalid TAPE0200 header. +// +// The buffer is cleared, so LengthOfHeader is zero instead of the +// expected TAPE0200 header length. +// +// Expected error: MDF2001 +// +//===================================================================== + +dcl-proc TestInvalidHeader; + + clear ReceiverBuffer; + clear MediaDefinition; + clear Error; + + + dsply '----------------------------------------'; + dsply 'Test: Invalid TAPE0200 header'; + dsply '----------------------------------------'; + + + monitor; + + MD_ParseRetrieveBuffer( + ReceiverBuffer : + MediaDefinition : + Error); + + on-error; + + dsply 'FAIL Unexpected runtime error'; + return; + + endmon; + + + if Error.HasError; + dsply 'PASS Error.HasError'; + else; + dsply 'FAIL Error.HasError'; + endif; + + + if Error.MessageID = 'MDF2001'; + dsply 'PASS Error.MessageID'; + else; + dsply 'FAIL Error.MessageID'; + endif; + + + if %trim(Error.MessageData) = ''; + dsply 'PASS Error.MessageData'; + else; + dsply 'INFO Error.MessageData contains data'; + endif; + +end-proc; + + +//===================================================================== +// +// End +// +//===================================================================== + +*inlr = *on; +return;