IP Library Granted Patent US 11,656,977
Granted Patent B2
US 11,656,977 · App. 17/223,751 · Granted May 23, 2023

Automated code checking

Inventors: Ilan Yosef (Petach Tiqva, IL); Bella Bekker-Vernik (Holon, IL)
Assignee: EMC IP Holding Company LLC
G06F11/3688G06F8/71G06F11/3676G06F11/3696
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 11,656,977
App. No.
17/223,751
Granted
May 23, 2023
Kind
B2
Abstract

Methods, apparatus, and processor-readable storage media for automated code checking are provided herein. An example method includes identifying at least one test related to code of a repository that is affected by a commit operation; in response to determining that an existing job in a first database includes the at least one test: updating a configuration of the existing job based on the affected code, and executing the existing job with the updated configuration; and in response to determining that an existing job in the first database does not include the at least one test: determining that a previously executed job from a second database includes the at least one test, updating the configuration of the previously executed job based on the affected code to create a new job, adding the new job to the first database, and executing the new job.

Claims (47)

1. A computer-implemented method comprising:

determining at least one portion of software code in a code repository that is affected by a commit operation involving one or more changes, wherein the one or more changes comprise at least one change corresponding to at least one function parameter of at least one other portion of the software code;

identifying at least one test from a plurality of tests that is related to the at least one affected portion of software code, wherein the identifying comprises: ranking the plurality of tests based on at least one of: estimated execution times corresponding to one or more of the plurality of tests and priority levels assigned to one or more of the plurality of tests; and identifying a portion of the plurality of tests as the at least one test based on the ranking;

determining whether at least one existing job identified in a first database comprises the at least one test;

in response to determining that the at least one existing job identified in the first database comprises the at least one test: (i) updating one or more configuration parameters of the at least one existing job based at least in part on the at least one affected portion of software code, and (ii) executing the at least one existing job with the updated one or more configuration parameters; and

in response to determining that the at least one existing job identified in the first database does not comprise the at least one test: (i) determining that a previously executed job identified in a second database comprises the at least one test, (ii) updating one or more configuration parameters of the previously executed job based at least in part on the at least one affected portion of software code to create a new job, (iii) adding the new job to the first database, and (iv) executing the new job;

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

2. The computer-implemented method of claim 1 , wherein the plurality of tests comprises a set of tests corresponding to a given feature, and wherein the portion of the plurality of tests comprises a subset of the set of tests.

3. The computer-implemented method of claim 1 , wherein the one or more changes comprise at least one change to at least one function of the at least one other portion of the software code of the code repository.

4. The computer-implemented method of claim 3 , wherein the updating the one or more configuration parameters of one or more of the at least one existing job and the previously executed job is based on at least a portion of the one or more changes.

5. The computer-implemented method of claim 1 , comprising:

determining that the executing of at least one of the at least one existing job and the new job failed; and

blocking the commit operation.

6. The computer-implemented method of claim 1 , comprising:

generating a notification in response to determining that the second database does not comprise at least one test.

7. The computer-implemented method of claim 1 , wherein the second database comprises results of a plurality of previously executed jobs.

8. The computer-implemented method of claim 1 , further comprising:

obtaining and executing one or more test scripts corresponding to the affected at least one portion of software code.

9. A non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device:

to determine at least one portion of software code in a code repository that is affected by a commit operation involving one or more changes, wherein the one or more changes comprise at least one change corresponding to at least one function parameter of at least one other portion of the software code;

to identify at least one test from a plurality of tests that is related to the at least one affected portion of software code, wherein the identifying comprises: ranking the plurality of tests based on at least one of: estimated execution times corresponding to one or more of the plurality of tests and priority levels assigned to one or more of the plurality of tests; and identifying a portion of the plurality of tests as the at least one test based on the ranking;

to determine whether at least one existing job identified in a first database comprises the at least one test;

in response to determination that the at least one existing job identified in the first database comprises the at least one test: (i) to update one or more configuration parameters of the at least one existing job based at least in part on the at least one affected portion of software code, and (ii) to execute the at least one existing job with the updated one or more configuration parameters; and

in response to determination that the at least one existing job identified in the first database does not comprise the at least one test: (i) to determine that a previously executed job identified in a second database comprises the at least one test, (ii) to update one or more configuration parameters of the previously executed job based at least in part on the at least one affected portion of software code to create a new job, (iii) to add the new job to the first database, and (iv) to execute the new job.

10. The non-transitory processor-readable storage medium of claim 9 , wherein the plurality of tests comprises a set of tests corresponding to a given feature, and wherein the portion of the plurality of tests comprises a subset of the set of tests.

11. The non-transitory processor-readable storage medium of claim 9 , wherein the one or more changes comprise at least one change to at least one function of the at least one other portion of the software code of the code repository.

12. The non-transitory processor-readable storage medium of claim 11 , wherein the updating the one or more configuration parameters of one or more of the at least one existing job and the previously executed job is based on at least a portion of the one or more changes.

13. The non-transitory processor-readable storage medium of claim 9 , wherein the program code when executed by the at least one processing device causes the at least one processing device:

to determine that the executing of at least one of the at least one existing job and the new job failed; and

to block the commit operation.

14. The non-transitory processor-readable storage medium of claim 9 , wherein the program code when executed by the at least one processing device causes the at least one processing device:

to generate a notification in response to determining the second database does not comprise at least one test.

15. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured:

to determine at least one portion of software code in a code repository that is affected by a commit operation involving one or more changes, wherein the one or more changes comprise at least one change corresponding to at least one function parameter of at least one other portion of the software code;

to identify at least one test from a plurality of tests that is related to the at least one affected portion of software code, wherein the identifying comprises: ranking the plurality of tests based on at least one of: estimated execution times corresponding to one or more of the plurality of tests and priority levels assigned to one or more of the plurality of tests; and identifying a portion of the plurality of tests as the at least one test based on the ranking;

to determine whether at least one existing job identified in a first database comprises the at least one test;

in response to determination that the at least one existing job identified in the first database comprises the at least one test: (i) to update one or more configuration parameters of the at least one existing job based at least in part on the at least one affected portion of software code, and (ii) to execute the at least one existing job with the updated one or more configuration parameters; and

in response to determination that the at least one existing job identified in the first database does not comprise the at least one test: (i) to determine that a previously executed job identified in a second database comprises the at least one test, (ii) to update one or more configuration parameters of the previously executed job based at least in part on the at least one affected portion of software code to create a new job, (iii) to add the new job to the first database, and (iv) to execute the new job.

16. The apparatus of claim 15 , wherein the plurality of tests comprises a set of tests corresponding to a given feature, and wherein the portion of the plurality of tests comprises a subset of the set of tests.

17. The apparatus of claim 15 , wherein the at least one processing device is configured:

to determine that the executing of at least one of the at least one existing job and the new job failed; and

to block the commit operation.

18. The apparatus of claim 15 , wherein the one or more changes comprise at least one change to at least one function of the at least one other portion of the software code of the code repository.

19. The apparatus of claim 18 , wherein the updating the one or more configuration parameters of one or more of the at least one existing job and the previously executed job is based on at least a portion of the one or more changes.

20. The apparatus of claim 18 , wherein the second database comprises results of a plurality of previously executed jobs.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0255 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0012 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062021/0844 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0124 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0280 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2021
From: YOSEF, ILAN; BEKKER-VERNIK, BELLA
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056215/0480 →