Merge lp:~allanlesage/unity-scope-click/enable-coverage-reporting-refreshed into lp:unity-scope-click
- enable-coverage-reporting-refreshed
- Merge into trunk
Status: | Superseded | ||||
---|---|---|---|---|---|
Proposed branch: | lp:~allanlesage/unity-scope-click/enable-coverage-reporting-refreshed | ||||
Merge into: | lp:unity-scope-click | ||||
Diff against target: |
312 lines (+271/-0) 5 files modified
CMakeLists.txt (+20/-0) cmake/EnableCoverageReport.cmake (+158/-0) cmake/FindLcov.cmake (+35/-0) cmake/Findgcovr.cmake (+43/-0) debian/copyright (+15/-0) |
||||
To merge this branch: | bzr merge lp:~allanlesage/unity-scope-click/enable-coverage-reporting-refreshed | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot | continuous-integration | Needs Fixing | |
dobey | Pending | ||
Review via email: mp+218164@code.launchpad.net |
This proposal supersedes a proposal from 2014-04-10.
Commit message
Description of the change
Here we're adding some CMake tooling to aid in the generation of coverage reports. As described in the top-level CMakeLists.txt, after you've make and make test'ed, try make coverage and look for a coveragereport dir with html files in your build dir.
Note that you'll need a couple of dependencies, esp. lcov and gcovr --note that unity8 and mir have elected not to make these part of the debian/control deps. Also note that this method is borrowed wholesale from those projects and others, with some adaptation for your project.
We have some good tests to build on here :) , maybe the html view will help.
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
dobey (dobey) wrote : Posted in a previous version of this proposal | # |
Please use "bzr commit unchanged --fixes=lp:1305180" so that bug #1305180 is linked to the branch.
dobey (dobey) : Posted in a previous version of this proposal | # |
Allan LeSage (allanlesage) wrote : Posted in a previous version of this proposal | # |
Done; sorry for the delay :) .
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:210
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
dobey (dobey) wrote : Posted in a previous version of this proposal | # |
As unity-scope-click is under the CLA, and is distributed as GPLv3+OpenSSL exception, I wonder if we can include this, given the cmake module being copy/pasted here is GPLv2+ without such an exception.
Is there any reason we cannot package the bits being added under cmake/ as a separate project/package in Ubuntu, which all our projects depend on? It will make updating for any changes much easier, and will not introduce such copyright/license conflicts in the distribution of the source.
Also, where is the ParseArguments.
I'm basically OK with the changes that enable the feature, but I think we need to ship the actual cmake module separately as its own package.
Allan LeSage (allanlesage) wrote : Posted in a previous version of this proposal | # |
I've long wanted to find the means to do this, but I'm wondering to where our CMake coverage bits would be shipped? I may need some instructio-
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:211
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
Allan LeSage (allanlesage) wrote : Posted in a previous version of this proposal | # |
Switched to the standard CMake argument parsing macro per dobey's suggestion.
Rodney, do lines 67-8 resolve your licensing concern?
Lastly can you provide some instruction on packaging these CMake files? I.e. does a standard archive exist already for such, and how are they invoked, etc.?
dobey (dobey) wrote : Posted in a previous version of this proposal | # |
> Rodney, do lines 67-8 resolve your licensing concern?
Not really. The license is still different from the rest of the code we ship. And we cannot add the OpenSSL exception clause to this license. With the other file, which had no copyright/license info at all, gone from the branch, the licensing is at least something we are legally allowed to redistribute (and change) now. It just means shipping things under different licenses, in the same source, and having to deal with managing any necessary changes to these files across several projects, versus a central source for it.
> Lastly can you provide some instruction on packaging these CMake files? I.e.
> does a standard archive exist already for such, and how are they invoked,
> etc.?
On Ubuntu at least, cmake-data and qtbase5-dev include the majority of cmake modules. The Qt ones are shipped by Qt, and not cmake. I'm not sure why these haven't been included in upstream cmake already, but getting them accepted there would be one way to get them packaged centrally. Another option would be inside the gcovr/lcov packages, if the licensing allows for it. And another option would be to simply place them in their own package, cmake-coverage or something, which only ships these files.
dobey (dobey) wrote : Posted in a previous version of this proposal | # |
17 +include(
Can you include a comment next to this, in the form of "# Using gcov cmake modules from https:/
Also, can you please update debian/copyright to add the necessary bits for the cmake/*.cmake files, which are not (C) Canonical, and which are GPLv2+ rather than GPLv3+OpenSSL?
Allan LeSage (allanlesage) wrote : | # |
Resubmitted under a fresh branch based on devel per dobey's req, updating to the most recent upstream versions of these macros and registering the proper license in debian/copyright, with requested notes.
Note that our version of EnableCoverageR
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:238
No commit message was specified in the merge proposal. Click on the following link and set the commit message (if you want a jenkins rebuild you need to trigger it yourself):
https:/
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 239. By Allan LeSage
-
Correct Wienke copyright to 2010-2012, correct cor-lab.org URL.
- 240. By Allan LeSage
-
Coverage tooling origin comment http->https per dobey req.
Unmerged revisions
Preview Diff
1 | === modified file 'CMakeLists.txt' |
2 | --- CMakeLists.txt 2014-04-30 16:00:10 +0000 |
3 | +++ CMakeLists.txt 2014-05-02 22:12:55 +0000 |
4 | @@ -10,6 +10,8 @@ |
5 | SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -g -Wall -Wextra -Werror -fPIC") |
6 | SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O2 -g -Wextra -Wall -Werror -fPIC") |
7 | |
8 | +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) |
9 | + |
10 | include(GNUInstallDirs) |
11 | |
12 | set(SCOPE_LIB_DIR ${CMAKE_INSTALL_FULL_LIBDIR}/unity-scopes/clickscope/) |
13 | @@ -38,6 +40,24 @@ |
14 | add_subdirectory(data) |
15 | add_subdirectory(po) |
16 | |
17 | +include(EnableCoverageReport) # Using gcov CMake modules from http://code.cor-lab/projects/rsc |
18 | +##################################################################### |
19 | +# Enable code coverage calculation with gcov/gcovr/lcov |
20 | +# Usage: |
21 | +# * Switch build type to coverage (use ccmake or cmake-gui) |
22 | +# * Invoke make, make test, make coverage (or ninja if you use that backend) |
23 | +# * Find html report in subdir coveragereport |
24 | +# * Find xml report feasible for jenkins in coverage.xml |
25 | +##################################################################### |
26 | +string(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_lower) |
27 | +if(cmake_build_type_lower MATCHES coverage) |
28 | + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage" ) |
29 | + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage" ) |
30 | + set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} --coverage" ) |
31 | + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --coverage" ) |
32 | + ENABLE_COVERAGE_REPORT(TARGETS ${SCOPE_LIB_UNVERSIONED} FILTER /usr/include ${CMAKE_SOURCE_DIR}/tests/* ${CMAKE_BINARY_DIR}/*) |
33 | +endif() |
34 | + |
35 | # Custom targets for the tests |
36 | add_custom_target (test |
37 | DEPENDS test-click-scope |
38 | |
39 | === added directory 'cmake' |
40 | === added file 'cmake/EnableCoverageReport.cmake' |
41 | --- cmake/EnableCoverageReport.cmake 1970-01-01 00:00:00 +0000 |
42 | +++ cmake/EnableCoverageReport.cmake 2014-05-02 22:12:55 +0000 |
43 | @@ -0,0 +1,158 @@ |
44 | +# - Creates a special coverage build type and target on GCC. |
45 | +# |
46 | +# Defines a function ENABLE_COVERAGE_REPORT which generates the coverage target |
47 | +# for selected targets. Optional arguments to this function are used to filter |
48 | +# unwanted results using globbing expressions. Moreover targets with tests for |
49 | +# the source code can be specified to trigger regenerating the report if the |
50 | +# test has changed |
51 | +# |
52 | +# ENABLE_COVERAGE_REPORT(TARGETS target... [FILTER filter...] [TESTS test targets...]) |
53 | +# |
54 | +# To generate a coverage report first build the project with |
55 | +# CMAKE_BUILD_TYPE=coverage, then call make test and afterwards make coverage. |
56 | +# |
57 | +# The coverage report is based on gcov. Depending on the availability of lcov |
58 | +# a HTML report will be generated and/or an XML report of gcovr is found. |
59 | +# The generated coverage target executes all found solutions. Special targets |
60 | +# exist to create e.g. only the xml report: coverage-xml. |
61 | +# |
62 | +# Copyright (C) 2010 by Johannes Wienke <jwienke at techfak dot uni-bielefeld dot de> |
63 | +# |
64 | +# This file may be licensed under the terms of the |
65 | +# GNU Lesser General Public License Version 3 (the ``LGPL''), |
66 | +# or (at your option) any later version. |
67 | +# |
68 | +# Software distributed under the License is distributed |
69 | +# on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either |
70 | +# express or implied. See the LGPL for the specific language |
71 | +# governing rights and limitations. |
72 | +# |
73 | +# You should have received a copy of the LGPL along with this |
74 | +# program. If not, go to http://www.gnu.org/licenses/lgpl.html |
75 | +# or write to the Free Software Foundation, Inc., |
76 | +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
77 | +# |
78 | +# The development of this software was supported by: |
79 | +# CoR-Lab, Research Institute for Cognition and Robotics |
80 | +# Bielefeld University |
81 | + |
82 | +FIND_PACKAGE(Lcov) |
83 | +FIND_PACKAGE(gcovr) |
84 | + |
85 | +FUNCTION(ENABLE_COVERAGE_REPORT) |
86 | + |
87 | + # argument parsing |
88 | + SET(MULTI_VALUE_ARGS FILTER TARGETS TESTS) |
89 | + CMAKE_PARSE_ARGUMENTS(ENABLE_COVERAGE_REPORT "" "" "${MULTI_VALUE_ARGS}" ${ARGN}) |
90 | + |
91 | + SET(COVERAGE_RAW_FILE "${CMAKE_BINARY_DIR}/coverage.raw.info") |
92 | + SET(COVERAGE_FILTERED_FILE "${CMAKE_BINARY_DIR}/coverage.info") |
93 | + SET(COVERAGE_REPORT_DIR "${CMAKE_BINARY_DIR}/coveragereport") |
94 | + SET(COVERAGE_XML_FILE "${CMAKE_BINARY_DIR}/coverage.xml") |
95 | + SET(COVERAGE_XML_COMMAND_FILE "${CMAKE_BINARY_DIR}/coverage-xml.cmake") |
96 | + |
97 | + # decide if there is any tool to create coverage data |
98 | + SET(TOOL_FOUND FALSE) |
99 | + IF(LCOV_FOUND OR GCOVR_FOUND) |
100 | + SET(TOOL_FOUND TRUE) |
101 | + ENDIF() |
102 | + IF(NOT TOOL_FOUND) |
103 | + MESSAGE(STATUS "Cannot enable coverage targets because neither lcov nor gcovr are found.") |
104 | + ENDIF() |
105 | + |
106 | + STRING(TOLOWER "${CMAKE_BUILD_TYPE}" COVERAGE_BUILD_TYPE) |
107 | + IF(CMAKE_COMPILER_IS_GNUCXX AND TOOL_FOUND AND "${COVERAGE_BUILD_TYPE}" MATCHES "coverage") |
108 | + |
109 | + MESSAGE(STATUS "Coverage support enabled for targets: ${ENABLE_COVERAGE_REPORT_TARGETS}") |
110 | + |
111 | + # create coverage build type |
112 | + SET(CMAKE_CXX_FLAGS_COVERAGE ${CMAKE_CXX_FLAGS_DEBUG} PARENT_SCOPE) |
113 | + SET(CMAKE_C_FLAGS_COVERAGE ${CMAKE_C_FLAGS_DEBUG} PARENT_SCOPE) |
114 | + SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_CONFIGURATION_TYPES} coverage PARENT_SCOPE) |
115 | + |
116 | + # instrument targets |
117 | + SET_TARGET_PROPERTIES(${ENABLE_COVERAGE_REPORT_TARGETS} PROPERTIES COMPILE_FLAGS --coverage |
118 | + LINK_FLAGS --coverage) |
119 | + |
120 | + # html report |
121 | + IF (LCOV_FOUND) |
122 | + |
123 | + MESSAGE(STATUS "Enabling HTML coverage report") |
124 | + |
125 | + # set up coverage target |
126 | + |
127 | + ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_RAW_FILE} |
128 | + COMMAND ${LCOV_EXECUTABLE} -c -d ${CMAKE_BINARY_DIR} -o ${COVERAGE_RAW_FILE} |
129 | + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} |
130 | + COMMENT "Collecting coverage data" |
131 | + DEPENDS ${ENABLE_COVERAGE_REPORT_TARGETS} ${ENABLE_COVERAGE_REPORT_TESTS} |
132 | + VERBATIM) |
133 | + |
134 | + # filter unwanted stuff |
135 | + LIST(LENGTH ENABLE_COVERAGE_REPORT_FILTER FILTER_LENGTH) |
136 | + IF(${FILTER_LENGTH} GREATER 0) |
137 | + SET(FILTER COMMAND ${LCOV_EXECUTABLE}) |
138 | + FOREACH(F ${ENABLE_COVERAGE_REPORT_FILTER}) |
139 | + SET(FILTER ${FILTER} -r ${COVERAGE_FILTERED_FILE} ${F}) |
140 | + ENDFOREACH() |
141 | + SET(FILTER ${FILTER} -o ${COVERAGE_FILTERED_FILE}) |
142 | + ELSE() |
143 | + SET(FILTER "") |
144 | + ENDIF() |
145 | + |
146 | + ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_FILTERED_FILE} |
147 | + COMMAND ${LCOV_EXECUTABLE} -e ${COVERAGE_RAW_FILE} "${CMAKE_SOURCE_DIR}*" -o ${COVERAGE_FILTERED_FILE} |
148 | + ${FILTER} |
149 | + DEPENDS ${COVERAGE_RAW_FILE} |
150 | + COMMENT "Filtering recorded coverage data for project-relevant entries" |
151 | + VERBATIM) |
152 | + ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_REPORT_DIR} |
153 | + COMMAND ${CMAKE_COMMAND} -E make_directory ${COVERAGE_REPORT_DIR} |
154 | + COMMAND ${GENHTML_EXECUTABLE} --legend --show-details -t "${PROJECT_NAME} test coverage" -o ${COVERAGE_REPORT_DIR} ${COVERAGE_FILTERED_FILE} |
155 | + DEPENDS ${COVERAGE_FILTERED_FILE} |
156 | + COMMENT "Generating HTML coverage report in ${COVERAGE_REPORT_DIR}" |
157 | + VERBATIM) |
158 | + |
159 | + ADD_CUSTOM_TARGET(coverage-html |
160 | + DEPENDS ${COVERAGE_REPORT_DIR}) |
161 | + |
162 | + ENDIF() |
163 | + |
164 | + # xml coverage report |
165 | + IF(GCOVR_FOUND) |
166 | + |
167 | + MESSAGE(STATUS "Enabling XML coverage report") |
168 | + |
169 | + # gcovr cannot write directly to a file so the execution needs to |
170 | + # be wrapped in a cmake file that generates the file output |
171 | + FILE(WRITE ${COVERAGE_XML_COMMAND_FILE} |
172 | + "SET(ENV{LANG} en)\n") |
173 | + FILE(APPEND ${COVERAGE_XML_COMMAND_FILE} |
174 | + "EXECUTE_PROCESS(COMMAND \"${GCOVR_EXECUTABLE}\" -x -r \"${CMAKE_SOURCE_DIR}\" OUTPUT_FILE \"${COVERAGE_XML_FILE}\" WORKING_DIRECTORY \"${CMAKE_BINARY_DIR}\")\n") |
175 | + |
176 | + ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_XML_FILE} |
177 | + COMMAND ${CMAKE_COMMAND} ARGS -P ${COVERAGE_XML_COMMAND_FILE} |
178 | + COMMENT "Generating coverage XML report" |
179 | + VERBATIM) |
180 | + |
181 | + ADD_CUSTOM_TARGET(coverage-xml |
182 | + DEPENDS ${COVERAGE_XML_FILE}) |
183 | + |
184 | + ENDIF() |
185 | + |
186 | + # provide a global coverage target executing both steps if available |
187 | + SET(GLOBAL_DEPENDS "") |
188 | + IF(LCOV_FOUND) |
189 | + LIST(APPEND GLOBAL_DEPENDS ${COVERAGE_REPORT_DIR}) |
190 | + ENDIF() |
191 | + IF(GCOVR_FOUND) |
192 | + LIST(APPEND GLOBAL_DEPENDS ${COVERAGE_XML_FILE}) |
193 | + ENDIF() |
194 | + IF(LCOV_FOUND OR GCOVR_FOUND) |
195 | + ADD_CUSTOM_TARGET(coverage |
196 | + DEPENDS ${GLOBAL_DEPENDS}) |
197 | + ENDIF() |
198 | + |
199 | + ENDIF() |
200 | + |
201 | +ENDFUNCTION() |
202 | |
203 | === added file 'cmake/FindLcov.cmake' |
204 | --- cmake/FindLcov.cmake 1970-01-01 00:00:00 +0000 |
205 | +++ cmake/FindLcov.cmake 2014-05-02 22:12:55 +0000 |
206 | @@ -0,0 +1,35 @@ |
207 | +# - Find lcov |
208 | +# Will define: |
209 | +# |
210 | +# LCOV_EXECUTABLE - the lcov binary |
211 | +# GENHTML_EXECUTABLE - the genhtml executable |
212 | +# |
213 | +# Copyright (C) 2010 by Johannes Wienke <jwienke at techfak dot uni-bielefeld dot de> |
214 | +# |
215 | +# This file may be licensed under the terms of the |
216 | +# GNU Lesser General Public License Version 3 (the ``LGPL''), |
217 | +# or (at your option) any later version. |
218 | +# |
219 | +# Software distributed under the License is distributed |
220 | +# on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either |
221 | +# express or implied. See the LGPL for the specific language |
222 | +# governing rights and limitations. |
223 | +# |
224 | +# You should have received a copy of the LGPL along with this |
225 | +# program. If not, go to http://www.gnu.org/licenses/lgpl.html |
226 | +# or write to the Free Software Foundation, Inc., |
227 | +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
228 | +# |
229 | +# The development of this software was supported by: |
230 | +# CoR-Lab, Research Institute for Cognition and Robotics |
231 | +# Bielefeld University |
232 | + |
233 | +INCLUDE(FindPackageHandleStandardArgs) |
234 | + |
235 | +FIND_PROGRAM(LCOV_EXECUTABLE lcov) |
236 | +FIND_PROGRAM(GENHTML_EXECUTABLE genhtml) |
237 | + |
238 | +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lcov DEFAULT_MSG LCOV_EXECUTABLE GENHTML_EXECUTABLE) |
239 | + |
240 | +# only visible in advanced view |
241 | +MARK_AS_ADVANCED(LCOV_EXECUTABLE GENHTML_EXECUTABLE) |
242 | |
243 | === added file 'cmake/Findgcovr.cmake' |
244 | --- cmake/Findgcovr.cmake 1970-01-01 00:00:00 +0000 |
245 | +++ cmake/Findgcovr.cmake 2014-05-02 22:12:55 +0000 |
246 | @@ -0,0 +1,43 @@ |
247 | +# - Find gcovr scrip |
248 | +# Will define: |
249 | +# |
250 | +# GCOVR_EXECUTABLE - the gcovr script |
251 | +# |
252 | +# Uses: |
253 | +# |
254 | +# GCOVR_ROOT - root to search for the script |
255 | +# |
256 | +# Copyright (C) 2011 by Johannes Wienke <jwienke at techfak dot uni-bielefeld dot de> |
257 | +# |
258 | +# This file may be licensed under the terms of the |
259 | +# GNU Lesser General Public License Version 3 (the ``LGPL''), |
260 | +# or (at your option) any later version. |
261 | +# |
262 | +# Software distributed under the License is distributed |
263 | +# on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either |
264 | +# express or implied. See the LGPL for the specific language |
265 | +# governing rights and limitations. |
266 | +# |
267 | +# You should have received a copy of the LGPL along with this |
268 | +# program. If not, go to http://www.gnu.org/licenses/lgpl.html |
269 | +# or write to the Free Software Foundation, Inc., |
270 | +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
271 | +# |
272 | +# The development of this software was supported by: |
273 | +# CoR-Lab, Research Institute for Cognition and Robotics |
274 | +# Bielefeld University |
275 | + |
276 | +INCLUDE(FindPackageHandleStandardArgs) |
277 | + |
278 | +FIND_PROGRAM(GCOVR_EXECUTABLE gcovr |
279 | + HINTS ${GCOVR_ROOT} |
280 | + "${GCOVR_ROOT}/bin" |
281 | + "${GCOVR_ROOT}/share/python" |
282 | + "/usr/share/python" |
283 | + "/usr/local/share/python" |
284 | + "${CMAKE_INSTALL_PREFIX}/share/python") |
285 | + |
286 | +FIND_PACKAGE_HANDLE_STANDARD_ARGS(gcovr DEFAULT_MSG GCOVR_EXECUTABLE) |
287 | + |
288 | +# only visible in advanced view |
289 | +MARK_AS_ADVANCED(GCOVR_EXECUTABLE) |
290 | |
291 | === modified file 'debian/copyright' |
292 | --- debian/copyright 2014-03-24 19:18:13 +0000 |
293 | +++ debian/copyright 2014-05-02 22:12:55 +0000 |
294 | @@ -18,3 +18,18 @@ |
295 | . |
296 | On Debian/Ubuntu systems, the full text of the GPL v3 can be found in |
297 | `/usr/share/common-licenses/GPL-3' |
298 | + |
299 | +Files: cmake/EnableCoverageReport.cmake cmake/Findgcovr.cmake cmake/FindLcov.cmake |
300 | +Copyright: 2010 Johannes Wienke |
301 | +License: LGPL-3 |
302 | + This file may be licensed under the terms of the |
303 | + GNU Lesser General Public License Version 3 (the ``LGPL''), |
304 | + or (at your option) any later version. |
305 | + . |
306 | + Software distributed under the License is distributed |
307 | + on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either |
308 | + express or implied. See the LGPL for the specific language |
309 | + governing rights and limitations. |
310 | + . |
311 | + On Debian/Ubuntu systems, the full text of the LGPL v3 can be found in |
312 | + `/usr/share/common-licenses/LGPL-3' |
FAILED: Continuous integration, rev:209 /code.launchpad .net/~allanlesa ge/unity- scope-click/ enable- coverage- reporting/ +merge/ 215319/ +edit-commit- message
No commit message was specified in the merge proposal. Click on the following link and set the commit message (if you want a jenkins rebuild you need to trigger it yourself):
https:/
http:// jenkins. qa.ubuntu. com/job/ unity-scope- click-ci/ 428/ jenkins. qa.ubuntu. com/job/ unity-scope- click-trusty- amd64-ci/ 329 jenkins. qa.ubuntu. com/job/ unity-scope- click-trusty- armhf-ci/ 326 jenkins. qa.ubuntu. com/job/ unity-scope- click-trusty- armhf-ci/ 326/artifact/ work/output/ *zip*/output. zip
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/unity- scope-click- ci/428/ rebuild
http://