From 4d88b4bc2627f09745467f6b50da9a4fc2f70d95 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Mon, 13 Jan 2020 18:57:06 +0100 Subject: [PATCH] ci: do not run benchmark measurements in circleci (#34753) Currently we run all benchmark perf tests in CircleCI. Since we do not collect any results, we unnecessarily waste CI/RBE resources. Instead, we should just not run benchmark perf tests in CI, but still run the functionality e2e tests which ensure that benchmarks are not broken. We can do this by splitting the perf and e2e tests into separate files/targets. PR Close #34753 --- .gitignore | 1 - modules/benchmarks/benchmark_test.bzl | 7 +++-- modules/benchmarks/e2e_test.bzl | 17 +++++++++++ modules/benchmarks/src/largeform/BUILD.bazel | 13 ++++++++- .../src/largeform/largeform.spec.ts | 29 +++++++++++++++++++ .../src/largeform/largeform_perf.spec.ts | 17 ++--------- .../benchmarks/src/largeform/ng2/BUILD.bazel | 9 +++++- modules/benchmarks/src/largetable/BUILD.bazel | 13 ++++++++- .../src/largetable/baseline/BUILD.bazel | 9 +++++- .../largetable/incremental_dom/BUILD.bazel | 9 +++++- .../benchmarks/src/largetable/iv/BUILD.bazel | 9 +++++- .../src/largetable/largetable.spec.ts | 29 +++++++++++++++++++ .../src/largetable/largetable_perf.spec.ts | 16 ---------- .../benchmarks/src/largetable/ng2/BUILD.bazel | 9 +++++- .../src/largetable/ng2_switch/BUILD.bazel | 9 +++++- .../src/largetable/render3/BUILD.bazel | 10 ++++++- modules/benchmarks/src/tree/BUILD.bazel | 26 +++++++++++++++-- .../benchmarks/src/tree/baseline/BUILD.bazel | 9 +++++- .../src/tree/incremental_dom/BUILD.bazel | 9 +++++- modules/benchmarks/src/tree/iv/BUILD.bazel | 14 +++++++-- modules/benchmarks/src/tree/ng1/BUILD.bazel | 14 +++++++-- modules/benchmarks/src/tree/ng2/BUILD.bazel | 14 +++++++-- .../benchmarks/src/tree/ng2_next/BUILD.bazel | 14 +++++++-- .../src/tree/ng2_static/BUILD.bazel | 9 +++++- .../src/tree/ng2_switch/BUILD.bazel | 9 +++++- .../benchmarks/src/tree/render3/BUILD.bazel | 15 ++++++++-- .../src/tree/render3_function/BUILD.bazel | 14 +++++++-- ...{tree_perf_test_utils.ts => test_utils.ts} | 0 modules/benchmarks/src/tree/tree.spec.ts | 28 ++++++++++++++++++ .../src/tree/tree_detect_changes.spec.ts | 19 ++++++++++++ modules/benchmarks/src/tree/tree_perf.spec.ts | 22 ++------------ .../src/tree/tree_perf_detect_changes.spec.ts | 12 ++------ modules/e2e_util/e2e_util.ts | 4 +-- 33 files changed, 344 insertions(+), 94 deletions(-) create mode 100644 modules/benchmarks/e2e_test.bzl create mode 100644 modules/benchmarks/src/largeform/largeform.spec.ts create mode 100644 modules/benchmarks/src/largetable/largetable.spec.ts rename modules/benchmarks/src/tree/{tree_perf_test_utils.ts => test_utils.ts} (100%) create mode 100644 modules/benchmarks/src/tree/tree.spec.ts create mode 100644 modules/benchmarks/src/tree/tree_detect_changes.spec.ts diff --git a/.gitignore b/.gitignore index 8b7a3f78e01..1dfe1345ba2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ /dist/ /bazel-out /integration/bazel/bazel-* -e2e_test.* *.log node_modules diff --git a/modules/benchmarks/benchmark_test.bzl b/modules/benchmarks/benchmark_test.bzl index 1c48ea441ce..c213e6b90d7 100644 --- a/modules/benchmarks/benchmark_test.bzl +++ b/modules/benchmarks/benchmark_test.bzl @@ -3,7 +3,8 @@ load("//tools:defaults.bzl", "protractor_web_test_suite") """ Macro that can be used to define a benchmark test. This differentiates from a normal Protractor test suite because we specify a custom "perf" configuration - that sets up "@angular/benchpress". + that sets up "@angular/benchpress". Benchmark test targets will not run on CI + unless explicitly requested. """ def benchmark_test(name, server, deps, tags = []): @@ -15,7 +16,9 @@ def benchmark_test(name, server, deps, tags = []): ], on_prepare = "//modules/benchmarks:start-server.js", server = server, - tags = tags, + # Benchmark targets should not run on CI by default. + tags = tags + ["manual"], + test_suite_tags = ["manual"], deps = [ "@npm//yargs", ] + deps, diff --git a/modules/benchmarks/e2e_test.bzl b/modules/benchmarks/e2e_test.bzl new file mode 100644 index 00000000000..67bcd89ab20 --- /dev/null +++ b/modules/benchmarks/e2e_test.bzl @@ -0,0 +1,17 @@ +load("//tools:defaults.bzl", "protractor_web_test_suite") + +""" + Macro that can be used to define a e2e test in `modules/benchmarks`. Targets created through + this macro differentiate from a "benchmark_test" as they will run on CI and do not run + with `@angular/benchpress`. +""" + +def e2e_test(name, server, deps, **kwargs): + protractor_web_test_suite( + name = name, + on_prepare = "//modules/benchmarks:start-server.js", + server = server, + # `yargs` is needed as runtime dependency for the e2e utils. + deps = ["@npm//yargs"] + deps, + **kwargs + ) diff --git a/modules/benchmarks/src/largeform/BUILD.bazel b/modules/benchmarks/src/largeform/BUILD.bazel index 37cf09c97d6..082e0a219b2 100644 --- a/modules/benchmarks/src/largeform/BUILD.bazel +++ b/modules/benchmarks/src/largeform/BUILD.bazel @@ -3,10 +3,21 @@ package(default_visibility = ["//modules/benchmarks:__subpackages__"]) load("//tools:defaults.bzl", "ts_library") ts_library( - name = "tests_lib", + name = "perf_tests_lib", testonly = 1, srcs = ["largeform_perf.spec.ts"], tsconfig = "//modules/benchmarks:tsconfig-e2e.json", + deps = [ + "//modules/e2e_util", + "@npm//protractor", + ], +) + +ts_library( + name = "e2e_tests_lib", + testonly = 1, + srcs = ["largeform.spec.ts"], + tsconfig = "//modules/benchmarks:tsconfig-e2e.json", deps = [ "//modules/e2e_util", "@npm//@types/jasminewd2", diff --git a/modules/benchmarks/src/largeform/largeform.spec.ts b/modules/benchmarks/src/largeform/largeform.spec.ts new file mode 100644 index 00000000000..a91f4fde2e3 --- /dev/null +++ b/modules/benchmarks/src/largeform/largeform.spec.ts @@ -0,0 +1,29 @@ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +import {$, By, element} from 'protractor'; + +import {openBrowser, verifyNoBrowserErrors} from '../../../e2e_util/e2e_util'; + +describe('largeform benchmark', () => { + + afterEach(verifyNoBrowserErrors); + + it('should work for ng2', () => { + openBrowser({ + url: '/', + params: [{name: 'copies', value: 1}], + ignoreBrowserSynchronization: true, + }); + $('#createDom').click(); + expect(element.all(By.css('input[name=value0]')).get(0).getAttribute('value')) + .toBe('someValue0'); + $('#destroyDom').click(); + expect(element.all(By.css('input[name=value0]')).count()).toBe(0); + }); +}); diff --git a/modules/benchmarks/src/largeform/largeform_perf.spec.ts b/modules/benchmarks/src/largeform/largeform_perf.spec.ts index 12107454257..b297d0455f9 100644 --- a/modules/benchmarks/src/largeform/largeform_perf.spec.ts +++ b/modules/benchmarks/src/largeform/largeform_perf.spec.ts @@ -6,9 +6,9 @@ * found in the LICENSE file at https://angular.io/license */ -import {$, By, element} from 'protractor'; +import {$} from 'protractor'; -import {openBrowser, verifyNoBrowserErrors} from '../../../e2e_util/e2e_util'; +import {verifyNoBrowserErrors} from '../../../e2e_util/e2e_util'; import {runBenchmark} from '../../../e2e_util/perf_util'; interface Worker { @@ -29,19 +29,6 @@ describe('largeform benchmark spec', () => { afterEach(verifyNoBrowserErrors); - it('should work for ng2', () => { - openBrowser({ - url: '/', - params: [{name: 'copies', value: 1}], - ignoreBrowserSynchronization: true, - }); - $('#createDom').click(); - expect(element.all(By.css('input[name=value0]')).get(0).getAttribute('value')) - .toBe('someValue0'); - $('#destroyDom').click(); - expect(element.all(By.css('input[name=value0]')).count()).toBe(0); - }); - [CreateAndDestroyWorker].forEach((worker) => { describe(worker.id, () => { it('should run for ng2', done => { diff --git a/modules/benchmarks/src/largeform/ng2/BUILD.bazel b/modules/benchmarks/src/largeform/ng2/BUILD.bazel index 17795aef4ff..51db615c78c 100644 --- a/modules/benchmarks/src/largeform/ng2/BUILD.bazel +++ b/modules/benchmarks/src/largeform/ng2/BUILD.bazel @@ -1,5 +1,6 @@ load("//tools:defaults.bzl", "ng_module", "ts_devserver") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") package(default_visibility = ["//modules/benchmarks:__subpackages__"]) @@ -38,5 +39,11 @@ ts_devserver( benchmark_test( name = "perf", server = ":devserver", - deps = ["//modules/benchmarks/src/largeform:tests_lib"], + deps = ["//modules/benchmarks/src/largeform:perf_tests_lib"], +) + +e2e_test( + name = "e2e", + server = ":devserver", + deps = ["//modules/benchmarks/src/largeform:e2e_tests_lib"], ) diff --git a/modules/benchmarks/src/largetable/BUILD.bazel b/modules/benchmarks/src/largetable/BUILD.bazel index cc00b3f5b80..dad5717e861 100644 --- a/modules/benchmarks/src/largetable/BUILD.bazel +++ b/modules/benchmarks/src/largetable/BUILD.bazel @@ -9,7 +9,7 @@ ts_library( ) ts_library( - name = "perf_lib", + name = "perf_tests_lib", testonly = 1, srcs = ["largetable_perf.spec.ts"], deps = [ @@ -17,3 +17,14 @@ ts_library( "@npm//protractor", ], ) + +ts_library( + name = "e2e_tests_lib", + testonly = 1, + srcs = ["largetable.spec.ts"], + tsconfig = "//modules/benchmarks:tsconfig-e2e.json", + deps = [ + "//modules/e2e_util", + "@npm//protractor", + ], +) diff --git a/modules/benchmarks/src/largetable/baseline/BUILD.bazel b/modules/benchmarks/src/largetable/baseline/BUILD.bazel index 598023d11ef..8c8398db7e9 100644 --- a/modules/benchmarks/src/largetable/baseline/BUILD.bazel +++ b/modules/benchmarks/src/largetable/baseline/BUILD.bazel @@ -1,5 +1,6 @@ load("//tools:defaults.bzl", "ts_devserver", "ts_library") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") package(default_visibility = ["//modules/benchmarks:__subpackages__"]) @@ -24,5 +25,11 @@ ts_devserver( benchmark_test( name = "perf", server = ":devserver", - deps = ["//modules/benchmarks/src/largetable:perf_lib"], + deps = ["//modules/benchmarks/src/largetable:perf_tests_lib"], +) + +e2e_test( + name = "e2e", + server = ":devserver", + deps = ["//modules/benchmarks/src/largetable:e2e_tests_lib"], ) diff --git a/modules/benchmarks/src/largetable/incremental_dom/BUILD.bazel b/modules/benchmarks/src/largetable/incremental_dom/BUILD.bazel index 101abd77474..6d63f067d32 100644 --- a/modules/benchmarks/src/largetable/incremental_dom/BUILD.bazel +++ b/modules/benchmarks/src/largetable/incremental_dom/BUILD.bazel @@ -1,5 +1,6 @@ load("//tools:defaults.bzl", "ts_devserver", "ts_library") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") package(default_visibility = ["//modules/benchmarks:__subpackages__"]) @@ -27,5 +28,11 @@ ts_devserver( benchmark_test( name = "perf", server = ":devserver", - deps = ["//modules/benchmarks/src/largetable:perf_lib"], + deps = ["//modules/benchmarks/src/largetable:perf_tests_lib"], +) + +e2e_test( + name = "e2e", + server = ":devserver", + deps = ["//modules/benchmarks/src/largetable:e2e_tests_lib"], ) diff --git a/modules/benchmarks/src/largetable/iv/BUILD.bazel b/modules/benchmarks/src/largetable/iv/BUILD.bazel index 4b2719162a4..841a298e6c4 100644 --- a/modules/benchmarks/src/largetable/iv/BUILD.bazel +++ b/modules/benchmarks/src/largetable/iv/BUILD.bazel @@ -1,5 +1,6 @@ load("//tools:defaults.bzl", "ts_devserver") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") package(default_visibility = ["//modules/benchmarks:__subpackages__"]) @@ -13,5 +14,11 @@ ts_devserver( benchmark_test( name = "perf", server = ":devserver", - deps = ["//modules/benchmarks/src/largetable:perf_lib"], + deps = ["//modules/benchmarks/src/largetable:perf_tests_lib"], +) + +e2e_test( + name = "e2e", + server = ":devserver", + deps = ["//modules/benchmarks/src/largetable:e2e_tests_lib"], ) diff --git a/modules/benchmarks/src/largetable/largetable.spec.ts b/modules/benchmarks/src/largetable/largetable.spec.ts new file mode 100644 index 00000000000..2e3f1a0e76b --- /dev/null +++ b/modules/benchmarks/src/largetable/largetable.spec.ts @@ -0,0 +1,29 @@ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +import {$} from 'protractor'; + +import {openBrowser, verifyNoBrowserErrors} from '../../../e2e_util/e2e_util'; + +describe('largetable benchmark', () => { + afterEach(verifyNoBrowserErrors); + + it(`should render the table`, () => { + openBrowser({ + url: '', + ignoreBrowserSynchronization: true, + params: [{name: 'cols', value: 5}, {name: 'rows', value: 5}], + }); + $('#createDom').click(); + expect($('#root').getText()).toContain('0/0'); + $('#createDom').click(); + expect($('#root').getText()).toContain('A/A'); + $('#destroyDom').click(); + expect($('#root').getText() as any).toEqual(''); + }); +}); diff --git a/modules/benchmarks/src/largetable/largetable_perf.spec.ts b/modules/benchmarks/src/largetable/largetable_perf.spec.ts index 6e9bdfe7884..de90152786f 100644 --- a/modules/benchmarks/src/largetable/largetable_perf.spec.ts +++ b/modules/benchmarks/src/largetable/largetable_perf.spec.ts @@ -7,8 +7,6 @@ */ import {$} from 'protractor'; - -import {openBrowser} from '../../../e2e_util/e2e_util'; import {runBenchmark, verifyNoBrowserErrors} from '../../../e2e_util/perf_util'; interface Worker { @@ -48,20 +46,6 @@ describe('largetable benchmark perf', () => { afterEach(verifyNoBrowserErrors); - it(`should render the table for ${testPackageName}`, () => { - openBrowser({ - url: '', - ignoreBrowserSynchronization: true, - params: [{name: 'cols', value: 5}, {name: 'rows', value: 5}], - }); - $('#createDom').click(); - expect($('#root').getText()).toContain('0/0'); - $('#createDom').click(); - expect($('#root').getText()).toContain('A/A'); - $('#destroyDom').click(); - expect($('#root').getText() as any).toEqual(''); - }); - [CreateOnlyWorker, CreateAndDestroyWorker, UpdateWorker].forEach((worker) => { describe(worker.id, () => { it(`should run benchmark for ${testPackageName}`, done => { diff --git a/modules/benchmarks/src/largetable/ng2/BUILD.bazel b/modules/benchmarks/src/largetable/ng2/BUILD.bazel index c45828fb288..b52ad6b1735 100644 --- a/modules/benchmarks/src/largetable/ng2/BUILD.bazel +++ b/modules/benchmarks/src/largetable/ng2/BUILD.bazel @@ -1,5 +1,6 @@ load("//tools:defaults.bzl", "ng_module", "ng_rollup_bundle", "ts_devserver") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") package(default_visibility = ["//modules/benchmarks:__subpackages__"]) @@ -40,5 +41,11 @@ ts_devserver( benchmark_test( name = "perf", server = ":prodserver", - deps = ["//modules/benchmarks/src/largetable:perf_lib"], + deps = ["//modules/benchmarks/src/largetable:perf_tests_lib"], +) + +e2e_test( + name = "e2e", + server = ":prodserver", + deps = ["//modules/benchmarks/src/largetable:e2e_tests_lib"], ) diff --git a/modules/benchmarks/src/largetable/ng2_switch/BUILD.bazel b/modules/benchmarks/src/largetable/ng2_switch/BUILD.bazel index ca73d1c71ab..555ecab5624 100644 --- a/modules/benchmarks/src/largetable/ng2_switch/BUILD.bazel +++ b/modules/benchmarks/src/largetable/ng2_switch/BUILD.bazel @@ -1,5 +1,6 @@ load("//tools:defaults.bzl", "ng_module", "ts_devserver") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") package(default_visibility = ["//modules/benchmarks:__subpackages__"]) @@ -36,5 +37,11 @@ ts_devserver( benchmark_test( name = "perf", server = ":devserver", - deps = ["//modules/benchmarks/src/largetable:perf_lib"], + deps = ["//modules/benchmarks/src/largetable:perf_tests_lib"], +) + +e2e_test( + name = "e2e", + server = ":devserver", + deps = ["//modules/benchmarks/src/largetable:e2e_tests_lib"], ) diff --git a/modules/benchmarks/src/largetable/render3/BUILD.bazel b/modules/benchmarks/src/largetable/render3/BUILD.bazel index 14def7df43a..ab6f33646d4 100644 --- a/modules/benchmarks/src/largetable/render3/BUILD.bazel +++ b/modules/benchmarks/src/largetable/render3/BUILD.bazel @@ -2,6 +2,7 @@ package(default_visibility = ["//visibility:public"]) load("//tools:defaults.bzl", "ng_module", "ng_rollup_bundle", "ts_devserver") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") ng_module( name = "largetable_lib", @@ -43,5 +44,12 @@ benchmark_test( name = "perf", server = ":devserver", tags = ["ivy-only"], - deps = ["//modules/benchmarks/src/largetable:perf_lib"], + deps = ["//modules/benchmarks/src/largetable:perf_tests_lib"], +) + +e2e_test( + name = "e2e", + server = ":devserver", + tags = ["ivy-only"], + deps = ["//modules/benchmarks/src/largetable:e2e_tests_lib"], ) diff --git a/modules/benchmarks/src/tree/BUILD.bazel b/modules/benchmarks/src/tree/BUILD.bazel index 3a7c4d5f013..f7d87e038aa 100644 --- a/modules/benchmarks/src/tree/BUILD.bazel +++ b/modules/benchmarks/src/tree/BUILD.bazel @@ -11,7 +11,7 @@ ts_library( ts_library( name = "test_utils_lib", testonly = 1, - srcs = ["tree_perf_test_utils.ts"], + srcs = ["test_utils.ts"], deps = [ "//modules/e2e_util", "@npm//protractor", @@ -19,7 +19,7 @@ ts_library( ) ts_library( - name = "perf_lib", + name = "perf_tests_lib", testonly = 1, srcs = ["tree_perf.spec.ts"], deps = [ @@ -29,7 +29,17 @@ ts_library( ) ts_library( - name = "perf_detect_changes_lib", + name = "e2e_tests_lib", + testonly = 1, + srcs = ["tree.spec.ts"], + deps = [ + ":test_utils_lib", + "@npm//protractor", + ], +) + +ts_library( + name = "detect_changes_perf_tests_lib", testonly = 1, srcs = ["tree_perf_detect_changes.spec.ts"], deps = [ @@ -37,3 +47,13 @@ ts_library( "@npm//protractor", ], ) + +ts_library( + name = "detect_changes_e2e_tests_lib", + testonly = 1, + srcs = ["tree_detect_changes.spec.ts"], + deps = [ + ":test_utils_lib", + "@npm//protractor", + ], +) diff --git a/modules/benchmarks/src/tree/baseline/BUILD.bazel b/modules/benchmarks/src/tree/baseline/BUILD.bazel index a984c896b86..7a6b37ef3dc 100644 --- a/modules/benchmarks/src/tree/baseline/BUILD.bazel +++ b/modules/benchmarks/src/tree/baseline/BUILD.bazel @@ -1,5 +1,6 @@ load("//tools:defaults.bzl", "ts_devserver", "ts_library") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") package(default_visibility = ["//modules/benchmarks:__subpackages__"]) @@ -24,5 +25,11 @@ ts_devserver( benchmark_test( name = "perf", server = ":devserver", - deps = ["//modules/benchmarks/src/tree:perf_lib"], + deps = ["//modules/benchmarks/src/tree:perf_tests_lib"], +) + +e2e_test( + name = "e2e", + server = ":devserver", + deps = ["//modules/benchmarks/src/tree:e2e_tests_lib"], ) diff --git a/modules/benchmarks/src/tree/incremental_dom/BUILD.bazel b/modules/benchmarks/src/tree/incremental_dom/BUILD.bazel index a4cf28a9bb4..b99a6d5839a 100644 --- a/modules/benchmarks/src/tree/incremental_dom/BUILD.bazel +++ b/modules/benchmarks/src/tree/incremental_dom/BUILD.bazel @@ -1,5 +1,6 @@ load("//tools:defaults.bzl", "ts_devserver", "ts_library") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") package(default_visibility = ["//modules/benchmarks:__subpackages__"]) @@ -28,5 +29,11 @@ ts_devserver( benchmark_test( name = "perf", server = ":devserver", - deps = ["//modules/benchmarks/src/tree:perf_lib"], + deps = ["//modules/benchmarks/src/tree:perf_tests_lib"], +) + +e2e_test( + name = "e2e", + server = ":devserver", + deps = ["//modules/benchmarks/src/tree:e2e_tests_lib"], ) diff --git a/modules/benchmarks/src/tree/iv/BUILD.bazel b/modules/benchmarks/src/tree/iv/BUILD.bazel index 762eb1af0b5..f7efff307a0 100644 --- a/modules/benchmarks/src/tree/iv/BUILD.bazel +++ b/modules/benchmarks/src/tree/iv/BUILD.bazel @@ -1,5 +1,6 @@ load("//tools:defaults.bzl", "ts_devserver") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") package(default_visibility = ["//modules/benchmarks:__subpackages__"]) @@ -14,7 +15,16 @@ benchmark_test( name = "perf", server = ":devserver", deps = [ - "//modules/benchmarks/src/tree:perf_detect_changes_lib", - "//modules/benchmarks/src/tree:perf_lib", + "//modules/benchmarks/src/tree:detect_changes_perf_tests_lib", + "//modules/benchmarks/src/tree:perf_tests_lib", + ], +) + +e2e_test( + name = "e2e", + server = ":devserver", + deps = [ + "//modules/benchmarks/src/tree:detect_changes_e2e_tests_lib", + "//modules/benchmarks/src/tree:e2e_tests_lib", ], ) diff --git a/modules/benchmarks/src/tree/ng1/BUILD.bazel b/modules/benchmarks/src/tree/ng1/BUILD.bazel index 87c9dcf3e97..b9d4a71f66d 100644 --- a/modules/benchmarks/src/tree/ng1/BUILD.bazel +++ b/modules/benchmarks/src/tree/ng1/BUILD.bazel @@ -1,5 +1,6 @@ load("//tools:defaults.bzl", "ts_devserver", "ts_library") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") package(default_visibility = ["//modules/benchmarks:__subpackages__"]) @@ -26,7 +27,16 @@ benchmark_test( name = "perf", server = ":devserver", deps = [ - "//modules/benchmarks/src/tree:perf_detect_changes_lib", - "//modules/benchmarks/src/tree:perf_lib", + "//modules/benchmarks/src/tree:detect_changes_perf_tests_lib", + "//modules/benchmarks/src/tree:perf_tests_lib", + ], +) + +e2e_test( + name = "e2e", + server = ":devserver", + deps = [ + "//modules/benchmarks/src/tree:detect_changes_e2e_tests_lib", + "//modules/benchmarks/src/tree:e2e_tests_lib", ], ) diff --git a/modules/benchmarks/src/tree/ng2/BUILD.bazel b/modules/benchmarks/src/tree/ng2/BUILD.bazel index fb4c652facf..9765e5b1eab 100644 --- a/modules/benchmarks/src/tree/ng2/BUILD.bazel +++ b/modules/benchmarks/src/tree/ng2/BUILD.bazel @@ -1,5 +1,6 @@ load("//tools:defaults.bzl", "ng_module", "ng_rollup_bundle", "ts_devserver") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") package(default_visibility = ["//modules/benchmarks:__subpackages__"]) @@ -41,7 +42,16 @@ benchmark_test( name = "perf", server = ":prodserver", deps = [ - "//modules/benchmarks/src/tree:perf_detect_changes_lib", - "//modules/benchmarks/src/tree:perf_lib", + "//modules/benchmarks/src/tree:detect_changes_perf_tests_lib", + "//modules/benchmarks/src/tree:perf_tests_lib", + ], +) + +e2e_test( + name = "e2e", + server = ":prodserver", + deps = [ + "//modules/benchmarks/src/tree:detect_changes_e2e_tests_lib", + "//modules/benchmarks/src/tree:e2e_tests_lib", ], ) diff --git a/modules/benchmarks/src/tree/ng2_next/BUILD.bazel b/modules/benchmarks/src/tree/ng2_next/BUILD.bazel index 1157a1ef7e4..a678099e4d1 100644 --- a/modules/benchmarks/src/tree/ng2_next/BUILD.bazel +++ b/modules/benchmarks/src/tree/ng2_next/BUILD.bazel @@ -1,5 +1,6 @@ load("//tools:defaults.bzl", "ts_devserver", "ts_library") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") package(default_visibility = ["//modules/benchmarks:__subpackages__"]) @@ -32,7 +33,16 @@ benchmark_test( name = "perf", server = ":devserver", deps = [ - "//modules/benchmarks/src/tree:perf_detect_changes_lib", - "//modules/benchmarks/src/tree:perf_lib", + "//modules/benchmarks/src/tree:detect_changes_perf_tests_lib", + "//modules/benchmarks/src/tree:perf_tests_lib", + ], +) + +e2e_test( + name = "e2e", + server = ":devserver", + deps = [ + "//modules/benchmarks/src/tree:detect_changes_e2e_tests_lib", + "//modules/benchmarks/src/tree:e2e_tests_lib", ], ) diff --git a/modules/benchmarks/src/tree/ng2_static/BUILD.bazel b/modules/benchmarks/src/tree/ng2_static/BUILD.bazel index 42857ef0989..99167f1cb18 100644 --- a/modules/benchmarks/src/tree/ng2_static/BUILD.bazel +++ b/modules/benchmarks/src/tree/ng2_static/BUILD.bazel @@ -1,5 +1,6 @@ load("//tools:defaults.bzl", "ts_devserver", "ts_library") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") package(default_visibility = ["//modules/benchmarks:__subpackages__"]) @@ -35,5 +36,11 @@ ts_devserver( benchmark_test( name = "perf", server = ":devserver", - deps = ["//modules/benchmarks/src/tree:perf_lib"], + deps = ["//modules/benchmarks/src/tree:perf_tests_lib"], +) + +e2e_test( + name = "e2e", + server = ":devserver", + deps = ["//modules/benchmarks/src/tree:e2e_tests_lib"], ) diff --git a/modules/benchmarks/src/tree/ng2_switch/BUILD.bazel b/modules/benchmarks/src/tree/ng2_switch/BUILD.bazel index 4963ab9841c..4c1e8cb933d 100644 --- a/modules/benchmarks/src/tree/ng2_switch/BUILD.bazel +++ b/modules/benchmarks/src/tree/ng2_switch/BUILD.bazel @@ -1,5 +1,6 @@ load("//tools:defaults.bzl", "ng_module", "ts_devserver") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") package(default_visibility = ["//modules/benchmarks:__subpackages__"]) @@ -36,5 +37,11 @@ ts_devserver( benchmark_test( name = "perf", server = ":devserver", - deps = ["//modules/benchmarks/src/tree:perf_lib"], + deps = ["//modules/benchmarks/src/tree:perf_tests_lib"], +) + +e2e_test( + name = "e2e", + server = ":devserver", + deps = ["//modules/benchmarks/src/tree:e2e_tests_lib"], ) diff --git a/modules/benchmarks/src/tree/render3/BUILD.bazel b/modules/benchmarks/src/tree/render3/BUILD.bazel index 4864135e353..ecfad4e8b92 100644 --- a/modules/benchmarks/src/tree/render3/BUILD.bazel +++ b/modules/benchmarks/src/tree/render3/BUILD.bazel @@ -2,6 +2,7 @@ package(default_visibility = ["//modules/benchmarks:__subpackages__"]) load("//tools:defaults.bzl", "ng_module", "ng_rollup_bundle", "ts_devserver") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") ng_module( name = "tree_lib", @@ -41,7 +42,17 @@ benchmark_test( server = ":devserver", tags = ["ivy-only"], deps = [ - "//modules/benchmarks/src/tree:perf_detect_changes_lib", - "//modules/benchmarks/src/tree:perf_lib", + "//modules/benchmarks/src/tree:detect_changes_perf_tests_lib", + "//modules/benchmarks/src/tree:perf_tests_lib", + ], +) + +e2e_test( + name = "e2e", + server = ":devserver", + tags = ["ivy-only"], + deps = [ + "//modules/benchmarks/src/tree:detect_changes_e2e_tests_lib", + "//modules/benchmarks/src/tree:e2e_tests_lib", ], ) diff --git a/modules/benchmarks/src/tree/render3_function/BUILD.bazel b/modules/benchmarks/src/tree/render3_function/BUILD.bazel index 3a9145142c6..da9ec7ecb2d 100644 --- a/modules/benchmarks/src/tree/render3_function/BUILD.bazel +++ b/modules/benchmarks/src/tree/render3_function/BUILD.bazel @@ -1,5 +1,6 @@ load("//tools:defaults.bzl", "ts_devserver", "ts_library") load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test") +load("//modules/benchmarks:e2e_test.bzl", "e2e_test") package(default_visibility = ["//modules/benchmarks:__subpackages__"]) @@ -30,7 +31,16 @@ benchmark_test( name = "perf", server = ":devserver", deps = [ - "//modules/benchmarks/src/tree:perf_detect_changes_lib", - "//modules/benchmarks/src/tree:perf_lib", + "//modules/benchmarks/src/tree:detect_changes_perf_tests_lib", + "//modules/benchmarks/src/tree:perf_tests_lib", + ], +) + +e2e_test( + name = "e2e", + server = ":devserver", + deps = [ + "//modules/benchmarks/src/tree:detect_changes_e2e_tests_lib", + "//modules/benchmarks/src/tree:e2e_tests_lib", ], ) diff --git a/modules/benchmarks/src/tree/tree_perf_test_utils.ts b/modules/benchmarks/src/tree/test_utils.ts similarity index 100% rename from modules/benchmarks/src/tree/tree_perf_test_utils.ts rename to modules/benchmarks/src/tree/test_utils.ts diff --git a/modules/benchmarks/src/tree/tree.spec.ts b/modules/benchmarks/src/tree/tree.spec.ts new file mode 100644 index 00000000000..0f9c2963cfe --- /dev/null +++ b/modules/benchmarks/src/tree/tree.spec.ts @@ -0,0 +1,28 @@ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +import {$} from 'protractor'; + +import {openTreeBenchmark} from './test_utils'; + +describe('tree benchmark', () => { + it('should work for createDestroy', () => { + openTreeBenchmark(); + $('#createDom').click(); + expect($('#root').getText()).toContain('1'); + $('#destroyDom').click(); + expect($('#root').getText() as any).toEqual(''); + }); + + it('should work for update', () => { + openTreeBenchmark(); + $('#createDom').click(); + $('#createDom').click(); + expect($('#root').getText()).toContain('A'); + }); +}); diff --git a/modules/benchmarks/src/tree/tree_detect_changes.spec.ts b/modules/benchmarks/src/tree/tree_detect_changes.spec.ts new file mode 100644 index 00000000000..b85d8a71c56 --- /dev/null +++ b/modules/benchmarks/src/tree/tree_detect_changes.spec.ts @@ -0,0 +1,19 @@ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +import {$} from 'protractor'; + +import {openTreeBenchmark} from './test_utils'; + +describe('tree benchmark detect changes', () => { + it('should work for detectChanges', () => { + openTreeBenchmark(); + $('#detectChanges').click(); + expect($('#numberOfChecks').getText()).toContain('10'); + }); +}); diff --git a/modules/benchmarks/src/tree/tree_perf.spec.ts b/modules/benchmarks/src/tree/tree_perf.spec.ts index 1b4881c5e33..74d02e019f9 100644 --- a/modules/benchmarks/src/tree/tree_perf.spec.ts +++ b/modules/benchmarks/src/tree/tree_perf.spec.ts @@ -7,27 +7,9 @@ */ import {$} from 'protractor'; -import {openTreeBenchmark, runTreeBenchmark} from './tree_perf_test_utils'; - -describe('benchmark render', () => { - it('should work for createDestroy', () => { - openTreeBenchmark(); - $('#createDom').click(); - expect($('#root').getText()).toContain('0'); - $('#destroyDom').click(); - expect($('#root').getText() as any).toEqual(''); - }); - - it('should work for update', () => { - openTreeBenchmark(); - $('#createDom').click(); - $('#createDom').click(); - expect($('#root').getText()).toContain('A'); - }); -}); - -describe('benchmarks', () => { +import {runTreeBenchmark} from './test_utils'; +describe('tree benchmark perf', () => { it('should work for createOnly', done => { runTreeBenchmark({ // This cannot be called "createOnly" because the actual destroy benchmark diff --git a/modules/benchmarks/src/tree/tree_perf_detect_changes.spec.ts b/modules/benchmarks/src/tree/tree_perf_detect_changes.spec.ts index 9b744d2bacb..822491e6193 100644 --- a/modules/benchmarks/src/tree/tree_perf_detect_changes.spec.ts +++ b/modules/benchmarks/src/tree/tree_perf_detect_changes.spec.ts @@ -7,17 +7,9 @@ */ import {$} from 'protractor'; -import {openTreeBenchmark, runTreeBenchmark} from './tree_perf_test_utils'; +import {runTreeBenchmark} from './test_utils'; -describe('benchmark render', () => { - it('should work for detectChanges', () => { - openTreeBenchmark(); - $('#detectChanges').click(); - expect($('#numberOfChecks').getText()).toContain('10'); - }); -}); - -describe('benchmarks', () => { +describe('tree benchmark detect changes perf', () => { it('should work for detectChanges', async() => { await runTreeBenchmark({ id: 'detectChanges', diff --git a/modules/e2e_util/e2e_util.ts b/modules/e2e_util/e2e_util.ts index d0e9c1e8fd0..6ed2bebed19 100644 --- a/modules/e2e_util/e2e_util.ts +++ b/modules/e2e_util/e2e_util.ts @@ -12,7 +12,7 @@ import {browser} from 'protractor'; const yargs = require('yargs'); import * as webdriver from 'selenium-webdriver'; -let cmdArgs: {'bundles': boolean}; +let cmdArgs: {'bundles': boolean}|undefined; declare var expect: any; @@ -39,7 +39,7 @@ export function openBrowser(config: { browser.ignoreSynchronization = true; } let params = config.params || []; - if (!params.some((param) => param.name === 'bundles')) { + if (cmdArgs !== undefined && !params.some((param) => param.name === 'bundles')) { params = params.concat([{name: 'bundles', value: cmdArgs.bundles}]); }