diff --git a/dcop/CMakeLists.txt b/dcop/CMakeLists.txt index bb1c949e4..7d2b46617 100644 --- a/dcop/CMakeLists.txt +++ b/dcop/CMakeLists.txt @@ -14,6 +14,7 @@ add_subdirectory( dcopidl ) add_subdirectory( dcopidlng ) add_subdirectory( dcopidl2cpp ) add_subdirectory( client ) +add_subdirectory( tests ) include_directories( ${TQT_INCLUDE_DIRS} diff --git a/dcop/tests/CMakeLists.txt b/dcop/tests/CMakeLists.txt new file mode 100644 index 000000000..c7bbbcfee --- /dev/null +++ b/dcop/tests/CMakeLists.txt @@ -0,0 +1,62 @@ +################################################# +# +# (C) 2016 Alexander Golubev +# fatzer2 (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +include_directories( + ${TQT_INCLUDE_DIRS} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/dcop + ${CMAKE_SOURCE_DIR}/tdecore + ${CMAKE_BINARY_DIR}/tdecore +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + + +##### checks #################################### + +tde_add_check_executable( dcop_test AUTOMOC + SOURCES test.cpp ${CMAKE_CURRENT_BINARY_DIR}/test.skel ${CMAKE_CURRENT_BINARY_DIR}/test.h + LINK tdecore-shared +) + +tde_add_check_executable( driver AUTOMOC + SOURCES driver.cpp ${CMAKE_CURRENT_BINARY_DIR}/test.stub ${CMAKE_CURRENT_BINARY_DIR}/test.h + LINK tdecore-shared +) + +add_test( NAME dcop-tests COMMAND sh -x "${CMAKE_CURRENT_SOURCE_DIR}/run-tests.sh" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" ) + + +##### test.h and files ########################## + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/test.h ${CMAKE_CURRENT_BINARY_DIR}/shell.generated + COMMAND perl "${CMAKE_CURRENT_SOURCE_DIR}/generate.pl" + <"${CMAKE_CURRENT_SOURCE_DIR}/testcases" + DEPENDS testcases generate.pl + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} +) + +# a hack because *.skel and *.stub files have to be located the same place with the *.h +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/test.skel + COMMAND ${CMAKE_COMMAND} -E copy_file + ${CMAKE_CURRENT_SOURCE_DIR}/test.skel ${CMAKE_CURRENT_BINARY_DIR}/ +) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/test.stub + COMMAND ${CMAKE_COMMAND} -E copy_file + ${CMAKE_CURRENT_SOURCE_DIR}/test.stub ${CMAKE_CURRENT_BINARY_DIR}/ +) diff --git a/dcop/tests/driver.cpp b/dcop/tests/driver.cpp index 18b983829..73a98fc0d 100644 --- a/dcop/tests/driver.cpp +++ b/dcop/tests/driver.cpp @@ -20,8 +20,8 @@ Driver::Driver(const char* app) } -TQTextStream output( fopen( "driver.returns", "w" ) , IO_WriteOnly ); -#include +TQTextStream output( fopen( "driver.returns", "w" ) , IO_WriteOnly ); + void Driver::test() { // This is written like this to allow the potentially ASYNC calls to be syncronized diff --git a/dcop/tests/generate.pl b/dcop/tests/generate.pl index cd4697d3f..9ef1f13fc 100755 --- a/dcop/tests/generate.pl +++ b/dcop/tests/generate.pl @@ -34,7 +34,7 @@ print HEADER < +#include diff --git a/dcop/tests/run-tests.sh b/dcop/tests/run-tests.sh index 216c29aef..b088905b0 100644 --- a/dcop/tests/run-tests.sh +++ b/dcop/tests/run-tests.sh @@ -19,7 +19,7 @@ echo '* Running driver mode' ./driver `dcop 'TestApp-*'` >driver.stdout echo '* Running shell mode' -source shell.generated >shell.returns +source ./shell.generated >shell.returns echo -n '* Comparing ... ' diff --git a/dcop/tests/testcases b/dcop/tests/testcases index 0f16bdbe3..e2357eb1c 100644 --- a/dcop/tests/testcases +++ b/dcop/tests/testcases @@ -21,11 +21,11 @@ # Then you should put c++ style arguments: # QString::fromLatin1("string with spaces"),4,"string_with_spaces" # -# Note that the first argument has type QString and the last type const char* +# Note that the first argument has type TQString and the last type const char* # (adapt accordingly) # // 1. easy case -QString +TQString url () { @@ -57,9 +57,9 @@ getObject // 2.2 overloading on type of args -QString +TQString identity -( QString x) +( TQString x) { return x; } @@ -87,7 +87,7 @@ getObject24 -#virtual QString identity( QCString ); +#virtual TQString identity( QCString ); # #// 4. simple template argument: #virtual