**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 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 '----------------------------------------'; //===================================================================== // // End // //===================================================================== *inlr = *on; return; //===================================================================== // // 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;