Skip to content

Commit 0d32a19

Browse files
committed
Merge branch 'master' into removeFsExtra2
2 parents a341f85 + 3f80141 commit 0d32a19

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
/*!
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
import assert from 'assert'
6+
import { WorkspaceFolder } from 'vscode'
7+
import { performanceTest } from '../../shared/performance/performance'
8+
import { createTestWorkspace } from '../testUtil'
9+
import { prepareRepoData, TelemetryHelper } from '../../amazonqFeatureDev'
10+
import { AmazonqCreateUpload, getRandomString } from '../../shared'
11+
import { Span } from '../../shared/telemetry'
12+
13+
type resultType = {
14+
zipFileBuffer: Buffer
15+
zipFileChecksum: string
16+
}
17+
18+
function performanceTestWrapper(numFiles: number, fileSize: number) {
19+
return performanceTest(
20+
{
21+
testRuns: 10,
22+
linux: {
23+
userCpuUsage: 100,
24+
systemCpuUsage: 35,
25+
heapTotal: 4,
26+
},
27+
darwin: {
28+
userCpuUsage: 100,
29+
systemCpuUsage: 35,
30+
heapTotal: 4,
31+
},
32+
win32: {
33+
userCpuUsage: 100,
34+
systemCpuUsage: 35,
35+
heapTotal: 4,
36+
},
37+
},
38+
`handles ${numFiles} files of size ${fileSize} bytes`,
39+
function () {
40+
const telemetry = new TelemetryHelper()
41+
return {
42+
setup: async () => {
43+
return await createTestWorkspace(numFiles, {
44+
fileNamePrefix: 'file',
45+
fileContent: getRandomString(fileSize),
46+
fileNameSuffix: '.md',
47+
})
48+
},
49+
execute: async (workspace: WorkspaceFolder) => {
50+
return await prepareRepoData([workspace.uri.fsPath], [workspace], telemetry, {
51+
record: () => {},
52+
} as unknown as Span<AmazonqCreateUpload>)
53+
},
54+
verify: async (_w: WorkspaceFolder, result: resultType) => {
55+
verifyResult(result, telemetry, numFiles * fileSize)
56+
},
57+
}
58+
}
59+
)
60+
}
61+
62+
function verifyResult(result: resultType, telemetry: TelemetryHelper, expectedSize: number): void {
63+
assert.ok(result)
64+
assert.strictEqual(Buffer.isBuffer(result.zipFileBuffer), true)
65+
assert.strictEqual(telemetry.repositorySize, expectedSize)
66+
assert.strictEqual(result.zipFileChecksum.length, 44)
67+
}
68+
69+
describe('prepareRepoData', function () {
70+
describe('Performance Tests', function () {
71+
performanceTestWrapper(250, 10)
72+
performanceTestWrapper(10, 1000)
73+
})
74+
})

0 commit comments

Comments
 (0)