IP Library Granted Patent US 9,626,284
Granted Patent B2
US 9,626,284 · App. 13/762,938 · Granted Apr 18, 2017

Systems and methods to test programs

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,626,284
App. No.
13/762,938
Granted
Apr 18, 2017
Kind
B2
Abstract

The embodiments described herein include a host that includes an operating system and a storage simulation module in communication with the host. The storage simulation module includes a pseudo-adapter configured to emulate a storage adapter and a pseudo-storage device coupled to the pseudo-adapter, wherein the pseudo-storage device is configured to emulate a storage device. The storage simulation module is configured to simulate an error event for the pseudo-adapter and/or the pseudo-storage device upon receipt of an operation from the operating system.

Claims (48)

1. A system comprising:

a host comprising:

an operating system;

at least one computing device;

a creation module configured to:

receive a request from a user to test a program on said at least one computing device, and

in response to the request, create a pseudo-device configured to emulate said at least one computing device, said pseudo-device in communication with said operating system, and

a processor programmed to:

simulate a staged error event on said pseudo-device based on an operation from the program to allow an analysis of a response of the program to the simulation of the staged error event,

wherein the processor is further programmed to simulate the staged error event on said pseudo-device upon determining that the staged error event is appropriate for manifestation by checking for a particular type of I/O operation or a particular condition.

2. The system of claim 1 , further comprising an interface module that is configured to provide a program to the operating system.

3. The system of claim 1 , wherein said pseudo-device is further configured to emulate a plurality of computing devices.

4. The system of claim 1 , wherein said computing device is a storage-adapter.

5. The system of claim 2 , wherein the program is loaded into a kernel of said operating system.

6. The system of claim 2 , wherein the program provides one or more of the following to said pseudo-device: an input operation and an output operation.

7. A method of testing a program using a computer system including an operating system, the method comprising:

receiving a request from a user to test the program on a computing device;

in response to the request, creating a pseudo-device configured to emulate the computing device; and

simulating a staged error event on the pseudo-device based on an operation from the program to allow an analysis of a response of the program to the simulation of the staged error event, including simulating the staged error event on the pseudo-device upon determining that the staged error event is appropriate for manifestation by checking for a particular type of I/O operation or a particular condition.

8. The method of claim 7 , wherein the program provides one or more of the following to the pseudo-device: an input operation and an output operation.

9. The method of claim 7 , further comprising loading the program into a kernel of the operating system.

10. The method of claim 7 , further comprising:

receiving a request to test the program on a second computing device; and

in response to the request, creating an additional pseudo-device within the operation system, wherein the additional pseudo-device is a child of the pseudo-device.

11. The method of claim 7 , wherein the pseudo device is a pseudo-adapter configured to emulate a fiber channel adapter.

12. The method of claim 7 , further comprising receiving, from the pseudo, a response to the error event.

13. The method of claim 7 , further comprising initiating, by the program, an operation to the pseudo device, wherein simulating the error event further comprises simulating the error event contemporaneously with the operation.

14. A non-transitory computer-readable storage medium having computer-executable instructions embodied thereon, wherein, when executed by at least one processor, the computer-executable instructions cause the at least one processor to:

receive a request from a user to test a program on a computing device;

in response to the request, create a pseudo device configured to emulate the computing device; and

simulate a staged error event on the pseudo device based on an operation from the program to allow an analysis of a response of the program to the simulation of the staged error event,

wherein the computer-executable instructions further cause the at least one processor to simulate the staged error event on the pseudo-device upon determining that the staged error event is appropriate for manifestation by checking for a particular type of I/O operation or a particular condition.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the program provides one or more of the following to the pseudo-device: an input operation and an output operation.

16. The non-transitory computer-readable storage medium of claim 14 , wherein the computer-executable instructions further cause the at least one processor to receive a request to simulate the error event on the pseudo device.

17. The non-transitory at least one computer-readable storage medium of claim 14 , wherein the operating system does not distinguish between the computing device and the pseudo-device.

18. The system of claim 1 , wherein the received operation is error free.

19. The system of claim 1 , further comprising a second computing device communicatively coupled to said at least one computing device, and wherein said creation module is further configured to:

receive a request to test the program on said second computing device;

in response to the request, create a second pseudo-device within said operation system; and

wherein the processor is further programmed to simulate an additional error event on said second pseudo-device.

20. The method of claim 7 , further comprising:

receiving a request to test the program on a second computing device;

in response to the request, creating a second pseudo-device configured to emulate the second computing device; and

simulating an additional error event on the second pseudo-device.

21. The non-transitory computer-readable storage medium of claim 14 , wherein the computer-executable instructions further cause the at least one processor to:

receive a request to test the program on a second computing device;

in response to the request, create a second pseudo-device configured to emulate the second computing device; and

simulate an additional error event on the second pseudo-device.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2013
From: XUE, LAN; SATHYANARAYANA, SREEVATHSA; JENSEN, THOR DONBAEK; TRUONG, JAMES
To: VMWARE, INC.
Reel/Frame 031312/0039 →