# US 2020/0401504 A1 · Methods, systems, and computer readable media for configuring a test system using source code of a device being tested

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

- Number: US 2020/0401504 A1
- Document ID: US20200401504A1
- Status: Published application
- Kind: A1
- Application number: 16/446,318
- Filed: 2019-06-19
- Published: 2020-12-24
- Earliest claimed: 2019-06-19
- Assignees: Keysight Technologies, Inc.
- Applicants: Keysight Technologies, Inc.
- Inventors: Christian Paul Sommers; Peter J. Marsico
- Web page: https://patentgrep.com/patent/US20200401504A1

## CPC

- G06F 11/3684: {for test design, e.g. generating new test cases}
- H04L 43/50: Testing arrangements
- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods, systems, and computer readable media for configuring a test system using source code of a device being tested are disclosed. According to one method, the method occurs at a network equipment test device. The method includes receiving one or more device source files associated with a device under test (DUT); analyzing the one or more device source files to determine configuration source code for configuring at least one test system resource in the network equipment test device, wherein analyzing the one or more device source files includes identifying functionality of the DUT based on device source code portions and determining, using the device source code portions, the configuration source code for testing the functionality of the DUT; configuring, using the configuration source code, the at least one test system resource; and testing the DUT using the at least one test system resource.

## Claims

### Claim 1

A method for configuring a test system using source code of a device being tested, the method comprising:
at a network equipment test device:
receiving one or more device source files associated with a device under test (DUT);
analyzing the one or more device source files to determine configuration source code for configuring at least one test system resource in the network equipment test device, wherein analyzing the one or more device source files includes identifying functionality of the DUT based on device source code portions and determining, using the device source code portions, the configuration source code for testing the functionality of the DUT;
configuring, using the configuration source code, the at least one test system resource; and
testing the DUT using the at least one test system resource.

### Claim 2 (depends on 1)

The method of claim 1 wherein the one or more device source files include P4 or other programming language source code.

### Claim 3 (depends on 1)

The method of claim 1 wherein the DUT includes a network node, a router, a switch, a network interface card, a programmable network device, a central processing unit (CPU), a network processor, a field programmable gate array (FPGA), or an application specific integrated circuit (ASIC).

### Claim 4 (depends on 1)

The method of claim 1 wherein the at least one test system resource includes a packet generator, a transmit engine, or a receive engine.

### Claim 5 (depends on 1)

The method of claim 1 where analyzing the one or more device source files includes generating at least one test plan for testing the DUT and wherein configuring the at least one test system resource includes providing the at least one test plan to the at least one test system resource.

### Claim 6 (depends on 1)

The method of claim 1 wherein analyzing the one or more device source files to determine the configuration source code includes generating code that supports header stacks that are larger than header stacks supported by the DUT, generating code that supports parser graph paths that are invalid or not supported by the DUT, generating code that implements counter-based, register-based or table-based state machines for testing possible input packets supported by the DUT, generating code that supports one or more parser states to handle instrumentation packet headers, or modifying predefined code portions to interact with custom code for testing the DUT.

### Claim 7 (depends on 6)

The method of claim 6 wherein the predefined code portions include code for packet stream modification, code for packet instrumentation, code for supporting statistical counters, code for tracking end-to-end testing, code for detecting dropped and out-of-order packet delivery, or code for detecting data corruption.

### Claim 8 (depends on 1)

The method of claim 1 wherein the configuration source code includes P4 source code and/or non-P4 source code.

### Claim 9 (depends on 1)

The method of claim 1 wherein the network equipment test device includes a source code compiler, wherein the source code compiler converts source code in the configuration source code into logic for implementing a data plane of the at least one test system resource, wherein the source code compiler sends the logic to the at least one test system resource for execution.

### Claim 10

A system for configuring a test system using source code of a device being tested, the system comprising:
at least one processor;
at least one memory; and
a network equipment test device implemented using the at least one processor and the at least one memory, wherein the network equipment test device is configured for:
receiving one or more device source files associated with a device under test (DUT);
analyzing the one or more device source files to determine configuration source code for configuring at least one test system resource in the network equipment test device, wherein analyzing the one or more device source files includes identifying functionality of the DUT based on device source code portions and determining, using the device source code portions, the configuration source code for testing the functionality of the DUT;
configuring, using the configuration source code, the at least one test system resource; and
testing the DUT using the at least one test system resource.

### Claim 11 (depends on 10)

The system of claim 10 wherein the one or more device source files include P4 programming language or other programming source code.

### Claim 12 (depends on 10)

The system of claim 10 wherein the DUT includes a network node, a router, a switch, a network interface card, a programmable network device, a central processing unit (CPU), a network processor, a field programmable gate array (FPGA), or an application specific integrated circuit (ASIC).

### Claim 13 (depends on 10)

The system of claim 10 wherein the at least one test system resource includes a packet generator, a transmit engine, or a receive engine.

### Claim 14 (depends on 10)

The system of claim 10 where analyzing the one or more device source files includes generating at least one test plan for testing the DUT and wherein configuring the at least one test system resource includes providing the at least one test plan to the at least one test system resource.

### Claim 15 (depends on 10)

The system of claim 10 wherein analyzing the one or more device source files to determine the configuration source code includes generating code that supports header stacks that are larger than header stacks supported by the DUT, generating code that supports parser graph paths that are invalid or not supported by the DUT, generating code that implements counter-based, register-based, or table-based state machines for testing possible input packets supported by the DUT, generating code that supports one or more parser states to handle instrumentation packet headers, or modifying predefined code portions to interact with custom code for testing the DUT.

### Claim 16 (depends on 15)

The system of claim 15 wherein the predefined code portions include code for packet stream modification, code for packet instrumentation, code for supporting statistical counters, code for tracking end-to-end testing, code for detecting dropped and out-of-order packet delivery, or code for detecting data corruption.

### Claim 17 (depends on 10)

The system of claim 10 wherein the configuration source code includes P4 source code and/or non-P4 source code.

### Claim 18 (depends on 10)

The system of claim 10 wherein the network equipment test device includes a source code compiler, wherein the source code compiler converts source code in the configuration source code into logic for implementing a data plane of the at least one test system resource, wherein the source code compiler sends the logic to the at least one test system resource for execution.

### Claim 19

A non-transitory computer readable medium comprising computer executable instructions embodied in the computer readable medium that when executed by at least one processor of a computer perform steps comprising:
receiving one or more device source files associated with a device under test (DUT);
analyzing the one or more device source files to determine configuration source code for configuring at least one test system resource in a network equipment test device, wherein analyzing the one or more device source files includes identifying functionality of the DUT based on device source code portions and determining, using the device source code portions, the configuration source code for testing the functionality of the DUT;
configuring, using the configuration source code, the at least one test system resource; and
testing the DUT using the at least one test system resource.

### Claim 20 (depends on 19)

The non-transitory computer readable medium of claim 19 wherein the one or more device source files include P4 or other programming language source code.
