MDF2002 Test zu meddfntstx zugefügt

This commit is contained in:
2026-09-18 14:03:47 +02:00
parent 59293da7ed
commit e10386b9bc
+140
View File
@@ -69,6 +69,8 @@ TestReceiverTooSmall();
TestInvalidHeader(); TestInvalidHeader();
TestInvalidDevice();
dsply '----------------------------------------'; dsply '----------------------------------------';
dsply 'MEDDFN Parser Error Test completed'; dsply 'MEDDFN Parser Error Test completed';
@@ -219,6 +221,144 @@ dcl-proc TestInvalidHeader;
endif; endif;
if %trim(Error.MessageData) = '';
dsply 'PASS Error.MessageData';
else;
dsply 'FAIL Error.MessageData';
endif;
end-proc;
//=====================================================================
//
// TestInvalidDevice
//
// Tests parser handling of an invalid TAPE0200 device definition.
//
// The receiver contains a valid header and one device definition.
// The device definition has an invalid structure length.
//
// Expected error:
//
// MDF2002 - Invalid device definition
//
//=====================================================================
dcl-proc TestInvalidDevice;
dcl-ds Header
likeds(MD_Tape0200Header_T)
inz;
dcl-ds Device
likeds(MD_Tape0200DeviceDefinition_T)
inz;
dsply '----------------------------------------';
dsply 'Test: Invalid TAPE0200 device definition';
dsply '----------------------------------------';
clear ReceiverBuffer;
clear MediaDefinition;
clear Error;
clear Header;
clear Device;
//===============================================================
// Valid header
//===============================================================
Header.MaximumParallelDeviceResources = 0;
Header.MinimumParallelDeviceResources = 0;
Header.OffsetToFirstDeviceDefinition =
%size(Header);
Header.NumberOfDeviceDefinitions = 1;
Header.LengthOfHeader =
%size(Header);
Header.DeviceAllocation =
MD_DeviceAllocateAll;
Header.SaveFormat =
MD_SaveFormatSerial;
//===============================================================
// Invalid device definition
//===============================================================
Device.OffsetToNextDeviceDefinition = 0;
Device.DeviceName = 'TAPMLBBRMS';
Device.OffsetToFirstMediaFileDefinition =
%size(Device);
Device.NumberOfMediaFileDefinitions = 1;
// Deliberately invalid.
Device.LengthOfDeviceDefinition = 0;
//===============================================================
// Header and device into receiver buffer
//===============================================================
%subst(
ReceiverBuffer :
1 :
%size(Header)) = Header;
%subst(
ReceiverBuffer :
%size(Header) + 1 :
%size(Device)) = Device;
ReceiverLength =
%size(Header)
+ %size(Device);
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 = 'MDF2002';
dsply 'PASS Error.MessageID';
else;
dsply 'FAIL Error.MessageID';
endif;
if %trim(Error.MessageData) = ''; if %trim(Error.MessageData) = '';
dsply 'PASS Error.MessageData'; dsply 'PASS Error.MessageData';
else; else;