Automated hardware for input/output (I/O) test regression apparatus

A test apparatus is provided for use with a mainframe and an adapter. The test apparatus includes a logical adapter interface unit and a control system. The logical adapter interface unit is interposable between the adapter and the mainframe whereby an I/O signal transmittable from the adapter and to the mainframe is transmitted through the logical adapter interface unit. The logical adapter interface unit is configured to manipulate the I/O signal. The control system is coupled to the logical adapter interface unit and the mainframe and is configured to control manipulations of the I/O signal by the logical adapter interface unit to mimic a condition of I/O traffic being run through the adapter and to log a response of the mainframe to the manipulations.

BACKGROUND

The present invention generally relates to computing resources and, more specifically, to automated hardware for use with an input/output (I/O) test regression apparatus.

When custom hardware that is designed to be used for I/O systems is created, the custom hardware is most often connected to another piece of hardware through a physical wired port. This is particularly true if the custom hardware is provided for high-availability or low-latency solutions.

While physical ports can be straight forward components that can be dragged and dropped into a custom hardware design for I/O systems, it is often the case that a significant amount of care and consideration goes into types of cables that are to be plugged into the physical ports, how the various types of the cables are to be connected and sometimes into how many I/O adapters are connected to the system via the physical ports and in what configuration those I/O adapters are arranged.

In particular, there are many variables that go into the design and the addition of I/O adapters, particularly in mainframe computing environments, and thus there are many configurations of I/O adapters. Of these, many can only be created by operators by hand through time-consuming work. In addition, with each configuration, there are cable performance issues that can come up. These need to be characterized and integrated into on-board firmware.

SUMMARY

Embodiments of the present invention are directed to a test apparatus for use with a mainframe and an adapter. A non-limiting example of the test apparatus includes a logical adapter interface unit and a control system. The logical adapter interface unit is interposable between the adapter and the mainframe whereby an I/O signal transmittable from the adapter and to the mainframe is transmitted through the logical adapter interface unit. The logical adapter interface unit is configured to manipulate the I/O signal. The control system is coupled to the logical adapter interface unit and the mainframe and is configured to control manipulations of the I/O signal by the logical adapter interface unit to mimic a condition of I/O traffic being run through the adapter and to log a response of the mainframe to the manipulations.

Embodiments of the present invention are directed to an input/output (I/O) test apparatus. A non-limiting example of the I/O test apparatus includes a mainframe, an adapter through which I/O traffic is run such that the adapter generates an I/O signal for transmission to the mainframe, a logical adapter interface unit and a control system. The logical adapter interface unit is interposable between the adapter and the mainframe whereby the I/O signal is transmittable from the adapter and to the mainframe through the logical adapter interface unit. The logical adapter interface unit is configured to manipulate the I/O signal. The control system is coupled to the logical adapter interface unit and the mainframe and is configured to control manipulations of the I/O signal by the logical adapter interface unit to mimic a condition of the I/O traffic and to log a response of the mainframe to the manipulations.

Embodiments of the present invention are directed to a method of operating an input/output (I/O) test apparatus in which a logical adapter interface unit is interposed between an adapter and a mainframe. A non-limiting example of the method includes running I/O traffic through the adapter such that the adapter generates an I/O signal for transmission to the mainframe, controlling manipulations of the I/O signal by the logical adapter interface unit to mimic a condition of the I/O traffic and logging a response of the mainframe to the manipulations.

DETAILED DESCRIPTION

One or more embodiments of the present invention provide for systems and methods for configuring and testing mainframe physical hardware testing environments and thereby allowing for more complete levels of hardware testing and characterization.

Custom hardware is often designed to be installed in mainframe computers and this custom hardware is often provided as new types of adapters that handle input/output (I/O) traffic. These new types of adapters typically connect with certain types of cables that might or might not be optimized for use with the mainframe. Additionally, the cables can have different characteristics when plugged in than anticipated or result in unanticipated results in other aspects of the mainframe computing environment. Once the mainframe computing environment, it can be very challenging to identify the sources of these issues and to take corrective action.

That is, in just a single custom hardware card, there can be many hardware problems that can occur and that can lead to errors. One of the most notable of these, is that the cable can be physically plugged into the adapter improperly or unplugged altogether (e.g., the cable might not be seated 100%, the cable might bend the port, the cable might not make proper connectivity, the cable might be plugged incorrectly, the cable might be too long for the purpose at hand, the cable might be partly broken, the cable might not have the right characteristics, the wires might be of different types with differing transfer properties, connectors might be bent, a cable might be cut, a cable might have different number of lanes or one lane is not active, etc.). Currently, there is no way of gathering data or characteristics within custom hardware that results from each of these situations. In fact, the only way to do this is by having an operator plug and unplug various items in and out of various machines and test special cable cases for each part. This is a very expensive and difficult process that is prone to errors.

Turning now toFIG.1, an I/O test apparatus101is provided. The I/O test apparatus101includes a mainframe110, an adapter120through which I/O traffic is run such that the adapter120generates an I/O signal for transmission to the mainframe110, a logical adapter interface unit130and a control system140. The logical adapter interface unit130is operably interposable between the adapter120and the mainframe110whereby the I/O signal is transmittable from the adapter120and to the mainframe110through the logical adapter interface unit130. The logical adapter interface unit130is configured to manipulate the I/O signal. The control system140is operably coupled to the logical adapter interface unit130and the mainframe110. The control system140is configured to control manipulations of the I/O signal by the logical adapter interface unit130to thereby mimic a condition of the I/O traffic and to log a response of the mainframe110to the manipulations.

With continued reference toFIG.1and with additional reference toFIG.2, the mainframe110can be disposed among one or more other mainframes110in any one or more of a data center, a server room, etc., and can be arranged with the one or more other mainframes110, for example, in rows and columns. In these or other cases, the adapter120can include or be provided as one or more physical adapters121(seeFIG.1) that are respectively connected to at least one corresponding mainframe110and each of the one or more physical adapters121can be receptive of the I/O traffic from multiple external sources122(seeFIG.1) of one or more various types (e.g., FICON, Ethernet, etc.).

In accordance with embodiments of the present invention, it is to be understood that the logical adapter interface unit130ofFIG.1is operably interposable between each of the one or more physical adapters121and the at least one corresponding mainframe110ofFIG.2. The following description will, however, relate to the embodiments illustrated inFIG.1for purposes of clarity and brevity.

With reference back toFIG.1, the logical adapter interface unit130can include an adapter interface131, which is connectable with the adapter120, and a logic controller132, which is connectable with the mainframe110. The control system140can be, but is not required to be, coupled to the adapter interface131and the logic controller132in parallel with the direct connection between the adapter interface131and the logic controller132. The control system140can includes a programming interface141and a service element142. The programming interface141can include or be provided as a control interface and is coupled to the logical adapter interface unit130and configured to control the manipulations of the I/O signal by the logical adapter interface unit130to mimic the condition of the I/O traffic. The service element142can include or be provided as a mainframe service element and is coupled to the mainframe110and configured to log the response of the mainframe110to the manipulations of the I/O signal by the logical adapter interface unit130.

In accordance with embodiments, the manipulations of the I/O signal by the logical adapter interface unit130can include or be provided as insertions of errors into the I/O signal. In these or other cases, these errors are thus received by the mainframe110along with the I/O signal whereupon the mainframe110reacts to the I/O signal as well as the errors. How the mainframe110reacts to the errors, in particular, can be instructive as to how the mainframe110will react to similar errors in the field and this is especially true where the control system140controls the logical adapter interface unit130to manipulate the I/O signal to mimic conditions of the I/O traffic that might lead to such errors.

For example, to the extent that one of the physical adapters121ofFIG.1can be receptive of I/O traffic from one of the multiple external sources122ofFIG.1over a faulty connection that is not previously known to be in effect in a real world scenario, the mainframe110will receive an I/O signal from that physical adapter121which has errors included therein and the mainframe110will react accordingly in the real world scenario. Meanwhile, if those same errors can have been inserted into the I/O signal by the logical adapter interface unit130under the control of the control system140during a previous test phase (which preceded the real world scenario) in order to mimic the faulty connection and the mainframe110receives that manipulated I/O signal and reacts accordingly, the reaction of the mainframe110in the real world scenario can be compared to the reaction of the mainframe110during the previous test phase. If the reactions match or are otherwise similar, the faulty connection can be identified as a probable cause and it can be inferred that the faulty connection in the real world scenario is in effect. The faulty connection can then be corrected or otherwise addressed.

In accordance with embodiments of the present invention and as shown inFIG.1, the programming interface141can be presented to an operator or user as a cable characteristic adjuster interface1410. In these or other cases, the operator or user is able to input commands into the programming interface141that instruct the logical adapter interface unit130as to how the I/O signal is to be manipulated at any given time or during the course of a test phase. In particular, the cable characteristic adjuster interface1410allows the operator or user to effectively inject a “bug” into one or more components of the I/O signal by, for example, turning ports on or off and/or adjusting signal frequencies.

In conventional systems, a faulty connection between an external source and a physical adapter that only presents itself in the form of a reaction of a downstream mainframe could not be so easily identified. In such cases, it is often necessary for an operator to inspect all possible connections that could plausibly cause the reaction of the mainframe in a time-consuming and expensive process.

With reference toFIG.3, either or both of the programming interface141and the service element142can be provided as a stand-alone unit, a combined computing device, a component of the mainframe110itself, some combination thereof or another suitable feature. In any case, as shown inFIG.3, at least one of the programming interface141and the service element142includes a processing unit310, a memory unit320, an I/O unit330and a communications bus340by which the processing unit310, the memory unit320and the I/O unit330communicate. The I/O unit330provides for communications between the processing unit310and external features (i.e., an operator using a graphical user interface (GUI) and the logical adapter interface unit130in the case of the programming interface141or an operator using a GUI and the mainframe110in the case of the service element142). The memory unit has storage capacity and has executable instructions stored thereon. The executable instructions are readable and executable by the processing unit310. When the executable instructions are read and executed by the processing unit310, the executable instructions cause the processing unit310to operate as described herein.

In particular, where the processing unit310acts as the programming interface141of the control system140, the processing unit310/programming interface141defines one or more conditions of the I/O traffic. That is, the processing unit310/programming interface141recognizes all of the various possible types of issues that could affect the operations of the adapter120and the mainframe110such as, but not limited to, faulty connections between an external source122ofFIG.1and the adapter120, and determines which of those types of issues are most likely and thus most appropriately subject to further consideration. In addition, the processing unit310/programming interface141identifies the manipulations which optimally mimic each of the one or more of the conditions of the I/O traffic and causes the logical adapter interface unit130to execute the manipulations which optimally mimic each of the one or more of the conditions of the I/O traffic in a predefined sequence that would be known to the service element142.

In accordance with embodiments of the present invention, the one or more conditions of the I/O traffic can be time-variant such that the manipulations change over time. That is, where the condition of the I/O traffic being mimicked is a faulty connection, for example, the processing unit310/programming interface141recognizes that a healthy connection can degrade over time and that the manipulations will correspondingly change over time. In these or other cases, the processing unit310/programming interface141can be further configured to identify the corresponding changes to the manipulations over time.

Where the processing unit310acts as the service element142of the control system140, the processing unit310/service element142logs the response of the mainframe110to the manipulations of the I/O signal by the logical adapter interface unit130, associates the logged responses of the mainframe110to the condition of the I/O traffic that are known to have been mimicked by the manipulations and generates a database321(seeFIG.3) in accordance with the associations between the logged responses of the mainframe110to the condition of the I/O traffic that are known to have been mimicked by the manipulations. This database321can be stored in the memory unit320and is subsequently accessible to a user of the mainframe110or other authorized users in further testing environments or real world scenarios.

In accordance with embodiments of the present invention, the database321can be used to correct or otherwise address certain reactions of the mainframe110which are indicative of issues such as faulty connections as explained above. In addition, the database321can be used to configure and reconfigure a system or custom hardware through identifications of issues present in some instances but not others. For example, where a custom hardware configuration is initially designed with certain cable types being connected to certain physical adapters, it can be found through testing that those cable types might be non-optimal and should be replaced by more optimize cable types.

With reference back toFIG.2, the I/O test apparatus101can further include a robotic tester201. As shown inFIG.2, this robotic tester201includes a movement system210, a robotic arm system220and a chassis230that can be supportive of at least the logical adapter interface unit130and the control system140ofFIG.1. The movement system210is configured such that the robotic tester201is movable relative to at least the mainframe110and the adapter120. That is, the robotic tester201can be configured to move up and back along rows of the mainframes110and the one or more other mainframes110to thereby bring the logical adapter interface unit130and the control system140into the proximity of each. The robotic arm system220is configured to connect and disconnect the logical adapter interface unit130to and from each of the mainframe110and the adapter120and to couple and decouple the control system140to and from the mainframe110.

With reference toFIG.4, a method of operating the I/O test apparatus101described above is provided. As shown inFIG.4, the method includes running I/O traffic through the adapter such that the adapter generates an I/O signal for transmission to the mainframe (401), controlling manipulations of the I/O signal by the logical adapter interface unit to mimic a condition of the I/O traffic where the manipulations of the I/O signal include, for example, insertions of errors into the I/O signal (402) and logging a response of the mainframe to the manipulations (403). In addition, the method can include associating logged responses of the mainframe to the condition of the I/O traffic being mimicked (404) and generating a database, which is to be accessible to a user of the mainframe, in accordance with associations between the logged responses of the mainframe to the condition of the I/O traffic being mimicked (405).

In accordance with embodiments of the present invention, the controlling of the manipulations of operation402can include defining one or more conditions of the I/O traffic (4021), identifying the manipulations which optimally mimic each of the one or more of the conditions of the I/O traffic (4022) and causing the logical adapter interface unit to execute the manipulations which optimally mimic each of the one or more of the conditions of the I/O traffic in sequence (4023). Here, the one or more conditions can be time-variant, such that the manipulations change over time, and the identifying of the manipulations of operation4022can include identifying changes to the manipulations over time (40220).

In accordance with further embodiments of the present invention and with reference back toFIG.1, the I/O test apparatus101described above can be used to appropriately identify the types of errors that could appear with a given system configuration in the field and to modify code of the mainframe110to make the code more resilient to errors. As shown inFIG.1, the service element142can be used to apply new or additional code1420to the mainframe110during certain test cases or based on identified errors over a certain time period from the field. In these or other cases, the new or additional code results in the processing unit(s) of the mainframe110having an improved ability to recover from errors.

For example, in an event a certain system configuration is determined to be susceptible to certain types of errors resulting from the flow of I/O traffic through one or more of its physical adapters121during a test phase and these errors tend to cause the mainframe110to fail or otherwise operate in a non-optimal manner, the new or additional code1420can be automatically or manually generated and then uploaded to the mainframe110via the service element142. Once uploaded to the mainframe110, the new or additional code can provide the mainframe110with the ability to recover from the errors by, for example, providing additional routing options for handling the associated I/O traffic and/or seeking alternative routing for the associated I/O traffic.

The effective configuring of the mainframe110to compensate for the response of the mainframe to the manipulations by the new or additional code can be included in the method ofFIG.4(406) as shown inFIG.4.