Files
MEDDFN/meddfntstx.rpgle
T

157 lines
3.1 KiB
RPGLE

**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'
//=====================================================================
//
// Parser Prototype
//
//=====================================================================
dcl-pr MD_ParseRetrieveBuffer;
ReceiverBuffer
char(32767) const
options(*varsize);
ReceiverLength
int(10) const;
MediaDefinition
likeds(MD_MediaDefinition_T);
Error
likeds(MD_Error_T);
end-pr;
//=====================================================================
//
// Data
//
//=====================================================================
dcl-s ReceiverBuffer
char(32767);
dcl-s ReceiverLength
int(10);
dcl-ds MediaDefinition
likeds(MD_MediaDefinition_T);
dcl-ds Error
likeds(MD_Error_T);
//=====================================================================
//
// Main
//
//=====================================================================
TestReceiverTooSmall();
dsply '----------------------------------------';
dsply 'MEDDFN Parser Error Test completed';
dsply '----------------------------------------';
*inlr = *on;
return;
//=====================================================================
//
// TestReceiverTooSmall
//
// Tests parser handling of a receiver buffer that is too small
// for a TAPE0200 header.
//
// Expected error:
//
// MDF2005 - Receiver buffer too small
//
//=====================================================================
dcl-proc TestReceiverTooSmall;
dsply '----------------------------------------';
dsply 'Test: Receiver buffer too small';
dsply '----------------------------------------';
clear ReceiverBuffer;
clear MediaDefinition;
clear Error;
ReceiverLength = 1;
monitor;
MD_ParseRetrieveBuffer(
ReceiverBuffer :
ReceiverLength :
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 = 'MDF2005';
dsply 'PASS Error.MessageID';
else;
dsply 'FAIL Error.MessageID';
endif;
if %trim(Error.MessageData) = '';
dsply 'PASS Error.MessageData';
else;
dsply 'FAIL Error.MessageData';
endif;
end-proc;