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 8b7a3f78e0..1dfe1345ba 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 1c48ea441c..c213e6b90d 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 0000000000..67bcd89ab2 --- /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 37cf09c97d..082e0a219b 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 0000000000..a91f4fde2e --- /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 1210745425..b297d0455f 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 17795aef4f..51db615c78 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 cc00b3f5b8..dad5717e86 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 598023d11e..8c8398db7e 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 101abd7747..6d63f067d3 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 4b2719162a..841a298e6c 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 0000000000..2e3f1a0e76 --- /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 6e9bdfe788..de90152786 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 c45828fb28..b52ad6b173 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 ca73d1c71a..555ecab562 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 14def7df43..ab6f33646d 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 3a7c4d5f01..f7d87e038a 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 a984c896b8..7a6b37ef3d 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 a4cf28a9bb..b99a6d5839 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 762eb1af0b..f7efff307a 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 87c9dcf3e9..b9d4a71f66 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 fb4c652fac..9765e5b1ea 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 1157a1ef7e..a678099e4d 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 42857ef098..99167f1cb1 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 4963ab9841..4c1e8cb933 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 4864135e35..ecfad4e8b9 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 3a9145142c..da9ec7ecb2 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 0000000000..0f9c2963cf --- /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 0000000000..b85d8a71c5 --- /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 1b4881c5e3..74d02e019f 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 9b744d2bac..822491e619 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 d0e9c1e8fd..6ed2bebed1 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}]); }