Skip to content

Commit 1368513

Browse files
devversionmhevery
authored andcommitted
build: run largetable benchmark tests with bazel (angular#28645)
PR Close angular#28645
1 parent 1a326d5 commit 1368513

File tree

13 files changed

+66
-232
lines changed

13 files changed

+66
-232
lines changed

modules/benchmarks/e2e_test/largetable_perf.ts

Lines changed: 0 additions & 99 deletions
This file was deleted.

modules/benchmarks/e2e_test/largetable_spec.ts

Lines changed: 0 additions & 62 deletions
This file was deleted.

modules/benchmarks/src/largetable/BUILD.bazel

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,9 @@ ts_library(
1111
ts_library(
1212
name = "perf_lib",
1313
testonly = 1,
14-
srcs = [
15-
"largetable_perf.spec.ts",
16-
],
14+
srcs = ["largetable_perf.spec.ts"],
1715
deps = [
1816
"//modules/e2e_util",
19-
"//packages:types",
2017
"@ngdeps//protractor",
2118
],
2219
)

modules/benchmarks/src/largetable/baseline/BUILD.bazel

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
load("//tools:defaults.bzl", "ts_library")
22
load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver")
3+
load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test")
34

45
package(default_visibility = ["//modules/benchmarks:__subpackages__"])
56

@@ -20,3 +21,9 @@ ts_devserver(
2021
port = 4200,
2122
deps = [":baseline"],
2223
)
24+
25+
benchmark_test(
26+
name = "perf",
27+
server = ":devserver",
28+
deps = ["//modules/benchmarks/src/largetable:perf_lib"],
29+
)

modules/benchmarks/src/largetable/incremental_dom/BUILD.bazel

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
load("//tools:defaults.bzl", "ts_library")
22
load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver")
3+
load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test")
34

45
package(default_visibility = ["//modules/benchmarks:__subpackages__"])
56

@@ -23,3 +24,9 @@ ts_devserver(
2324
],
2425
deps = [":incremental_dom"],
2526
)
27+
28+
benchmark_test(
29+
name = "perf",
30+
server = ":devserver",
31+
deps = ["//modules/benchmarks/src/largetable:perf_lib"],
32+
)

modules/benchmarks/src/largetable/iv/BUILD.bazel

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
load("//tools:defaults.bzl", "ts_library")
22
load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver")
3+
load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test")
34

45
package(default_visibility = ["//modules/benchmarks:__subpackages__"])
56

@@ -9,3 +10,9 @@ ts_devserver(
910
port = 4200,
1011
static_files = ["largetable.js"],
1112
)
13+
14+
benchmark_test(
15+
name = "perf",
16+
server = ":devserver",
17+
deps = ["//modules/benchmarks/src/largetable:perf_lib"],
18+
)

modules/benchmarks/src/largetable/largetable_perf.spec.ts

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,19 @@ const UpdateWorker: Worker = {
3636
work: () => $('#createDom').click()
3737
};
3838

39+
// In order to make sure that we don't change the ids of the benchmarks, we need to
40+
// determine the current test package name from the Bazel target. This is necessary
41+
// because previous to the Bazel conversion, the benchmark test ids contained the test
42+
// name. e.g. "largeTable.ng2_switch.createDestroy". We determine the name of the
43+
// Bazel package where this test runs from the current test target. The Bazel target
44+
// looks like: "//modules/benchmarks/src/largetable/{pkg_name}:{target_name}".
45+
const testPackageName = process.env['BAZEL_TARGET'] !.split(':')[0].split('/').pop();
46+
3947
describe('largetable benchmark perf', () => {
4048

4149
afterEach(verifyNoBrowserErrors);
4250

43-
it('should render the table for render3', () => {
51+
it(`should render the table for ${testPackageName}`, () => {
4452
openBrowser({
4553
url: '',
4654
ignoreBrowserSynchronization: true,
@@ -56,26 +64,26 @@ describe('largetable benchmark perf', () => {
5664

5765
[CreateOnlyWorker, CreateAndDestroyWorker, UpdateWorker].forEach((worker) => {
5866
describe(worker.id, () => {
59-
it('should run benchmark for render3', done => {
67+
it(`should run benchmark for ${testPackageName}`, done => {
6068
runTableBenchmark({
61-
id: `largeTable.render3.${worker.id}`,
62-
url: 'index.html',
69+
id: `largeTable.${testPackageName}.${worker.id}`,
70+
url: '/',
6371
ignoreBrowserSynchronization: true,
6472
worker: worker
6573
}).then(done, done.fail);
6674
});
6775
});
6876
});
69-
70-
function runTableBenchmark(
71-
config: {id: string, url: string, ignoreBrowserSynchronization?: boolean, worker: Worker}) {
72-
return runBenchmark({
73-
id: config.id,
74-
url: config.url,
75-
ignoreBrowserSynchronization: config.ignoreBrowserSynchronization,
76-
params: [{name: 'cols', value: 40}, {name: 'rows', value: 200}],
77-
prepare: config.worker.prepare,
78-
work: config.worker.work
79-
});
80-
}
8177
});
78+
79+
function runTableBenchmark(
80+
config: {id: string, url: string, ignoreBrowserSynchronization?: boolean, worker: Worker}) {
81+
return runBenchmark({
82+
id: config.id,
83+
url: config.url,
84+
ignoreBrowserSynchronization: config.ignoreBrowserSynchronization,
85+
params: [{name: 'cols', value: 40}, {name: 'rows', value: 200}],
86+
prepare: config.worker.prepare,
87+
work: config.worker.work
88+
});
89+
}

modules/benchmarks/src/largetable/ng2/BUILD.bazel

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
load("//tools:defaults.bzl", "ng_module")
22
load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver")
3+
load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test")
34

45
package(default_visibility = ["//modules/benchmarks:__subpackages__"])
56

@@ -33,3 +34,9 @@ ts_devserver(
3334
],
3435
deps = [":ng2"],
3536
)
37+
38+
benchmark_test(
39+
name = "perf",
40+
server = ":devserver",
41+
deps = ["//modules/benchmarks/src/largetable:perf_lib"],
42+
)

modules/benchmarks/src/largetable/ng2_switch/BUILD.bazel

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
load("//tools:defaults.bzl", "ng_module")
22
load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver")
3+
load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test")
34

45
package(default_visibility = ["//modules/benchmarks:__subpackages__"])
56

@@ -30,3 +31,9 @@ ts_devserver(
3031
],
3132
deps = [":ng2_switch"],
3233
)
34+
35+
benchmark_test(
36+
name = "perf",
37+
server = ":devserver",
38+
deps = ["//modules/benchmarks/src/largetable:perf_lib"],
39+
)
Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
11
package(default_visibility = ["//visibility:public"])
22

33
load("//tools:defaults.bzl", "ng_module", "ng_rollup_bundle")
4-
load("//packages/bazel:index.bzl", "protractor_web_test_suite")
54
load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver")
5+
load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test")
66

77
ng_module(
88
name = "largetable_lib",
9-
srcs = glob(
10-
[
11-
"**/*.ts",
12-
],
13-
exclude = ["protractor.on-prepare.ts"],
14-
),
9+
srcs = glob(["**/*.ts"]),
1510
tags = ["ivy-only"],
1611
deps = [
1712
"//modules/benchmarks/src:util_lib",
@@ -42,23 +37,9 @@ ts_devserver(
4237
tags = ["ivy-only"],
4338
)
4439

45-
protractor_web_test_suite(
40+
benchmark_test(
4641
name = "perf",
47-
configuration = "//:protractor-perf.conf.js",
48-
data = [
49-
"//packages/bazel/src/protractor/utils",
50-
"//packages/benchpress",
51-
"@ngdeps//node-uuid",
52-
"@ngdeps//protractor",
53-
"@ngdeps//reflect-metadata",
54-
"@ngdeps//yargs",
55-
],
56-
on_prepare = ":protractor.on_prepare.js",
5742
server = ":devserver",
58-
tags = [
59-
"ivy-only",
60-
],
61-
deps = [
62-
"//modules/benchmarks/src/largetable:perf_lib",
63-
],
43+
tags = ["ivy-only"],
44+
deps = ["//modules/benchmarks/src/largetable:perf_lib"],
6445
)

modules/benchmarks/src/largetable/render3/protractor.on_prepare.js

Lines changed: 0 additions & 22 deletions
This file was deleted.

0 commit comments

Comments
 (0)