# US 2021/0278831 A1 · Salvaging outputs of tools

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0278831 A1
- Document ID: US20210278831A1
- Status: Published application
- Kind: A1
- Application number: 16/807,570
- Filed: 2020-03-03
- Published: 2021-09-09
- Earliest claimed: 2020-03-03
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Oz Dov Hershkovitz
- Web page: https://patentgrep.com/patent/US20210278831A1

## CPC

- G05B 23/0256: {injecting test signals and analyzing monitored process response, e.g. injecting the test signal while interrupting the normal operation of the monitored system; superimposing the test signal onto a control signal during normal operation of the monitored system}
- G06F 11/3684: {for test design, e.g. generating new test cases}
- G05B 23/0224: {Process history based detection method, e.g. whereby history implies the availability of large amounts of data}
- G05B 23/0262: {Confirmation of fault detection, e.g. extra checks to confirm that a failure has indeed occurred}
- G06F 11/004: {Error avoidance (G06F11/07 and subgroups take precedence)}
- G06F 11/263: Generation of test inputs, e.g. test vectors, patterns or sequences {; with adaptation of the tested hardware for testability with external testers}
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method of salvaging an output is provided. The method includes defining a condition for terminating a run of a tool, checking whether the condition is likely to be met during a running of the tool, terminating the running in an event the condition is likely to be met, checking a validity of an incomplete output of the tool generated during the running and finalizing the incomplete output in an event the incomplete output is valid.

## Claims

### Claim 1

A method of salvaging an output, comprising:
defining a condition for terminating a run of a tool;
checking whether the condition is likely to be met during a running of the tool;
terminating the running of the tool in an event the condition is likely to be met;
checking a validity of an incomplete output of the tool generated during the running; and
finalizing the incomplete output in an event the incomplete output is valid.

### Claim 2 (depends on 1)

The method according to claim 1, further comprising recording the incomplete output having been finalized as an output file.

### Claim 3 (depends on 2)

The method according to claim 2, wherein:
the tool comprises a test generator tool that uses randomization to generate instructions and
the output file comprises a sequence of address lines and a randomized instruction stored on each of the address lines.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the condition comprises one of a memory consumption condition and a timing condition.

### Claim 5 (depends on 1)

The method according to claim 1, wherein the condition comprises plural conditions and the checking comprises checking whether one or more of the plural conditions is likely to be met during the running of the tool.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the checking comprises a heuristic analysis of historical and current data.

### Claim 7 (depends on 1)

The method according to claim 1, wherein the finalizing comprises adding a special instruction or a set of special instructions to the incomplete output in the event the incomplete output is validated.

### Claim 8

A method of salvaging an output of a tool, comprising:
defining a condition for terminating a run of the tool;
running the tool;
checking whether the condition is likely to be met during and in parallel with the running of the tool;
injecting a control statement into logic of the tool to immediately terminate the running in an event the condition is likely to be met;
checking a validity of an incomplete output of the tool generated during the running following the termination; and
finalizing the incomplete output in an event the incomplete output is valid.

### Claim 9 (depends on 8)

The method according to claim 8, further comprising recording the incomplete output having been finalized as an output file.

### Claim 10 (depends on 9)

The method according to claim 9, wherein:
the tool comprises a test generator tool that uses randomization to generate instructions, and
the output file comprises a sequence of address lines and a randomized instruction stored on each of the address lines.

### Claim 11 (depends on 8)

The method according to claim 8, wherein the condition comprises one of a memory consumption condition and a timing condition.

### Claim 12 (depends on 8)

The method according to claim 8, wherein the condition comprises plural conditions and the checking comprises checking whether one or more of the plural conditions is likely to be met during and in parallel with the running of the tool.

### Claim 13 (depends on 8)

The method according to claim 8, wherein the checking comprises a heuristic analysis of historical and current data.

### Claim 14 (depends on 8)

The method according to claim 8, wherein the finalizing comprises adding a special instruction or set of special instructions to the incomplete output.

### Claim 15

A computer system for salvaging an output of a tool, the computer system comprising:
a processor; and
a memory, the memory having executable instructions stored thereon, which, when executed, cause the processor to execute a method comprising:
checking whether one or more conditions is likely to be met during a running of the tool;
terminating the running in an event the one or more conditions is likely to be met;
checking a validity of an incomplete output of the tool generated during the running;
finalizing the incomplete output in an event the incomplete output is valid; and
recording the incomplete output having been finalized as an output file in an event the incomplete output is validated.

### Claim 16 (depends on 15)

The computer system according to claim 15, wherein the processor comprises:
a generation unit configured to add a control statement into logic of the tool to terminate the running of the tool;
an injecting unit configured to check whether the one or more conditions are likely to be met during the running of the tool and to cause the generation unit to add the control statement to the logic of the tool;
a checking unit configured to check the validity of the incomplete output of the tool and to finalize the incomplete output in an event the incomplete output is valid; and
a recording unit configured to record the incomplete output having been finalized as the output file.

### Claim 17 (depends on 15)

The computer system according to claim 15, wherein:
the tool comprises a test generator tool that uses randomization to generate instructions, and
the output file comprises a sequence of address lines and a randomized instruction stored on each of the address lines.

### Claim 18 (depends on 15)

The computer system according to claim 15, wherein the one or more conditions comprise a memory consumption condition and a timing condition.

### Claim 19 (depends on 15)

The computer system according to claim 15, wherein the checking comprises a heuristic analysis of historical and current data.

### Claim 20 (depends on 15)

The computer system according to claim 15, wherein the finalizing comprises adding a special instruction or a set of special instructions to the incomplete output.
