diff --git a/meddfntstp.rpgle b/meddfntstp.rpgle index dfd6550..0321ef8 100644 --- a/meddfntstp.rpgle +++ b/meddfntstp.rpgle @@ -1,43 +1,54 @@ **FREE +**FREE + //===================================================================== // // Program......: MEDDFNTSTP // -// Description..: MEDDFN Builder Test Program -// Erstellen mit : +// Description..: MEDDFN Builder / Parser Test Program +// +// Erstellen mit: +// // CRTPGM PGM(GOSCH1/MEDDFNTSTP) // MODULE(GOSCH1/MEDDFNTSTP) // BNDSRVPGM(GOSCH1/MEDDFNSRV) // ACTGRP(*NEW) // TGTRLS(*CURRENT) // -// -// -// //===================================================================== ctl-opt -// dftactgrp(*no) -// actgrp(*new) option(*srcstmt:*nodebugio); /COPY './meddfn_h.rpgle' /COPY './meddfnap_h.rpgle' -// /copy GOSCH1/MEDDFN,MEDDFN_H -// /copy GOSCH1/MEDDFN,MEDDFNPR dcl-ds MediaDefinition likeds(MD_MediaDefinition_T); +dcl-ds RetrievedDefinition + likeds(MD_MediaDefinition_T); dcl-pr BuildTestDefinition; end-pr; + +//===================================================================== +// +// Main +// +//===================================================================== + BuildTestDefinition(); + +//--------------------------------------------------------------- +// Vorhandene Definition löschen +//--------------------------------------------------------------- + monitor; MD_DeleteMediaDefinition( @@ -48,23 +59,98 @@ on-error; endmon; +//--------------------------------------------------------------- +// Definition erzeugen +//--------------------------------------------------------------- + MD_CreateMediaDefinition( MediaDefinition); +//--------------------------------------------------------------- +// Original sichern +//--------------------------------------------------------------- + +RetrievedDefinition = MediaDefinition; + + +//--------------------------------------------------------------- +// Definition wieder einlesen +//--------------------------------------------------------------- + +MD_RetrieveMediaDefinition( + MediaDefinition); + + +//--------------------------------------------------------------- +// Parser-Ergebnis prüfen +//--------------------------------------------------------------- + +if MediaDefinition.Device(1).DeviceName <> + RetrievedDefinition.Device(1).DeviceName; + + dsply 'ERROR: Device 1 DeviceName'; + +endif; + + +if MediaDefinition.Device(1).NumberOfMediaFiles <> + RetrievedDefinition.Device(1).NumberOfMediaFiles; + + dsply 'ERROR: Device 1 NumberOfMediaFiles'; + +endif; + + +if MediaDefinition.Device(1).MediaFile(1).SequenceNumber <> + RetrievedDefinition.Device(1).MediaFile(1).SequenceNumber; + + dsply 'ERROR: Device 1 SequenceNumber'; + +endif; + + +if MediaDefinition.Device(1).MediaFile(1).NumberOfVolumeIdentifiers <> + RetrievedDefinition.Device(1).MediaFile(1).NumberOfVolumeIdentifiers; + + dsply 'ERROR: Device 1 NumberOfVolumeIdentifiers'; + +endif; + + +if MediaDefinition.Device(1) + .MediaFile(1) + .VolumeIdentifier(1) + .VolumeIdentifier <> + RetrievedDefinition.Device(1) + .MediaFile(1) + .VolumeIdentifier(1) + .VolumeIdentifier; + + dsply 'ERROR: Device 1 VolumeIdentifier'; + +endif; + + *inlr = *on; return; + //===================================================================== // // BuildTestDefinition // -// Builds a simple test media definition: +// Builds: // -// 1 Device +// 2 Devices +// +// Device 1 // 1 Media File -// VOL001 -// VOL002 +// DAK066 +// +// Device 2 +// 1 Media File +// DAK079 // //===================================================================== @@ -81,142 +167,92 @@ dcl-proc BuildTestDefinition; // General //--------------------------------------------------------------- - MediaDefinition.MediaDefinitionName = 'TEST0200X'; - MediaDefinition.LibraryName = 'GOSCH1'; - MediaDefinition.TextDescription = 'Test MEDDFN'; + MediaDefinition.MediaDefinitionName = + 'TEST0200X'; - MediaDefinition.MaximumParallelResources = 2; - MediaDefinition.MinimumParallelResources = 2; + MediaDefinition.LibraryName = + 'GOSCH1'; - MediaDefinition.DeviceAllocation = MD_DeviceAllocateAll; - MediaDefinition.SaveFormat = MD_SaveFormatParallel; + MediaDefinition.TextDescription = + 'Test MEDDFN'; - MediaDefinition.NumberOfDevices = 2; + MediaDefinition.MaximumParallelResources = + 2; + + MediaDefinition.MinimumParallelResources = + 2; + + MediaDefinition.DeviceAllocation = + MD_DeviceAllocateAll; + + MediaDefinition.SaveFormat = + MD_SaveFormatParallel; + + MediaDefinition.NumberOfDevices = + 2; -//--------------------------------------------------------------- -// Device 1 / Resource 1 -//--------------------------------------------------------------- - - MediaDefinition.Device(1).DeviceName = 'TAPMLBBRMS'; - - MediaDefinition.Device(1).NumberOfMediaFiles = 1; - - MediaDefinition.Device(1) - .MediaFile(1) - .SequenceNumber = 0; - - MediaDefinition.Device(1) - .MediaFile(1) - .StartingPositionInFile = *ALL'0'; - - MediaDefinition.Device(1) - .MediaFile(1) - .NumberOfVolumeIdentifiers = 1; - - MediaDefinition.Device(1) - .MediaFile(1) - .VolumeIdentifier(1) - .VolumeIdentifier = 'DAK066'; - - -//--------------------------------------------------------------- -// Device 2 / Resource 2 -//--------------------------------------------------------------- - - MediaDefinition.Device(2).DeviceName = 'TAPMLBBRMS'; - - MediaDefinition.Device(2).NumberOfMediaFiles = 1; - - MediaDefinition.Device(2) - .MediaFile(1) - .SequenceNumber = 0; - - MediaDefinition.Device(2) - .MediaFile(1) - .StartingPositionInFile = *ALL'0'; - - MediaDefinition.Device(2) - .MediaFile(1) - .NumberOfVolumeIdentifiers = 1; - - MediaDefinition.Device(2) - .MediaFile(1) - .VolumeIdentifier(1) - .VolumeIdentifier = 'DAK079'; - -end-proc; - - -//===================================================================== -// -// BuildTestDefinition -// -//===================================================================== - -dcl-proc BuildTestDefinitionOld; - - dcl-pi *n; - end-pi; - - clear MediaDefinition; - - //-------------------------------------------------------------- - // Media Definition - //-------------------------------------------------------------- - - MediaDefinition.MediaDefinitionName = 'TEST0200'; - MediaDefinition.LibraryName = 'QTEMP'; - MediaDefinition.TextDescription = 'MEDDFN Test'; - - MediaDefinition.Replace = *on; - - MediaDefinition.DeviceAllocation = MD_DeviceAllocateAll; - MediaDefinition.SaveFormat = MD_SaveFormatParallel; - - MediaDefinition.MaximumParallelResources = 1; - MediaDefinition.MinimumParallelResources = 1; - - //-------------------------------------------------------------- - // Device - //-------------------------------------------------------------- - - MediaDefinition.NumberOfDevices = 1; + //--------------------------------------------------------------- + // Device 1 / Resource 1 + //--------------------------------------------------------------- MediaDefinition.Device(1).DeviceName = 'TAPMLBBRMS'; - MediaDefinition.Device(1).NumberOfMediaFiles = 1; - - //-------------------------------------------------------------- - // Media File - //-------------------------------------------------------------- + MediaDefinition.Device(1).NumberOfMediaFiles = + 1; MediaDefinition.Device(1) .MediaFile(1) - .SequenceNumber = 0; + .SequenceNumber = + 0; MediaDefinition.Device(1) .MediaFile(1) - .StartingPositionInFile = *ALLX'00'; - // .StartingPositionInFile = '*FIRST'; + .StartingPositionInFile = + *ALL'0'; MediaDefinition.Device(1) .MediaFile(1) - .NumberOfVolumeIdentifiers = 0; + .NumberOfVolumeIdentifiers = + 1; - //-------------------------------------------------------------- - // Volume IDs - //-------------------------------------------------------------- + MediaDefinition.Device(1) + .MediaFile(1) + .VolumeIdentifier(1) + .VolumeIdentifier = + 'DAK066'; - // MediaDefinition.Device(1) - // .MediaFile(1) - // .VolumeIdentifier(1) - // .VolumeIdentifier = 'VOL001'; - // MediaDefinition.Device(1) - // .MediaFile(1) - // .VolumeIdentifier(2) - // .VolumeIdentifier = 'VOL002'; + //--------------------------------------------------------------- + // Device 2 / Resource 2 + //--------------------------------------------------------------- -end-proc; + MediaDefinition.Device(2).DeviceName = + 'TAPMLBBRMS'; + + MediaDefinition.Device(2).NumberOfMediaFiles = + 1; + + MediaDefinition.Device(2) + .MediaFile(1) + .SequenceNumber = + 0; + + MediaDefinition.Device(2) + .MediaFile(1) + .StartingPositionInFile = + *ALL'0'; + + MediaDefinition.Device(2) + .MediaFile(1) + .NumberOfVolumeIdentifiers = + 1; + + MediaDefinition.Device(2) + .MediaFile(1) + .VolumeIdentifier(1) + .VolumeIdentifier = + 'DAK079'; + +end-proc; \ No newline at end of file