IP Library Granted Patent US 6,928,378
Granted Patent B2
US 6,928,378 · App. 10/626,120 · Granted Aug 9, 2005

Stress testing at low cost through parallel execution of unit tests

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 6,928,378
App. No.
10/626,120
Granted
Aug 9, 2005
Kind
B2
Abstract

Methods and systems of testing an operating system are described. The operating system is invoked to create a process, the process having a first thread. A test function is repetitively executed in a first thread of the process. These steps are repeated to create processes and to execute the test function in parallel and repetitively in the first thread of the created processes until a given condition is satisfied. For example, the given condition can be a condition in which the operating system resources are exhausted.

Claims (54)

1. A computer-implemented method for testing an operating system, comprising:

(a) causing said operating system to create a process having at least a first thread and a second thread;

(b) causing two or more test functions to be executed in said first thread, wherein each test function of said two or more test functions is a different test function;

(c) causing said two or more test functions to be executed in said second thread; and

(d) repeating steps (a), (b), and (c) to cause said operating system to create one or more additional processes each having at least two threads and to cause said two or more test functions to be executed in each of said at least two threads.

2. A method as recited in claim 1 , wherein said two or more test functions are executed in parallel in each of said first thread, said second thread, and said at least two threads.

3. A method as recited in claim 1 , wherein said two or more test functions are executed sequentially in each of said first thread, said second thread, and said at least two threads.

4. A method as recited in claim 1 , wherein each test function of said two or more test functions is executed substantially simultaneously by each of said first thread, said second thread, and said at least two threads.

5. A method as recited in claim 1 , wherein each test function of said two or more test functions is executed entirely in a particular thread before said each test function begins execution in another thread.

6. A method as recited in claim 1 , wherein each test function of said two or more test functions is executed randomly in each of said first thread, said second thread, and said at least two threads.

7. A method as recited in claim 1 , further comprising the computer-implemented step of:

repeating step (d) until a total number of processes created by said operating system is at least equal to a predetermined number of processes.

8. A method as recited in claim 1 , further comprising the computer-implemented step of:

executing step (d) such that a total number of threads per process is at least equal to a predetermined number of threads per process.

9. A method as recited in claim 1 , further comprising the computer-implemented step of:

executing step (d) such that a total number of times that each test function of said two or more test functions is executed by each thread is at least equal to a predetermined number of times.

10. A method as recited in claim 1 , further comprising the computer-implemented step of:

repeating step (d) until a plurality of resources available to said operating system are exhausted.

11. A computer-readable medium for testing an operating system, the computer-readable medium carrying instructions which, when executed by one or more processors, cause performance of the steps of:

(a) causing said operating system to create a process having at least a first thread and a second thread;

(b) causing two or more test functions to be executed in said first thread, wherein each test function of said two or more test functions is a different test function;

(c) causing said two or more test functions to be executed in said second thread; and

(d) repeating steps (a), (b), and (c) to cause said operating system to create one or more additional processes each having at least two threads and to cause said two or more test functions to be executed in each of said at least two threads.

12. A computer-readable medium as recited in claim 11 , wherein said two or more test functions are executed in parallel in each of said first thread, said second thread, and said at least two threads.

13. A computer-readable medium as recited in claim 11 , wherein said two or more test functions are executed sequentially in each of said first thread, said second thread, and said at least two threads.

14. A computer-readable medium as recited in claim 11 , wherein each test function of said two or more test functions is executed substantially simultaneously by each of said first thread, said second thread, and said at least two threads.

15. A computer-readable medium as recited in claim 11 , wherein each test function of said two or more test functions is executed entirely in a particular thread before said each test function begins execution in another thread.

16. A computer-readable medium as recited in claim 11 , wherein each test function of said two or more test functions is executed randomly in each of said first thread, said second thread, and said at least two threads.

17. A computer-readable medium as recited in claim 11 , further comprising instructions which, when executed by the one or more processors, cause performance of the step of:

repeating step (d) until a total number of processes created by said operating system is at least equal to a predetermined number of processes.

18. A computer-readable medium as recited in claim 11 , further comprising instructions which, when executed by the one or more processors, cause performance of the step of:

executing step (d) such that a total number of threads per process is at least equal to a predetermined number of threads per process.

19. A computer-readable medium as recited in claim 11 , further comprising instructions which, when executed by the one or more processors, cause performance of the step of:

executing step (d) such that a total number of times that each test function of said two or more test functions is executed by each thread is at least equal to a predetermined number of times.

20. A computer-readable medium as recited in claim 11 , further comprising instructions which, when executed by the one or more processors, cause performance of the step of:

repeating step (d) until a plurality of resources available to said operating system are exhausted.

21. A mechanism for testing an operating system, the mechanism comprising a memory storing instructions which, when executed by one or more processors, cause performance of the steps of:

(a) causing said operating system to create a process having at least a first thread and a second thread;

(b) causing two or more test functions to be executed in said first thread, wherein each test function of said two or more test functions is a different test function;

(c) causing said two or more test functions to be executed in said second thread; and

(d) repeating steps (a), (b), and (c) to cause said operating system to create one or more additional processes each having at least two threads and to cause said two or more test functions to be executed in each of said at least two threads.

22. A mechanism as recited in claim 21 , wherein said two or more test functions are executed in parallel in each of said first thread, said second thread, and said at least two threads.

23. A mechanism as recited in claim 21 , wherein said two or more test functions are executed sequentially in each of said first thread, said second thread, and said at least two threads.

24. A mechanism as recited in claim 21 , wherein each test function of said two or more test functions is executed substantially simultaneously by each of said first thread, said second thread, and said at least two threads.

25. A mechanism as recited in claim 21 , wherein each test function of said two or more test functions is executed entirely in a particular thread before said each test function begins execution in another thread.

26. A mechanism as recited in claim 21 , wherein each test function of said two or more test functions is executed randomly in each of said first thread, said second thread, and said at least two threads.

27. A mechanism as recited in claim 21 , wherein the memory further comprises one or more instructions which, when executed by the one or more processors, cause performance of the step of:

repeating step (d) until a total number of processes created by said operating system is at least equal to a predetermined number of processes.

28. A mechanism as recited in claim 21 , wherein the memory further comprises one or more instructions which, when executed by the one or more processors, cause performance of the step of:

executing step (d) such that a total number of threads per process is at least equal to a predetermined number of threads per process.

29. A mechanism as recited in claim 21 , wherein the memory further comprises one or more instructions which, when executed by the one or more processors, cause performance of the step of:

executing step (d) such that a total number of times that each test function of said two or more test functions is executed by each thread is at least equal to a predetermined number of times.

30. A mechanism as recited in claim 21 , wherein the memory further comprises one or more instructions which, when executed by the one or more processors, cause performance of the step of:

repeating step (d) until a plurality of resources available to said operating system are exhausted.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 12, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037278/0853 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2004
From: LEBEE, PIERRE; BOULE, IVAN; LABORIE, SEBASTIEN; JACQUIOT, AURELIEN
To: SUN MICROSYSTEMS, INC.
Reel/Frame 015037/0375 →