Browse Prior Art Database

Reproducible Testing Solution Using ENQ, DEQ, POST, and WAIT

IP.com Disclosure Number: IPCOM000036856D
Original Publication Date: 1989-Nov-01
Included in the Prior Art Database: 2005-Jan-29
Document File: 3 page(s) / 59K

Publishing Venue

IBM

Related People

Kellerman, JJ: AUTHOR

Abstract

Disclosed is a set of algorithms which enable a concurrent program to be executed in a deterministic fashion using the MVS operating system services ENQ, DEQ, POST, and WAIT.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 54% of the total text.

Page 1 of 3

Reproducible Testing Solution Using ENQ, DEQ, POST, and WAIT

Disclosed is a set of algorithms which enable a concurrent program to be executed in a deterministic fashion using the MVS operating system services ENQ, DEQ, POST, and WAIT.

Concurrent programs consist of multiple sequential processes which execute in parallel. The execution of a concurrent program proceeds nondeterministically. That is, the specific sequence of statements executed to produce an output cannot be determined given the input, output, and program source. The nondeterministic nature of concurrent programs is critical in their testing and validation.

(Image Omitted)

Should an error be detected during validation, the specific sequence of statements which led to the error would not be able to be determined. This problem is known as the reproducible testing problem [1,2].

Several solutions to the reproducible testing problem have been proposed [2,3,4,5]. These solutions are based on synchronization constructs such as semaphores, Ada rendezvous, and message-passing schemes. But because the semantics of these constructs differ from the semantics of the MVS system synchronization constructs, ENQ, DEQ, POST, and WAIT, a solution is needed which employes only MVS system services. This permits the proposed solution to be used to test any program which runs on the MVS operating system, regardless of its implementation language.

The proposed solution involves source transformation in which the program being tested, the target program, is modified by adding calls to external control routines at strategic points. The external control routines control the execution of the processes of the target program by suspending and awakening them according to the order specified by a SYN-sequence. A SYN-sequence is a list of process identifiers which specifies in what order the execution of the target program's processes should be interleaved.

Fig. 1 lists the pseudocode for two control routines: Enter and Exit. The source of the target program is modified by adding one or more pairs of calls to Enter and Exit, in that order, to delimit sections of code called controlled sections. Execution of controlled sections of code proceeds acc...