MCPcopy
hub / github.com/angular/angular / _prepareBenchpressSetup

Function _prepareBenchpressSetup

modules/utilities/perf_util.ts:71–125  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

69}
70
71async function _prepareBenchpressSetup(): Promise<BenchpressSetup> {
72 const module = await loadBenchpressModule();
73 const {
74 SeleniumWebDriverAdapter,
75 Options,
76 JsonFileReporter,
77 RegressionSlopeValidator,
78 Validator,
79 MultiReporter,
80 ConsoleReporter,
81 SizeValidator,
82 MultiMetric,
83 Runner,
84 } = module;
85
86 let runId = randomUUID();
87 if (process.env.GIT_SHA) {
88 runId = process.env.GIT_SHA + ' ' + runId;
89 }
90
91 const testOutputDirectory = process.env.TEST_UNDECLARED_OUTPUTS_DIR;
92
93 if (testOutputDirectory === undefined) {
94 throw new Error(
95 'Unexpected execution outside of a Bazel test. ' +
96 'Missing `TEST_UNDECLARED_OUTPUTS_DIR` environment variable.',
97 );
98 }
99
100 const providers: benchpress.StaticProvider[] = [
101 SeleniumWebDriverAdapter.PROTRACTOR_PROVIDERS,
102 {provide: Options.FORCE_GC, useValue: globalOptions.forceGc},
103 {provide: Options.DEFAULT_DESCRIPTION, useValue: {'runId': runId}},
104 JsonFileReporter.PROVIDERS,
105 {provide: JsonFileReporter.PATH, useValue: testOutputDirectory},
106 ];
107 if (!globalOptions.dryRun) {
108 providers.push({provide: Validator, useExisting: RegressionSlopeValidator});
109 providers.push({
110 provide: RegressionSlopeValidator.SAMPLE_SIZE,
111 useValue: globalOptions.sampleSize,
112 });
113 providers.push(MultiReporter.provideWith([ConsoleReporter, JsonFileReporter]));
114 } else {
115 providers.push({provide: Validator, useExisting: SizeValidator});
116 providers.push({provide: SizeValidator.SAMPLE_SIZE, useValue: 1});
117 providers.push(MultiReporter.provideWith([]));
118 providers.push(MultiMetric.provideWith([]));
119 }
120
121 return {
122 runner: new Runner(providers),
123 module,
124 };
125}
126
127/** Loads the benchpress module through a CJS/ESM interop. */
128async function loadBenchpressModule(): Promise<typeof benchpress> {

Callers 1

runBenchmarkFunction · 0.85

Calls 4

loadBenchpressModuleFunction · 0.85
randomUUIDFunction · 0.85
pushMethod · 0.45
provideWithMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…