Mir

Merge lp:~vanvugt/mir/generalise-performance-tests into lp:mir

Proposed by Daniel van Vugt
Status: Merged
Approved by: Daniel van Vugt
Approved revision: no longer in the source branch.
Merged at revision: 3477
Proposed branch: lp:~vanvugt/mir/generalise-performance-tests
Merge into: lp:mir
Diff against target: 97 lines (+52/-16)
3 files modified
debian/mir-test-tools.install (+1/-0)
tests/performance-tests/CMakeLists.txt (+9/-16)
tests/performance-tests/performance_tests.sh (+42/-0)
To merge this branch: bzr merge lp:~vanvugt/mir/generalise-performance-tests
Reviewer Review Type Date Requested Status
Alan Griffiths Needs Information
Kevin DuBois (community) Abstain
Cemil Azizoglu (community) Approve
Mir CI Bot continuous-integration Approve
Review via email: mp+292600@code.launchpad.net

Commit message

Generalise performance tests:
  * Rename mir_performance_tests to mir_glmark2_performance_test to
    show it is just a client performance test; and
  * Add a replacement script 'mir_performance_tests' that executes
    the old test but also will launch other performance tests in
    future.

To post a comment you must log in.
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3473
https://mir-jenkins.ubuntu.com/job/mir-ci/886/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/918/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/957
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/948
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/948
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/928/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/928
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/928/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/928
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/928/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/928
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/928/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/928/console

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/886/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3474
https://mir-jenkins.ubuntu.com/job/mir-ci/888/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/920/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/959
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/950
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/950
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/930
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/930/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/930
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/930/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/930
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/930/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/930
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/930/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/930/console

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/888/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3475
https://mir-jenkins.ubuntu.com/job/mir-ci/889/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/921
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/960
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/951
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/951
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/931
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/931/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/931
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/931/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/931
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/931/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/931
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/931/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/931
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/931/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/889/rebuild

review: Approve (continuous-integration)
Revision history for this message
Cemil Azizoglu (cemil-azizoglu) wrote :

lgtm

review: Approve
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

*Needs Discussion*

I would have expected additional performance tests to be added to mir_performance_tests. I.e. not placed in separate executables. Googletest provides a better infrastructure for collating and/or selecting tests than this script.

Do we really want to do something different?

review: Needs Information
Revision history for this message
Kevin DuBois (kdub) wrote :

IMO, its a bit cleaner and more cohesive to roll things into gtest, but I don't mind a shell script either. I suppose abstain, as I'd rather it still be called mir_performance_test (we don't need to say .sh)

review: Abstain
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

gtest is not appropriate for a couple of reasons:

  1. It's not a convenient launchpad for non-C/C++ external performance tests.
  2. It doesn't work at all for the Android platform: bug 1546912

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

By my reading, bug 1546912 only limits starting the server in-process. That is inconvenient, but hardly "gtest doesn't work at all".

I still question whether we really need performance tests written in c++, python and bash.

review: Needs Information

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/mir-test-tools.install'
2--- debian/mir-test-tools.install 2016-03-29 17:02:43 +0000
3+++ debian/mir-test-tools.install 2016-04-22 05:11:19 +0000
4@@ -5,6 +5,7 @@
5 usr/bin/mir_umock_acceptance_tests
6 usr/bin/mir_integration_tests*
7 usr/bin/mir_performance_tests
8+usr/bin/mir_glmark2_performance_test
9 usr/bin/mir_privileged_tests
10 usr/bin/mir_test_reload_protobuf
11 usr/bin/mir_test_client_*
12
13=== modified file 'tests/performance-tests/CMakeLists.txt'
14--- tests/performance-tests/CMakeLists.txt 2015-06-17 05:20:42 +0000
15+++ tests/performance-tests/CMakeLists.txt 2016-04-22 05:11:19 +0000
16@@ -1,25 +1,18 @@
17-set(
18- PERFORMANCE_TESTS_SOURCES
19+add_custom_target(mir_performance_tests ALL
20+ cp ${CMAKE_CURRENT_SOURCE_DIR}/performance_tests.sh ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/mir_performance_tests
21+)
22+install(PROGRAMS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/mir_performance_tests
23+ DESTINATION ${CMAKE_INSTALL_BINDIR}
24+)
25
26+mir_add_wrapped_executable(mir_glmark2_performance_test
27 test_glmark2-es2-mir.cpp
28 )
29-
30-mir_add_wrapped_executable(
31- mir_performance_tests
32-
33- ${PERFORMANCE_TESTS_SOURCES}
34-)
35-
36-add_dependencies(mir_performance_tests GMock)
37-
38-target_link_libraries(
39- mir_performance_tests
40-
41+add_dependencies(mir_glmark2_performance_test GMock)
42+target_link_libraries(mir_glmark2_performance_test
43 mir-test-static
44 mir-test-framework-static
45 mir-test-doubles-static
46 mirserver
47-
48 ${GTEST_BOTH_LIBRARIES}
49 )
50-
51
52=== added file 'tests/performance-tests/performance_tests.sh'
53--- tests/performance-tests/performance_tests.sh 1970-01-01 00:00:00 +0000
54+++ tests/performance-tests/performance_tests.sh 2016-04-22 05:11:19 +0000
55@@ -0,0 +1,42 @@
56+#!/bin/sh
57+#
58+# Copyright © 2016 Canonical Ltd.
59+#
60+# This program is free software: you can redistribute it and/or modify
61+# it under the terms of the GNU General Public License version 3 as
62+# published by the Free Software Foundation.
63+#
64+# This program is distributed in the hope that it will be useful,
65+# but WITHOUT ANY WARRANTY; without even the implied warranty of
66+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
67+# GNU General Public License for more details.
68+#
69+# You should have received a copy of the GNU General Public License
70+# along with this program. If not, see <http://www.gnu.org/licenses/>.
71+#
72+# Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
73+#
74+
75+### This is a wrapper script that runs all Mir's performance tests ###
76+
77+bin_dir=`dirname $0`
78+
79+title_banner()
80+{
81+ echo "======================================================================="
82+ echo "| $*"
83+ echo "======================================================================="
84+}
85+
86+tests_run=0
87+failures=0
88+for perf_test in mir_glmark2_performance_test
89+do
90+ title_banner "Mir Performance Tests now running: $perf_test"
91+ tests_run=$(($tests_run + 1))
92+ $bin_dir/$perf_test || failures=$(($failures + 1))
93+done
94+
95+passes=$(($tests_run - $failures))
96+title_banner "Mir Performance Tests ran $tests_run tests: $passes passed, $failures failed."
97+return $failures

Subscribers

People subscribed via source and target branches