Browse Source

Merge branch 'master' of github.com:eidheim/jucipp into ci

merge-requests/365/head
Jørgen Lien Sellæg 10 years ago
parent
commit
513261f348
  1. 5
      CMakeLists.txt
  2. 57
      tests/CMakeLists.txt
  3. 18
      tests/cmake_test.cc
  4. 16
      tests/example_test.cc
  5. 3
      tests/stubs/config.cc
  6. 7
      tests/stubs/dialogs.cc
  7. 5
      tests/stubs/dispatcher.cc
  8. 5
      tests/stubs/info.cc
  9. 15
      tests/stubs/terminal.cc

5
CMakeLists.txt

@ -9,3 +9,8 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD|OpenBSD|NetBSD")
install(FILES "${CMAKE_SOURCE_DIR}/share/juci.desktop" install(FILES "${CMAKE_SOURCE_DIR}/share/juci.desktop"
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications") DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications")
endif() endif()
if(ENABLE_TESTING)
enable_testing()
add_subdirectory(tests)
endif()

57
tests/CMakeLists.txt

@ -0,0 +1,57 @@
add_definitions(-DBOOST_LOG_DYN_LINK)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread -Wall -Wextra -Wno-unused-parameter -Wno-reorder")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DJUCI_TESTS_PATH=\\\"${CMAKE_CURRENT_SOURCE_DIR}\\\"")
if(APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -undefined dynamic_lookup")
link_directories(/usr/local/lib /usr/local/opt/gettext/lib)
include_directories(/usr/local/opt/gettext/include)
set(CMAKE_MACOSX_RPATH 1)
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig")
endif()
find_package(Boost 1.54 COMPONENTS regex system filesystem REQUIRED)
set(LIBCLANGMM_INCLUDE_DIR ../libclangmm/src)
include(FindPkgConfig)
pkg_check_modules(GTKMM gtkmm-3.0 REQUIRED)
set(global_includes
${Boost_INCLUDE_DIRS}
${GTKMM_INCLUDE_DIRS}
${GTKSVMM_INCLUDE_DIRS}
../src
../tiny-process-library
)
set(global_libraries
${GTKMM_LIBRARIES}
${GTKSVMM_LIBRARIES}
${Boost_LIBRARIES}
)
set(stub_sources
stubs/config.cc
stubs/dialogs.cc
stubs/dispatcher.cc
stubs/info.cc
stubs/terminal.cc
)
include_directories(${global_includes})
add_library(stubs_library ${stub_sources})
add_executable(cmake_test cmake_test.cc
../src/filesystem.cc ../src/cmake.cc ../src/project_build.cc)
target_link_libraries(cmake_test ${global_libraries} stubs_library)
add_test(cmake_test cmake_test)
#Added for example only, and requires display server to work
#However, it is possible to use the Broadway backend if the test is run in a pure terminal environment:
#broadwayd&
#make test
add_executable(example_test example_test.cc)
target_link_libraries(example_test ${global_libraries} stubs_library)
add_test(example_test example_test)

18
tests/cmake_test.cc

@ -0,0 +1,18 @@
#include <glib.h>
#include "cmake.h"
#include "project_build.h"
#include <boost/filesystem.hpp>
int main() {
CMake cmake(JUCI_TESTS_PATH);
g_assert(cmake.project_path.filename()=="jucipp");
auto functions_parameters=cmake.get_functions_parameters("project");
g_assert(functions_parameters.at(0).second.at(0)=="juci");
g_assert(cmake.get_executable(boost::filesystem::path(JUCI_TESTS_PATH)/"cmake_test.cc").filename()=="cmake_test");
auto build=Project::Build::create(JUCI_TESTS_PATH);
g_assert(dynamic_cast<Project::CMakeBuild*>(build.get()));
}

16
tests/example_test.cc

@ -0,0 +1,16 @@
#include "terminal.h"
#include "info.h"
#include <gtkmm.h>
//In case one has to test functions that include Terminal::print or Info::print
//Requires display server to work
//However, it is possible to use the Broadway backend if the test is run in a pure terminal environment:
//broadwayd&
//make test
int main() {
auto app=Gtk::Application::create();
Terminal::get().print("some message");
Info::get().print("some message");
g_assert(true);
}

3
tests/stubs/config.cc

@ -0,0 +1,3 @@
#include "config.h"
Config::Config() {}

7
tests/stubs/dialogs.cc

@ -0,0 +1,7 @@
#include "dialogs.h"
Dialog::Message::Message(const std::string &text): Gtk::MessageDialog(text, false, Gtk::MessageType::MESSAGE_INFO, Gtk::ButtonsType::BUTTONS_NONE, true) {}
bool Dialog::Message::on_delete_event(GdkEventAny *event) {
return true;
}

5
tests/stubs/dispatcher.cc

@ -0,0 +1,5 @@
#include "dispatcher.h"
Dispatcher::Dispatcher() {}
Dispatcher::~Dispatcher() {}

5
tests/stubs/info.cc

@ -0,0 +1,5 @@
#include "info.h"
Info::Info() {}
void Info::print(const std::string &text) {}

15
tests/stubs/terminal.cc

@ -0,0 +1,15 @@
#include "terminal.h"
Terminal::Terminal() {}
bool Terminal::on_motion_notify_event(GdkEventMotion* motion_event) {return false;}
bool Terminal::on_button_press_event(GdkEventButton* button_event) {return false;}
bool Terminal::on_key_press_event(GdkEventKey *event) {return false;}
int Terminal::process(const std::string &command, const boost::filesystem::path &path, bool use_pipes) {
return 0;
}
size_t Terminal::print(const std::string &message, bool bold) {
return 0;
}
Loading…
Cancel
Save