test für MDF2004 zu medfntstx zugefügt
This commit is contained in:
+143
-9
@@ -73,6 +73,8 @@ TestInvalidDevice();
|
||||
|
||||
TestInvalidMediaFile();
|
||||
|
||||
TestInvalidVolumeArray();
|
||||
|
||||
|
||||
dsply '----------------------------------------';
|
||||
dsply 'MEDDFN Parser Error Test completed';
|
||||
@@ -247,8 +249,6 @@ dcl-proc TestInvalidDevice;
|
||||
Device.OffsetToFirstMediaFileDefinition =
|
||||
%size(Device);
|
||||
Device.NumberOfMediaFileDefinitions = 1;
|
||||
|
||||
// Deliberately invalid.
|
||||
Device.LengthOfDeviceDefinition = 0;
|
||||
|
||||
%subst(
|
||||
@@ -333,6 +333,136 @@ dcl-proc TestInvalidMediaFile;
|
||||
clear Device;
|
||||
clear MediaFile;
|
||||
|
||||
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;
|
||||
|
||||
Device.OffsetToNextDeviceDefinition = 0;
|
||||
Device.DeviceName = 'TAPMLBBRMS';
|
||||
Device.OffsetToFirstMediaFileDefinition =
|
||||
%size(Device);
|
||||
Device.NumberOfMediaFileDefinitions = 1;
|
||||
Device.LengthOfDeviceDefinition =
|
||||
%size(Device);
|
||||
|
||||
MediaFile.OffsetToNextMediaFileDefinition = 0;
|
||||
MediaFile.SequenceNumber = 1;
|
||||
MediaFile.NumberOfVolumeIdentifiers = 0;
|
||||
MediaFile.OffsetToVolumeIdentifierArray = 0;
|
||||
MediaFile.LengthOfVolumeIdentifier = 0;
|
||||
MediaFile.StartingVolumeArrayElement = 0;
|
||||
|
||||
// Deliberately invalid.
|
||||
MediaFile.LengthOfMediaFileDefinition = 0;
|
||||
|
||||
%subst(
|
||||
ReceiverBuffer :
|
||||
1 :
|
||||
%size(Header)) = Header;
|
||||
|
||||
%subst(
|
||||
ReceiverBuffer :
|
||||
%size(Header) + 1 :
|
||||
%size(Device)) = Device;
|
||||
|
||||
%subst(
|
||||
ReceiverBuffer :
|
||||
%size(Header)
|
||||
+ %size(Device)
|
||||
+ 1 :
|
||||
%size(MediaFile)) = MediaFile;
|
||||
|
||||
ReceiverLength =
|
||||
%size(Header)
|
||||
+ %size(Device)
|
||||
+ %size(MediaFile);
|
||||
|
||||
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 = 'MDF2003';
|
||||
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;
|
||||
|
||||
|
||||
//=====================================================================
|
||||
//
|
||||
// TestInvalidVolumeArray
|
||||
//
|
||||
// Tests parser handling of an invalid volume identifier array.
|
||||
//
|
||||
// The receiver contains a valid header, device definition and media
|
||||
// file definition. The media file contains one volume identifier, but
|
||||
// LengthOfVolumeIdentifier is deliberately set to 5 instead of 6.
|
||||
//
|
||||
// Expected error:
|
||||
//
|
||||
// MDF2004 - Invalid volume identifier array
|
||||
//
|
||||
//=====================================================================
|
||||
|
||||
dcl-proc TestInvalidVolumeArray;
|
||||
|
||||
dcl-ds Header
|
||||
likeds(MD_Tape0200Header_T)
|
||||
inz;
|
||||
|
||||
dcl-ds Device
|
||||
likeds(MD_Tape0200DeviceDefinition_T)
|
||||
inz;
|
||||
|
||||
dcl-ds MediaFile
|
||||
likeds(MD_Tape0200MediaFileDefinition_T)
|
||||
inz;
|
||||
|
||||
|
||||
dsply '----------------------------------------';
|
||||
dsply 'Test: Invalid TAPE0200 volume identifier array';
|
||||
dsply '----------------------------------------';
|
||||
|
||||
clear ReceiverBuffer;
|
||||
clear MediaDefinition;
|
||||
clear Error;
|
||||
clear Header;
|
||||
clear Device;
|
||||
clear MediaFile;
|
||||
|
||||
|
||||
//===============================================================
|
||||
// Header
|
||||
@@ -382,16 +512,20 @@ dcl-proc TestInvalidMediaFile;
|
||||
|
||||
MediaFile.SequenceNumber = 1;
|
||||
|
||||
MediaFile.NumberOfVolumeIdentifiers = 0;
|
||||
MediaFile.NumberOfVolumeIdentifiers = 1;
|
||||
|
||||
MediaFile.OffsetToVolumeIdentifierArray = 0;
|
||||
MediaFile.OffsetToVolumeIdentifierArray =
|
||||
%size(Header)
|
||||
+ %size(Device)
|
||||
+ %size(MediaFile);
|
||||
|
||||
MediaFile.LengthOfVolumeIdentifier = 0;
|
||||
// Deliberately invalid: expected 6.
|
||||
MediaFile.LengthOfVolumeIdentifier = 5;
|
||||
|
||||
MediaFile.StartingVolumeArrayElement = 0;
|
||||
MediaFile.StartingVolumeArrayElement = 1;
|
||||
|
||||
// Deliberately invalid.
|
||||
MediaFile.LengthOfMediaFileDefinition = 0;
|
||||
MediaFile.LengthOfMediaFileDefinition =
|
||||
%size(MediaFile);
|
||||
|
||||
|
||||
//===============================================================
|
||||
@@ -453,7 +587,7 @@ dcl-proc TestInvalidMediaFile;
|
||||
endif;
|
||||
|
||||
|
||||
if Error.MessageID = 'MDF2003';
|
||||
if Error.MessageID = 'MDF2004';
|
||||
dsply 'PASS Error.MessageID';
|
||||
else;
|
||||
dsply 'FAIL Error.MessageID';
|
||||
|
||||
Reference in New Issue
Block a user