IP Library Granted Patent US 9,122,541
Granted Patent B2
US 9,122,541 · App. 14/175,404 · Granted Sep 1, 2015

System and method for thread protected testing

Inventor: Mark Brazier (Cambridge, GB)
Assignee: Siemens Product Lifecycle Management Software Inc.
G06F9/52G06F9/4881G06F2209/484
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,122,541
App. No.
14/175,404
Granted
Sep 1, 2015
Kind
B2
Abstract

A method performed by a system including one or more data processing systems. The method includes receiving a plurality of requesting process calls for a target process from one or more requesting processes and identifying dependencies between the requesting process calls. The method includes sending the requesting process call to the target process for execution on multiple threads, including sending thread execution parameters corresponding to the requesting process calls, the thread execution parameters indicating that the requesting process calls can be executed by the target process simultaneously and independently, that the requesting process calls must be processed in a specific order based on the dependencies, or that the requesting process calls are to be executed with shared process objects. The method includes receiving results from the target process. The method includes sending the results to the requesting processes corresponding to the respective requesting process calls.

Claims (37)

1. A method performed by a system including one or more data processing systems, comprising:

receiving a plurality of requesting process calls for a target process from one or more requesting processes;

identifying dependencies between the plurality of requesting process calls;

sending the plurality of requesting process calls to the target process for execution on multiple threads, based on the identified dependencies, including sending thread execution parameters corresponding to the plurality of requesting process calls, the thread execution parameters indicating (i) that the plurality of requesting process calls can be executed by the target process simultaneously and independently, (ii) that the plurality of requesting process calls must be processed in a specific order based on the dependencies, or (iii) that the plurality of requesting process calls are to be executed with shared process objects;

receiving results, corresponding to the plurality of requesting process calls, from the target process; and

sending the results to the one or more requesting processes corresponding to the respective requesting process calls.

2. The method of claim 1 , wherein the one or more requesting processes are non-thread-safe process and the target process is a thread-safe process.

3. The method of claim 1 , wherein identifying dependencies includes identifying when the results of a first requesting process call is needed for proper execution of a second requesting process call.

4. The method of claim 1 , wherein identifying dependencies includes identifying when a first requesting process call and a second requesting process call should share process objects.

5. The method of claim 1 , wherein target process executes the plurality of requesting process calls according to the thread execution parameters.

6. The method of claim 1 , wherein the one or more requesting processes act as a test harness for the target process.

7. The method of claim 6 , wherein the results are test results from the target process.

8. At least one data processing system, each data processing system comprising:

a memory; and

one or more processors, each processor having one or more cores, the at least one data processing system configured to execute the steps of:

receiving a plurality of requesting process calls for a target process from one or more requesting processes;

identifying dependencies between the plurality of requesting process calls;

sending the requesting process call to the target process for execution on multiple threads, based on the identified dependencies, including sending thread execution parameters corresponding to the plurality of requesting process calls, the thread execution parameters indicating (i) that the plurality of requesting process calls can be executed by the target process simultaneously and independently, (ii) that the plurality of requesting process calls must be processed in a specific order based on the dependencies, or (iii) that the plurality of requesting process calls are to be executed with shared process objects;

receiving results, corresponding to the plurality of requesting process calls, from the target process; and

sending the results to the one or more requesting processes corresponding to the respective requesting process calls.

9. The at least one data processing system of claim 8 , wherein the one or more requesting processes are non-thread-safe process and the target process is a thread-safe process.

10. The at least one data processing system of claim 8 , wherein identifying dependencies includes identifying when the results of a first requesting process call is needed for proper execution of a second requesting process call.

11. The at least one data processing system of claim 8 , wherein identifying dependencies includes identifying when a first requesting process call and a second requesting process call should share process objects.

12. The at least one data processing system of claim 8 , wherein target process executes the plurality of requesting process calls according to the thread execution parameters.

13. The at least one data processing system of claim 8 , wherein the one or more requesting processes act as a test harness for the target process.

14. The at least one data processing system of claim 13 , wherein the results are test results from the target process.

15. A non-transitory computer readable medium encoded with executable instructions that, when executed, cause one or more data processing systems to perform the steps of:

receiving a plurality of requesting process calls for a target process from one or more requesting processes;

identifying dependencies between the plurality of requesting process calls;

sending the requesting process call to the target process for execution on multiple threads, based on the identified dependencies, including sending thread execution parameters corresponding to the plurality of requesting process calls, the thread execution parameters indicating (i) that the plurality of requesting process calls can be executed by the target process simultaneously and independently, (ii) that the plurality of requesting process calls must be processed in a specific order based on the dependencies, or (iii) that the plurality of requesting process calls are to be executed with shared process objects;

receiving results, corresponding to the plurality of requesting process calls, from the target process; and

sending the results to the one or more requesting processes corresponding to the respective requesting process calls.

16. The non-transitory computer-readable medium of claim 15 , wherein the one or more requesting processes are non-thread-safe process and the target process is a thread-safe process.

17. The non-transitory computer-readable medium of claim 15 , wherein identifying dependencies includes identifying when the results of a first requesting process call is needed for proper execution of a second requesting process call.

18. The non-transitory computer-readable medium of claim 15 , wherein identifying dependencies includes identifying when a first requesting process call and a second requesting process call should share process objects.

19. The non-transitory computer-readable medium of claim 15 , wherein target process executes the plurality of requesting process calls according to the thread execution parameters.

20. The non-transitory computer-readable medium of claim 15 , wherein the one or more requesting processes act as a test harness for the target process and the results are test results from the target process.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2015
From: BRAZIER, MARK
To: SIEMENS INDUSTRY SOFTWARE LIMITED
Reel/Frame 035385/0056 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2015
From: SIEMENS INDUSTRY SOFTWARE LIMITED
To: SIEMENS PRODUCT LIFECYCLE MANAGEMENT SOFTWARE INC.
Reel/Frame 035385/0091 →
Continuity (2)
Continuation 13087554 · Apr 15, 2011
Related Publication 20140157286A1 · Jun 5, 2014