Merge branch 'my-dbus-1.2'
[platform/upstream/dbus.git] / cmake / test / CMakeLists.txt
1 project(test)
2
3 #if HAVE_GLIB
4 #    GLIB_SUBDIR=glib
5 #endif
6 #if HAVE_PYTHON
7 #    PYTHON_SUBDIR=python
8 #endif
9 #if HAVE_QTESTLIB
10 #    QT_SUBDIR=qt
11 #endif
12
13 add_subdirectory( name-test )
14
15 #SUBDIRS=name-test $(GLIB_SUBDIR) $(PYTHON_SUBDIR) $(QT_SUBDIR)
16 #DIST_SUBDIRS=glib python qt name-test
17
18 #INCLUDES=-I$(top_srcdir) $(DBUS_test-CFLAGS) 
19
20 #if (DBUS_BUILD_TESTS)
21 ## break-loader removed for now
22 #test-BINARIES=test-service test-names test-shell-service shell-test spawn-test test-segfault test-exit test-sleep-forever
23
24 #enable stand alone make check test
25 #TESTS=shell-test
26 #else
27 #test-BINARIES=
28 #TESTS=
29 #endif
30
31 #if DBUS_GCOV_ENABLED
32 #GCOV_BINARIES=decode-gcov
33 #else
34 #GCOV_BINARIES=
35 #endif
36
37 set (test-service_SOURCES
38         ${CMAKE_SOURCE_DIR}/../test/test-service.c                              
39         ${CMAKE_SOURCE_DIR}/../test/test-utils.c                                
40         ${CMAKE_SOURCE_DIR}/../test/test-utils.h
41 )
42
43 set (test-names_SOURCES
44         ${CMAKE_SOURCE_DIR}/../test/test-names.c                                
45         ${CMAKE_SOURCE_DIR}/../test/test-utils.c                                
46         ${CMAKE_SOURCE_DIR}/../test/test-utils.h
47 )
48
49 set (break_loader_SOURCES
50         ${CMAKE_SOURCE_DIR}/../test/break-loader.c
51 )
52
53 set (test-shell-service_SOURCES
54         ${CMAKE_SOURCE_DIR}/../test/test-shell-service.c                        
55         ${CMAKE_SOURCE_DIR}/../test/test-utils.c                                
56         ${CMAKE_SOURCE_DIR}/../test/test-utils.h
57 )
58
59 set (shell-test_SOURCES
60         ${CMAKE_SOURCE_DIR}/../test/shell-test.c
61 )
62
63 set (spawn-test_SOURCES
64         ${CMAKE_SOURCE_DIR}/../test/spawn-test.c
65 )
66
67 set (test-exit_SOURCES
68         ${CMAKE_SOURCE_DIR}/../test/test-exit.c
69 )
70
71 set (test-segfault_SOURCES
72         ${CMAKE_SOURCE_DIR}/../test/test-segfault.c
73 )
74
75 set (test-sleep-forever_SOURCES
76         ${CMAKE_SOURCE_DIR}/../test/test-sleep-forever.c
77 )
78
79 set (decode_gcov_SOURCES
80         ${CMAKE_SOURCE_DIR}/../test/decode-gcov.c
81 )
82
83 add_executable(test-service ${test-service_SOURCES})
84 target_link_libraries(test-service ${DBUS_1})
85
86 add_executable(test-names ${test-names_SOURCES})
87 target_link_libraries(test-names ${DBUS_1})
88
89 add_executable(shell-test ${shell-test_SOURCES})
90 target_link_libraries(shell-test ${DBUS_1})
91 ADD_TEST(shell-test ${EXECUTABLE_OUTPUT_PATH}/shell-test${EXT})
92
93 add_executable(test-shell-service ${test-shell-service_SOURCES})
94 target_link_libraries(test-shell-service ${DBUS_1})
95
96 add_executable(spawn-test ${spawn-test_SOURCES})
97 target_link_libraries(spawn-test ${DBUS_1})
98
99 add_executable(test-exit ${test-exit_SOURCES})
100 target_link_libraries(test-exit ${DBUS_1})
101
102 add_executable(test-segfault ${test-segfault_SOURCES})
103 target_link_libraries(test-segfault ${DBUS_1})
104
105 add_executable(test-sleep-forever ${test-sleep-forever_SOURCES})
106 target_link_libraries(test-sleep-forever ${DBUS_1})
107
108 #add_executable(decode-gcov ${decode_gcov_SOURCES})
109 #target_link_libraries(decode-gcov ${DBUS_1})
110
111 #EXTRA_DIST=
112 #
113 ### keep these in creation order, i.e. uppermost dirs first 
114 set (TESTDIRS
115         test/data                                       
116         test/data/auth
117         test/data/equiv-config-files
118         test/data/equiv-config-files/basic
119         test/data/equiv-config-files/basic/basic.d
120         test/data/equiv-config-files/entities
121         test/data/equiv-config-files/entities/basic.d
122         test/data/incomplete-messages
123         test/data/invalid-config-files
124         test/data/invalid-config-files-system
125         test/data/invalid-messages
126         test/data/invalid-service-files-system
127         test/data/sha-1
128         test/data/valid-config-files
129         test/data/valid-config-files/basic.d            
130         test/data/valid-config-files/system.d
131         test/data/valid-config-files-system
132         test/data/valid-introspection-files
133         test/data/valid-messages
134         test/data/valid-service-files
135         test/data/valid-service-files-system
136 )
137 set (CONFIG_VERBOSE 0)
138
139 ### copy tests to builddir so that generated tests and static tests 
140 ### are all in one place.
141 FOREACH(FILE_TYPE *.message *.message-raw *.auth-script *.sha1 *.txt *.conf *.service)
142         FOREACH(DIR ${TESTDIRS})
143                 FILE(GLOB FILES "${CMAKE_SOURCE_DIR}/../${DIR}/${FILE_TYPE}" )
144                 FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${DIR})
145                 FOREACH(FILE ${FILES})
146                         GET_FILENAME_COMPONENT(FILENAME ${FILE} NAME)
147                         SET (TARGET ${CMAKE_BINARY_DIR}/${DIR}/${FILENAME})
148                         configure_file(${FILE} ${TARGET} COPYONLY)
149                         IF (CONFIG_VERBOSE)
150                                 MESSAGE("FROM: ${FILE}\nTO: ${TARGET}\n")
151                         ENDIF (CONFIG_VERBOSE)
152                 ENDFOREACH(FILE)
153         ENDFOREACH(DIR)
154 ENDFOREACH(FILE_TYPE)
155
156
157 ### generate test files
158
159 FOREACH(FILE_TYPE *.conf.in *.service.in)
160   FOREACH(DIR ${TESTDIRS})
161     FILE(GLOB FILES "${CMAKE_SOURCE_DIR}/../${DIR}/${FILE_TYPE}" )
162     FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${DIR})
163     FOREACH(FILE ${FILES})
164       GET_FILENAME_COMPONENT(FILENAME ${FILE} NAME)
165       STRING(REGEX REPLACE "\\.in$" "" FILENAME ${FILENAME})
166       SET (TARGET ${CMAKE_BINARY_DIR}/${DIR}/${FILENAME})
167       configure_file(${FILE} ${TARGET} @ONLY IMMEDIATE)
168       IF (CONFIG_VERBOSE)
169         MESSAGE("FROM: ${FILE}\nTO: ${TARGET}\n")
170       ENDIF (CONFIG_VERBOSE)
171     ENDFOREACH(FILE)
172   ENDFOREACH(DIR)
173 ENDFOREACH(FILE_TYPE)
174
175 #
176 # the following config files are required on windows because the related 
177 # *.in files are not customized sufficiently. 
178 # TODO merge test/data/valid-config-files/debug-allow-all*.conf.in and ....cmake
179 #
180 SET (CONFIG_FILES test/data/valid-config-files)
181 set (TEST_LISTEN "tcp:host=localhost,port=1234")
182 configure_file(${CMAKE_SOURCE_DIR}/../${CONFIG_FILES}/debug-allow-all-sha1.conf.cmake ${CMAKE_BINARY_DIR}/${CONFIG_FILES}/debug-allow-all-sha1.conf )
183 configure_file(${CMAKE_SOURCE_DIR}/../${CONFIG_FILES}/debug-allow-all.conf.cmake ${CMAKE_BINARY_DIR}/${CONFIG_FILES}/debug-allow-all.conf )  
184
185 # todo: for installation the TEST_..._BINARY variables must reflect the 
186 #       installation dir or has to be defined relative
187 #
188 SET (SERVICE_FILES test/data/valid-service-files)
189 FILE(GLOB FILES "${CMAKE_SOURCE_DIR}/../${SERVICE_FILES}/*.service.in" )
190 FOREACH(FILE ${FILES})  
191         GET_FILENAME_COMPONENT(FILENAME ${FILE} NAME_WE)
192         SET (TARGET ${CMAKE_BINARY_DIR}/${SERVICE_FILES}/${FILENAME}.service)
193         IF (CONFIG_VERBOSE)
194                 MESSAGE("FROM: ${FILE}\nTO: ${TARGET}\n")
195         ENDIF (CONFIG_VERBOSE)
196         configure_file(${FILE} ${TARGET} )
197         #install_files(/data/dbus-1/services FILES ${TARGET})
198 ENDFOREACH(FILE)
199
200 #
201 #FIND_TESTS=find -name "*.message" -o -name "*.message-raw" -o -name "*.auth-script" -o -name "*.sha1" -o -name "*.txt" -o -name "*.conf" -o -name "*.service"
202 #
203 ### copy tests to builddir so that generated tests and static tests 
204 ### are all in one place.
205 #all-local:
206 #       for D in $(TESTDIRS); do                                                                
207 #               test -d $(top_builddir)/test/$$D || mkdir $(top_builddir)/test/$$D || exit 1 ;  
208 #       done ;                                                                                  
209 #       if ! (test $(srcdir) = . || test $(srcdir) -ef .) ; then                                                                
210 #               FILES=`(cd $(srcdir) && $(FIND_TESTS))` ;                                       
211 #               for F in $$FILES; do                                                            
212 #                       SRC=$(srcdir)/$$F ;                                                     
213 #                       DEST=$(top_builddir)/test/$$F ;                                         
214 #                       echo '-- Copying test file '$$F ;                                       
215 #                       cp $$SRC $$DEST || exit 1 ;                                             
216 #                       chmod u+w $$DEST || exit 1 ;                                            
217 #               done ;                                                                          
218 #       else                                                                                    
219 #               echo '-- No need to copy test data as srcdir = builddir' ;                      
220 #       fi ;                                                                                    
221 #       echo '-- Copying' $(top_builddir)/bus/*.conf 'to test directory' ;                      
222 #       cp $(top_builddir)/bus/*.conf $(top_builddir)/test/data/valid-config-files || exit 1 ;  
223 #       chmod u+w $(top_builddir)/test/data/valid-config-files/*.conf || exit 1
224 #
225 ### this doesn't clean generated test data files when srcdir=builddir
226 #clean-local:
227 #       if test $(srcdir) != . ; then                                   
228 #               FILES=`(cd $(top_builddir)/test && $(FIND_TESTS))` ;    
229 #               for F in $$FILES; do                                    
230 #                       DEST=$(top_builddir)/test/$$F ;                 
231 #                       echo '-- Deleting test file '$$F ;              
232 #                       rm $$DEST || exit 1 ;                           
233 #               done ;                                                  
234 #               REVERSEDIRS= ;                                          
235 #               for D in $(TESTDIRS); do                                
236 #                       REVERSEDIRS="$$D $$REVERSEDIRS" ;               
237 #               done ;                                                  
238 #               for D in $$REVERSEDIRS; do                              
239 #                       rmdir $(top_builddir)/test/$$D || exit 1 ;      
240 #               done ;                                                  
241 #       fi