Mercurial > trustbridge
annotate ui/tests/CMakeLists.txt @ 634:80d1a80b3e8d
Factor out selftest for better test and reviewability
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 23 Jun 2014 16:43:07 +0200 |
parents | cf7e82e91875 |
children | 2fd4f9980a2a |
rev | line source |
---|---|
405
35d6b371ba63
Add License header for CMake and shell scripts
Andre Heinecke <aheinecke@intevation.de>
parents:
331
diff
changeset
|
1 # Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik |
35d6b371ba63
Add License header for CMake and shell scripts
Andre Heinecke <aheinecke@intevation.de>
parents:
331
diff
changeset
|
2 # Software engineering by Intevation GmbH |
35d6b371ba63
Add License header for CMake and shell scripts
Andre Heinecke <aheinecke@intevation.de>
parents:
331
diff
changeset
|
3 # |
35d6b371ba63
Add License header for CMake and shell scripts
Andre Heinecke <aheinecke@intevation.de>
parents:
331
diff
changeset
|
4 # This file is Free Software under the GNU GPL (v>=2) |
35d6b371ba63
Add License header for CMake and shell scripts
Andre Heinecke <aheinecke@intevation.de>
parents:
331
diff
changeset
|
5 # and comes with ABSOLUTELY NO WARRANTY! |
35d6b371ba63
Add License header for CMake and shell scripts
Andre Heinecke <aheinecke@intevation.de>
parents:
331
diff
changeset
|
6 # See LICENSE.txt for details. |
35d6b371ba63
Add License header for CMake and shell scripts
Andre Heinecke <aheinecke@intevation.de>
parents:
331
diff
changeset
|
7 |
7
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
8 set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}) |
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
9 |
304
eecc06f714fd
Add first nsstest.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
298
diff
changeset
|
10 include_directories(${CMAKE_CURRENT_BINARY_DIR} |
eecc06f714fd
Add first nsstest.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
298
diff
changeset
|
11 ${CMAKE_SOURCE_DIR}/ui |
eecc06f714fd
Add first nsstest.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
298
diff
changeset
|
12 ${CMAKE_SOURCE_DIR}/common |
eecc06f714fd
Add first nsstest.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
298
diff
changeset
|
13 ${CMAKE_SOURCE_DIR}/cinst) |
7
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
14 |
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
15 find_package(Qt5Test) |
140
0e9a244e0ede
Added Qt5Test include directory.
Raimund Renkert <rrenkert@intevation.de>
parents:
139
diff
changeset
|
16 include_directories(${Qt5Test_INCLUDE_DIRS}) |
43 | 17 find_program(HIAWATHA_EXECUTABLE hiawatha) |
18 | |
19 if (NOT HIAWATHA_EXECUTABLE) | |
20 message (STATUS "WARNING: hiawatha webserver not found. Downloader tests will fail.") | |
21 else() | |
22 add_definitions(-DHIAWATHA_EXECUTABLE="${HIAWATHA_EXECUTABLE}") | |
23 endif() | |
7
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
24 |
409
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
408
diff
changeset
|
25 macro(add_custom_test _source _additional_sources) |
7
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
26 set(_test ${_source}) |
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
27 get_filename_component(_name ${_source} NAME_WE) |
326
ad28f6b60e6b
Fix nsstest build for windows
Andre Heinecke <aheinecke@intevation.de>
parents:
307
diff
changeset
|
28 set(_test_sources_with_resources ${_test} |
ad28f6b60e6b
Fix nsstest build for windows
Andre Heinecke <aheinecke@intevation.de>
parents:
307
diff
changeset
|
29 "${_additional_sources};${CMAKE_CURRENT_SOURCE_DIR}/common.cpp") |
220
e6c5c70a67b0
Add test for windowsstores
Andre Heinecke <andre.heinecke@intevation.de>
parents:
182
diff
changeset
|
30 qt5_add_resources(_test_sources_with_resources |
e6c5c70a67b0
Add test for windowsstores
Andre Heinecke <andre.heinecke@intevation.de>
parents:
182
diff
changeset
|
31 ${CMAKE_CURRENT_SOURCE_DIR}/data/testdata.qrc) |
e6c5c70a67b0
Add test for windowsstores
Andre Heinecke <andre.heinecke@intevation.de>
parents:
182
diff
changeset
|
32 add_executable(${_name} ${_test_sources_with_resources}) |
409
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
408
diff
changeset
|
33 add_test(tb-${_name} ${_name}) |
496
fa3a7ebf0049
Move some common UI code into a library to avoid recompiling for each test
Andre Heinecke <aheinecke@intevation.de>
parents:
468
diff
changeset
|
34 target_link_libraries(${_name} |
560
3af16cbc961d
Move UI code into librarys to speed up build of unit tests
Andre Heinecke <aheinecke@intevation.de>
parents:
559
diff
changeset
|
35 tbadminlib |
3af16cbc961d
Move UI code into librarys to speed up build of unit tests
Andre Heinecke <aheinecke@intevation.de>
parents:
559
diff
changeset
|
36 tblib |
496
fa3a7ebf0049
Move some common UI code into a library to avoid recompiling for each test
Andre Heinecke <aheinecke@intevation.de>
parents:
468
diff
changeset
|
37 ui_common |
fa3a7ebf0049
Move some common UI code into a library to avoid recompiling for each test
Andre Heinecke <aheinecke@intevation.de>
parents:
468
diff
changeset
|
38 Qt5::Test Qt5::Widgets |
408
ac9e95ef6966
rename m13_common to trustbridge_common
Andre Heinecke <aheinecke@intevation.de>
parents:
407
diff
changeset
|
39 trustbridge_common |
68
8ffbb48528ae
Add certificate installation for windows
Andre Heinecke <aheinecke@intevation.de>
parents:
48
diff
changeset
|
40 ${POLARSSL_LIBRARIES} |
8ffbb48528ae
Add certificate installation for windows
Andre Heinecke <aheinecke@intevation.de>
parents:
48
diff
changeset
|
41 ${EXTRA_STATIC_LIBS}) |
7
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
42 endmacro() |
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
43 |
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
44 # Add the current source dir to the definition |
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
45 # so that it can be used in file names in the tests. |
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
46 add_definitions(-DSOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}") |
560
3af16cbc961d
Move UI code into librarys to speed up build of unit tests
Andre Heinecke <aheinecke@intevation.de>
parents:
559
diff
changeset
|
47 add_custom_test(certlistparsertest.cpp "") |
48
3f8c2d46ded6
Add test for no connection handling
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
48 |
3f8c2d46ded6
Add test for no connection handling
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
49 # Downloader |
139
6232ea0c8438
Check for hiawatha executable before setting and testing downloader resources.
Raimund Renkert <rrenkert@intevation.de>
parents:
109
diff
changeset
|
50 if (HIAWATHA_EXECUTABLE) |
407
af53c40e74b1
Rename m13ui to TrustBridge
Andre Heinecke <aheinecke@intevation.de>
parents:
405
diff
changeset
|
51 qt5_add_resources(DOWNLOADER_SOURCES_WITH_RESOURCES ${TRUSTBRIDGE_RESOURCES}) |
409
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
408
diff
changeset
|
52 add_custom_test(downloadertest.cpp "${DOWNLOADER_SOURCES_WITH_RESOURCES}") |
139
6232ea0c8438
Check for hiawatha executable before setting and testing downloader resources.
Raimund Renkert <rrenkert@intevation.de>
parents:
109
diff
changeset
|
53 endif() |
48
3f8c2d46ded6
Add test for no connection handling
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
54 |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
68
diff
changeset
|
55 # Cinstprocess |
496
fa3a7ebf0049
Move some common UI code into a library to avoid recompiling for each test
Andre Heinecke <aheinecke@intevation.de>
parents:
468
diff
changeset
|
56 add_custom_test(cinstprocesstest.cpp "") |
293
3ae8b3ab3eab
Depend on cinst target for cinsttest
Andre Heinecke <aheinecke@intevation.de>
parents:
240
diff
changeset
|
57 add_dependencies(cinstprocesstest cinst) |
409
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
408
diff
changeset
|
58 add_custom_test(commontest.cpp "") |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
68
diff
changeset
|
59 |
560
3af16cbc961d
Move UI code into librarys to speed up build of unit tests
Andre Heinecke <aheinecke@intevation.de>
parents:
559
diff
changeset
|
60 add_custom_test(createcertlisttest.cpp "") |
3af16cbc961d
Move UI code into librarys to speed up build of unit tests
Andre Heinecke <aheinecke@intevation.de>
parents:
559
diff
changeset
|
61 add_custom_test(mainwindowtest.cpp "") |
468
a53286e5b126
Add failing test for certificate list creation
Andre Heinecke <aheinecke@intevation.de>
parents:
409
diff
changeset
|
62 |
563
aee3eb10bbba
Add unit test for sw update execution and fix shell execute params
Andre Heinecke <aheinecke@intevation.de>
parents:
560
diff
changeset
|
63 # Using fakeinstaller here would cause windows UAC heuristics to trigger |
aee3eb10bbba
Add unit test for sw update execution and fix shell execute params
Andre Heinecke <aheinecke@intevation.de>
parents:
560
diff
changeset
|
64 add_executable(fakeinst fakeinstaller.c) |
aee3eb10bbba
Add unit test for sw update execution and fix shell execute params
Andre Heinecke <aheinecke@intevation.de>
parents:
560
diff
changeset
|
65 |
220
e6c5c70a67b0
Add test for windowsstores
Andre Heinecke <andre.heinecke@intevation.de>
parents:
182
diff
changeset
|
66 if (WIN32) |
496
fa3a7ebf0049
Move some common UI code into a library to avoid recompiling for each test
Andre Heinecke <aheinecke@intevation.de>
parents:
468
diff
changeset
|
67 add_custom_test(windowsstoretest.cpp "${CMAKE_SOURCE_DIR}/cinst/windowsstore.c") |
220
e6c5c70a67b0
Add test for windowsstores
Andre Heinecke <andre.heinecke@intevation.de>
parents:
182
diff
changeset
|
68 endif (WIN32) |
e6c5c70a67b0
Add test for windowsstores
Andre Heinecke <andre.heinecke@intevation.de>
parents:
182
diff
changeset
|
69 |
307
2fd69803d219
Complete InstRemove NSS test
Andre Heinecke <andre.heinecke@intevation.de>
parents:
305
diff
changeset
|
70 if (NSS_FOUND) |
326
ad28f6b60e6b
Fix nsstest build for windows
Andre Heinecke <aheinecke@intevation.de>
parents:
307
diff
changeset
|
71 include_directories(${NSS_INCLUDE_DIRS}) |
331
455d6d00e896
Break long line of nsstest sources
Andre Heinecke <aheinecke@intevation.de>
parents:
326
diff
changeset
|
72 set(NSSTEST_SOURCES |
455d6d00e896
Break long line of nsstest sources
Andre Heinecke <aheinecke@intevation.de>
parents:
326
diff
changeset
|
73 ${CMAKE_SOURCE_DIR}/cinst/nssstore_linux.c |
455d6d00e896
Break long line of nsstest sources
Andre Heinecke <aheinecke@intevation.de>
parents:
326
diff
changeset
|
74 ${CMAKE_SOURCE_DIR}/cinst/nssstore_win.c) |
409
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
408
diff
changeset
|
75 add_custom_test(nsstest.cpp "${NSSTEST_SOURCES}") |
326
ad28f6b60e6b
Fix nsstest build for windows
Andre Heinecke <aheinecke@intevation.de>
parents:
307
diff
changeset
|
76 target_link_libraries(nsstest ${NSS_LIBRARIES}) |
ad28f6b60e6b
Fix nsstest build for windows
Andre Heinecke <aheinecke@intevation.de>
parents:
307
diff
changeset
|
77 if (WIN32) |
ad28f6b60e6b
Fix nsstest build for windows
Andre Heinecke <aheinecke@intevation.de>
parents:
307
diff
changeset
|
78 target_link_libraries(nsstest -luserenv) |
ad28f6b60e6b
Fix nsstest build for windows
Andre Heinecke <aheinecke@intevation.de>
parents:
307
diff
changeset
|
79 endif() |
ad28f6b60e6b
Fix nsstest build for windows
Andre Heinecke <aheinecke@intevation.de>
parents:
307
diff
changeset
|
80 |
ad28f6b60e6b
Fix nsstest build for windows
Andre Heinecke <aheinecke@intevation.de>
parents:
307
diff
changeset
|
81 add_dependencies(nsstest mozilla) |
556
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
82 |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
83 # NSS code searches the mozilla process in the same path as the caller |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
84 if (WIN32) |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
85 file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/mozilla.exe" link) |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
86 file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/../../cinst/mozilla.exe" target) |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
87 else() |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
88 file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/mozilla" link) |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
89 file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/../../cinst/mozilla" target) |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
90 endif() |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
91 |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
92 if (NOT EXISTS ${link}) |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
93 if (CMAKE_HOST_UNIX) |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
94 set(command ln -s ${target} ${link}) |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
95 else() |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
96 set(command cmd.exe /c mklink ${link} ${target}) |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
97 endif() |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
98 execute_process(COMMAND ${command} |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
99 RESULT_VARIABLE result |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
100 ERROR_VARIABLE output) |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
101 if (NOT ${result} EQUAL 0) |
580
cf7e82e91875
Do not fail when creating the link fails. Just warn.
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
102 message(STATUS "Could not create symbolic link for: ${target} --> ${output}. NSS Test might fail.") |
556
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
103 endif() |
5dc4aa684c63
Symlink mozilla executable into the test directory
Andre Heinecke <aheinecke@intevation.de>
parents:
527
diff
changeset
|
104 endif() |
307
2fd69803d219
Complete InstRemove NSS test
Andre Heinecke <andre.heinecke@intevation.de>
parents:
305
diff
changeset
|
105 endif() |
304
eecc06f714fd
Add first nsstest.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
298
diff
changeset
|
106 |
409
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
408
diff
changeset
|
107 #add_custom_test(${CMAKE_SOURCE_DIR}/ui/main.cpp "${TRUSTBRIDGE_SOURCES}") |
7
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
108 |