**FREE //===================================================================== // // Program......: MEDDFNTSTP // // Description..: MEDDFN Builder / Parser Test Program // // Erstellen mit: // // CRTRPGMOD MODULE(GOSCH1/MEDDFNTSTP) // SRCSTMF('/home/GOSCH/meddfn/meddfntstp.rpgle') // OPTION(*EVENTF) // DBGVIEW(*SOURCE) // TGTRLS(*CURRENT) // // CRTPGM PGM(GOSCH1/MEDDFNTSTP) // MODULE(GOSCH1/MEDDFNTSTP) // BNDSRVPGM(GOSCH1/MEDDFNSRV) // ACTGRP(*NEW) // TGTRLS(*CURRENT) // //===================================================================== ctl-opt option(*srcstmt:*nodebugio); /COPY './meddfn_h.rpgle' /COPY './meddfnap_h.rpgle' /COPY './meddfnpr.rpgle' //===================================================================== // // Data // //===================================================================== dcl-ds MediaDefinition likeds(MD_MediaDefinition_T); dcl-ds OriginalDefinition likeds(MD_MediaDefinition_T); //===================================================================== // // Prototypes // //===================================================================== dcl-pr BuildTestDefinition; end-pr; //===================================================================== // // Main // //===================================================================== BuildTestDefinition(); //--------------------------------------------------------------------- // Vorhandene MEDDFN löschen //--------------------------------------------------------------------- dsply '----------------------------------------'; dsply 'MEDDFN Parser Test'; dsply '----------------------------------------'; dsply 'Deleting existing MEDDFN...'; monitor; MD_DeleteMediaDefinition( MediaDefinition); dsply 'Delete completed'; on-error; dsply 'No existing MEDDFN deleted'; endmon; //--------------------------------------------------------------------- // MEDDFN erstellen //--------------------------------------------------------------------- dsply 'Creating MEDDFN...'; MD_CreateMediaDefinition( MediaDefinition); dsply 'Create completed'; //--------------------------------------------------------------------- // Originaldefinition sichern //--------------------------------------------------------------------- OriginalDefinition = MediaDefinition; //--------------------------------------------------------------------- // MEDDFN lesen //--------------------------------------------------------------------- dsply 'Retrieving MEDDFN...'; MD_RetrieveMediaDefinition( MediaDefinition); dsply 'Retrieve completed'; //===================================================================== // Tests //===================================================================== dsply '----------------------------------------'; dsply 'Parser result'; dsply '----------------------------------------'; //===================================================================== // General //===================================================================== if MediaDefinition.MediaDefinitionName = OriginalDefinition.MediaDefinitionName; dsply 'PASS MediaDefinitionName'; else; dsply 'FAIL MediaDefinitionName'; endif; if MediaDefinition.LibraryName = OriginalDefinition.LibraryName; dsply 'PASS LibraryName'; else; dsply 'FAIL LibraryName'; endif; if MediaDefinition.NumberOfDevices = OriginalDefinition.NumberOfDevices; dsply 'PASS NumberOfDevices'; else; dsply 'FAIL NumberOfDevices'; endif; //===================================================================== // General - additional fields //===================================================================== if MediaDefinition.TextDescription = OriginalDefinition.TextDescription; dsply 'PASS TextDescription'; else; dsply 'FAIL TextDescription'; endif; if MediaDefinition.DeviceAllocation = OriginalDefinition.DeviceAllocation; dsply 'PASS DeviceAllocation'; else; dsply 'FAIL DeviceAllocation'; endif; if MediaDefinition.SaveFormat = OriginalDefinition.SaveFormat; dsply 'PASS SaveFormat'; else; dsply 'FAIL SaveFormat'; endif; if MediaDefinition.MaximumParallelResources = OriginalDefinition.MaximumParallelResources; dsply 'PASS MaximumParallelResources'; else; dsply 'FAIL MaximumParallelResources'; endif; if MediaDefinition.MinimumParallelResources = OriginalDefinition.MinimumParallelResources; dsply 'PASS MinimumParallelResources'; else; dsply 'FAIL MinimumParallelResources'; endif; //===================================================================== // Device 1 //===================================================================== dsply '----------------------------------------'; dsply 'Device 1'; if MediaDefinition.Device(1).DeviceName = OriginalDefinition.Device(1).DeviceName; dsply 'PASS Device 1 DeviceName'; else; dsply 'FAIL Device 1 DeviceName'; endif; if MediaDefinition.Device(1).NumberOfMediaFiles = OriginalDefinition.Device(1).NumberOfMediaFiles; dsply 'PASS Device 1 NumberOfMediaFiles'; else; dsply 'FAIL Device 1 NumberOfMediaFiles'; endif; //===================================================================== // Device 1 / Media File 1 //===================================================================== dsply 'Media File 1'; if MediaDefinition.Device(1) .MediaFile(1) .SequenceNumber = OriginalDefinition.Device(1) .MediaFile(1) .SequenceNumber; dsply 'PASS Device 1 SequenceNumber'; else; dsply 'FAIL Device 1 SequenceNumber'; endif; if MediaDefinition.Device(1) .MediaFile(1) .StartingPositionInFile = OriginalDefinition.Device(1) .MediaFile(1) .StartingPositionInFile; dsply 'PASS Device 1 StartingPositionInFile'; else; dsply 'FAIL Device 1 StartingPositionInFile'; endif; if MediaDefinition.Device(1) .MediaFile(1) .NumberOfVolumeIdentifiers = OriginalDefinition.Device(1) .MediaFile(1) .NumberOfVolumeIdentifiers; dsply 'PASS Device 1 Media File 1 NumberOfVolumes'; else; dsply 'FAIL Device 1 Media File 1 NumberOfVolumes'; endif; if MediaDefinition.Device(1) .MediaFile(1) .VolumeIdentifier(1) .VolumeIdentifier = OriginalDefinition.Device(1) .MediaFile(1) .VolumeIdentifier(1) .VolumeIdentifier; dsply 'PASS Device 1 Media File 1 Volume 1'; else; dsply 'FAIL Device 1 Media File 1 Volume 1'; endif; if MediaDefinition.Device(1) .MediaFile(1) .VolumeIdentifier(2) .VolumeIdentifier = OriginalDefinition.Device(1) .MediaFile(1) .VolumeIdentifier(2) .VolumeIdentifier; dsply 'PASS Device 1 Media File 1 Volume 2'; else; dsply 'FAIL Device 1 Media File 1 Volume 2'; endif; //===================================================================== // Device 1 / Media File 2 //===================================================================== dsply 'Media File 2'; if MediaDefinition.Device(1) .MediaFile(2) .SequenceNumber = OriginalDefinition.Device(1) .MediaFile(2) .SequenceNumber; dsply 'PASS Device 1 Media File 2 SequenceNumber'; else; dsply 'FAIL Device 1 Media File 2 SequenceNumber'; endif; if MediaDefinition.Device(1) .MediaFile(2) .StartingPositionInFile = OriginalDefinition.Device(1) .MediaFile(2) .StartingPositionInFile; dsply 'PASS Device 1 Media File 2 StartingPositionInFile'; else; dsply 'FAIL Device 1 Media File 2 StartingPositionInFile'; endif; if MediaDefinition.Device(1) .MediaFile(2) .NumberOfVolumeIdentifiers = OriginalDefinition.Device(1) .MediaFile(2) .NumberOfVolumeIdentifiers; dsply 'PASS Device 1 Media File 2 NumberOfVolumes'; else; dsply 'FAIL Device 1 Media File 2 NumberOfVolumes'; endif; if MediaDefinition.Device(1) .MediaFile(2) .VolumeIdentifier(1) .VolumeIdentifier = OriginalDefinition.Device(1) .MediaFile(2) .VolumeIdentifier(1) .VolumeIdentifier; dsply 'PASS Device 1 Media File 2 Volume 1'; else; dsply 'FAIL Device 1 Media File 2 Volume 1'; endif; if MediaDefinition.Device(1) .MediaFile(2) .VolumeIdentifier(2) .VolumeIdentifier = OriginalDefinition.Device(1) .MediaFile(2) .VolumeIdentifier(2) .VolumeIdentifier; dsply 'PASS Device 1 Media File 2 Volume 2'; else; dsply 'FAIL Device 1 Media File 2 Volume 2'; endif; //===================================================================== // Device 2 //===================================================================== dsply '----------------------------------------'; dsply 'Device 2'; if MediaDefinition.Device(2).DeviceName = OriginalDefinition.Device(2).DeviceName; dsply 'PASS Device 2 DeviceName'; else; dsply 'FAIL Device 2 DeviceName'; endif; if MediaDefinition.Device(2).NumberOfMediaFiles = OriginalDefinition.Device(2).NumberOfMediaFiles; dsply 'PASS Device 2 NumberOfMediaFiles'; else; dsply 'FAIL Device 2 NumberOfMediaFiles'; endif; //===================================================================== // Device 2 / Media File 1 //===================================================================== dsply 'Media File 1'; if MediaDefinition.Device(2) .MediaFile(1) .SequenceNumber = OriginalDefinition.Device(2) .MediaFile(1) .SequenceNumber; dsply 'PASS Device 2 Media File 1 SequenceNumber'; else; dsply 'FAIL Device 2 Media File 1 SequenceNumber'; endif; if MediaDefinition.Device(2) .MediaFile(1) .StartingPositionInFile = OriginalDefinition.Device(2) .MediaFile(1) .StartingPositionInFile; dsply 'PASS Device 2 Media File 1 StartingPositionInFile'; else; dsply 'FAIL Device 2 Media File 1 StartingPositionInFile'; endif; if MediaDefinition.Device(2) .MediaFile(1) .NumberOfVolumeIdentifiers = OriginalDefinition.Device(2) .MediaFile(1) .NumberOfVolumeIdentifiers; dsply 'PASS Device 2 Media File 1 NumberOfVolumes'; else; dsply 'FAIL Device 2 Media File 1 NumberOfVolumes'; endif; if MediaDefinition.Device(2) .MediaFile(1) .VolumeIdentifier(1) .VolumeIdentifier = OriginalDefinition.Device(2) .MediaFile(1) .VolumeIdentifier(1) .VolumeIdentifier; dsply 'PASS Device 2 Media File 1 Volume 1'; else; dsply 'FAIL Device 2 Media File 1 Volume 1'; endif; if MediaDefinition.Device(2) .MediaFile(1) .VolumeIdentifier(2) .VolumeIdentifier = OriginalDefinition.Device(2) .MediaFile(1) .VolumeIdentifier(2) .VolumeIdentifier; dsply 'PASS Device 2 Media File 1 Volume 2'; else; dsply 'FAIL Device 2 Media File 1 Volume 2'; endif; //===================================================================== // Device 2 / Media File 2 //===================================================================== dsply 'Media File 2'; if MediaDefinition.Device(2) .MediaFile(2) .SequenceNumber = OriginalDefinition.Device(2) .MediaFile(2) .SequenceNumber; dsply 'PASS Device 2 Media File 2 SequenceNumber'; else; dsply 'FAIL Device 2 Media File 2 SequenceNumber'; endif; if MediaDefinition.Device(2) .MediaFile(2) .StartingPositionInFile = OriginalDefinition.Device(2) .MediaFile(2) .StartingPositionInFile; dsply 'PASS Device 2 Media File 2 StartingPositionInFile'; else; dsply 'FAIL Device 2 Media File 2 StartingPositionInFile'; endif; if MediaDefinition.Device(2) .MediaFile(2) .NumberOfVolumeIdentifiers = OriginalDefinition.Device(2) .MediaFile(2) .NumberOfVolumeIdentifiers; dsply 'PASS Device 2 Media File 2 NumberOfVolumes'; else; dsply 'FAIL Device 2 Media File 2 NumberOfVolumes'; endif; if MediaDefinition.Device(2) .MediaFile(2) .VolumeIdentifier(1) .VolumeIdentifier = OriginalDefinition.Device(2) .MediaFile(2) .VolumeIdentifier(1) .VolumeIdentifier; dsply 'PASS Device 2 Media File 2 Volume 1'; else; dsply 'FAIL Device 2 Media File 2 Volume 1'; endif; if MediaDefinition.Device(2) .MediaFile(2) .VolumeIdentifier(2) .VolumeIdentifier = OriginalDefinition.Device(2) .MediaFile(2) .VolumeIdentifier(2) .VolumeIdentifier; dsply 'PASS Device 2 Media File 2 Volume 2'; else; dsply 'FAIL Device 2 Media File 2 Volume 2'; endif; //===================================================================== // Test completed //===================================================================== dsply '----------------------------------------'; dsply 'Parser test completed'; dsply '----------------------------------------'; //===================================================================== // End //===================================================================== *inlr = *on; return; //===================================================================== // // BuildTestDefinition // // Builds: // // 2 Devices // // Device 1 // Media File 1 // DAK066 // DAK067 // Media File 2 // DAK079 // DAK080 // // Device 2 // Media File 1 // DAK089 // DAK090 // Media File 2 // DAK091 // DAK092 // //===================================================================== dcl-proc BuildTestDefinition; dcl-pi *n; end-pi; clear MediaDefinition; //--------------------------------------------------------------- // General //--------------------------------------------------------------- MediaDefinition.MediaDefinitionName = 'TEST0200X'; MediaDefinition.LibraryName = 'GOSCH1'; MediaDefinition.TextDescription = 'Test MEDDFN'; 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 = 2; //--------------------------------------------------------------- // Device 1 / Media File 1 //--------------------------------------------------------------- MediaDefinition.Device(1) .MediaFile(1) .SequenceNumber = 0; MediaDefinition.Device(1) .MediaFile(1) .StartingPositionInFile = *ALL'0'; MediaDefinition.Device(1) .MediaFile(1) .NumberOfVolumeIdentifiers = 2; MediaDefinition.Device(1) .MediaFile(1) .VolumeIdentifier(1) .VolumeIdentifier = 'DAK066'; MediaDefinition.Device(1) .MediaFile(1) .VolumeIdentifier(2) .VolumeIdentifier = 'DAK067'; //--------------------------------------------------------------- // Device 1 / Media File 2 //--------------------------------------------------------------- MediaDefinition.Device(1) .MediaFile(2) .SequenceNumber = 1; MediaDefinition.Device(1) .MediaFile(2) .StartingPositionInFile = *ALL'0'; MediaDefinition.Device(1) .MediaFile(2) .NumberOfVolumeIdentifiers = 2; MediaDefinition.Device(1) .MediaFile(2) .VolumeIdentifier(1) .VolumeIdentifier = 'DAK079'; MediaDefinition.Device(1) .MediaFile(2) .VolumeIdentifier(2) .VolumeIdentifier = 'DAK080'; //--------------------------------------------------------------- // Device 2 / Resource 2 //--------------------------------------------------------------- MediaDefinition.Device(2).DeviceName = 'TAPMLBBRMS'; MediaDefinition.Device(2).NumberOfMediaFiles = 2; //--------------------------------------------------------------- // Device 2 / Media File 1 //--------------------------------------------------------------- MediaDefinition.Device(2) .MediaFile(1) .SequenceNumber = 0; MediaDefinition.Device(2) .MediaFile(1) .StartingPositionInFile = *ALL'0'; MediaDefinition.Device(2) .MediaFile(1) .NumberOfVolumeIdentifiers = 2; MediaDefinition.Device(2) .MediaFile(1) .VolumeIdentifier(1) .VolumeIdentifier = 'DAK089'; MediaDefinition.Device(2) .MediaFile(1) .VolumeIdentifier(2) .VolumeIdentifier = 'DAK090'; //--------------------------------------------------------------- // Device 2 / Media File 2 //--------------------------------------------------------------- MediaDefinition.Device(2) .MediaFile(2) .SequenceNumber = 1; MediaDefinition.Device(2) .MediaFile(2) .StartingPositionInFile = *ALL'0'; MediaDefinition.Device(2) .MediaFile(2) .NumberOfVolumeIdentifiers = 2; MediaDefinition.Device(2) .MediaFile(2) .VolumeIdentifier(1) .VolumeIdentifier = 'DAK091'; MediaDefinition.Device(2) .MediaFile(2) .VolumeIdentifier(2) .VolumeIdentifier = 'DAK092'; end-proc;