@@ -14,99 +14,60 @@ type resultType = {
1414 zipFileChecksum : string
1515}
1616
17- describe ( 'prepareRepoData' , function ( ) {
18- describe ( 'Performance Tests' , function ( ) {
19- function verifyResult ( result : resultType , telemetry : TelemetryHelper , expectedSize : number ) : void {
20- assert . ok ( result )
21- assert . strictEqual ( Buffer . isBuffer ( result . zipFileBuffer ) , true )
22- assert . strictEqual ( telemetry . repositorySize , expectedSize )
23- assert . strictEqual ( result . zipFileChecksum . length , 44 )
24- }
25- /**
26- * Tests 250 files w/ 10 bytes each.
27- * Running more files can lead to flaky test from timeout.
28- */
29- performanceTest (
30- {
31- testRuns : 10 ,
32- linux : {
33- userCpuUsage : 90 ,
34- systemCpuUsage : 35 ,
35- heapTotal : 4 ,
36- } ,
37- darwin : {
38- userCpuUsage : 90 ,
39- systemCpuUsage : 35 ,
40- heapTotal : 4 ,
41- } ,
42- win32 : {
43- userCpuUsage : 90 ,
44- systemCpuUsage : 35 ,
45- heapTotal : 4 ,
46- } ,
17+ function performanceTestWrapper ( numFiles : number , fileSize : number ) {
18+ return performanceTest (
19+ {
20+ testRuns : 10 ,
21+ linux : {
22+ userCpuUsage : 100 ,
23+ systemCpuUsage : 35 ,
24+ heapTotal : 4 ,
4725 } ,
48- 'handles many files' ,
49- function ( ) {
50- const telemetry = new TelemetryHelper ( )
51- return {
52- setup : async ( ) => {
53- return await createTestWorkspace ( 250 , {
54- fileNamePrefix : 'file' ,
55- fileContent : '0123456789' ,
56- fileNameSuffix : '.md' ,
57- } )
58- } ,
59- execute : async ( workspace : WorkspaceFolder ) => {
60- return await prepareRepoData ( [ workspace . uri . fsPath ] , [ workspace ] , telemetry , {
61- record : ( ) => { } ,
62- } as unknown as Metric < AmazonqCreateUpload > )
63- } ,
64- verify : async ( _w : WorkspaceFolder , result : resultType ) => verifyResult ( result , telemetry , 2500 ) ,
65- }
66- }
67- )
68- /**
69- * Runs 10 files of size 1000 bytes.
70- */
71- performanceTest (
72- {
73- testRuns : 10 ,
74- linux : {
75- userCpuUsage : 65 ,
76- systemCpuUsage : 30 ,
77- heapTotal : 1 ,
26+ darwin : {
27+ userCpuUsage : 100 ,
28+ systemCpuUsage : 35 ,
29+ heapTotal : 4 ,
30+ } ,
31+ win32 : {
32+ userCpuUsage : 100 ,
33+ systemCpuUsage : 35 ,
34+ heapTotal : 4 ,
35+ } ,
36+ } ,
37+ `handles ${ numFiles } files of size ${ fileSize } bytes` ,
38+ function ( ) {
39+ const telemetry = new TelemetryHelper ( )
40+ return {
41+ setup : async ( ) => {
42+ return await createTestWorkspace ( numFiles , {
43+ fileNamePrefix : 'file' ,
44+ fileContent : getRandomString ( fileSize ) ,
45+ fileNameSuffix : '.md' ,
46+ } )
7847 } ,
79- darwin : {
80- userCpuUsage : 50 ,
81- systemCpuUsage : 25 ,
82- heapTotal : 1 ,
48+ execute : async ( workspace : WorkspaceFolder ) => {
49+ return await prepareRepoData ( [ workspace . uri . fsPath ] , [ workspace ] , telemetry , {
50+ record : ( ) => { } ,
51+ } as unknown as Metric < AmazonqCreateUpload > )
8352 } ,
84- win32 : {
85- userCpuUsage : 60 ,
86- systemCpuUsage : 30 ,
87- heapTotal : 1 ,
53+ verify : async ( _w : WorkspaceFolder , result : resultType ) => {
54+ verifyResult ( result , telemetry , numFiles * fileSize )
8855 } ,
89- } ,
90-
91- 'handles large files' ,
92- function ( ) {
93- const telemetry = new TelemetryHelper ( )
94- return {
95- setup : async ( ) => {
96- return await createTestWorkspace ( 10 , {
97- fileNamePrefix : 'file' ,
98- fileContent : getRandomString ( 1000 ) ,
99- fileNameSuffix : '.md' ,
100- } )
101- } ,
102- execute : async ( workspace : WorkspaceFolder ) => {
103- return await prepareRepoData ( [ workspace . uri . fsPath ] , [ workspace ] , telemetry , {
104- record : ( ) => { } ,
105- } as unknown as Metric < AmazonqCreateUpload > )
106- } ,
107- verify : async ( _w : WorkspaceFolder , result : resultType ) => verifyResult ( result , telemetry , 10000 ) ,
108- }
10956 }
110- )
57+ }
58+ )
59+ }
60+
61+ function verifyResult ( result : resultType , telemetry : TelemetryHelper , expectedSize : number ) : void {
62+ assert . ok ( result )
63+ assert . strictEqual ( Buffer . isBuffer ( result . zipFileBuffer ) , true )
64+ assert . strictEqual ( telemetry . repositorySize , expectedSize )
65+ assert . strictEqual ( result . zipFileChecksum . length , 44 )
66+ }
67+
68+ describe ( 'prepareRepoData' , function ( ) {
69+ describe ( 'Performance Tests' , function ( ) {
70+ performanceTestWrapper ( 250 , 10 )
71+ performanceTestWrapper ( 10 , 1000 )
11172 } )
11273} )
0 commit comments