1
0
mirror of https://github.com/altlinux/admc.git synced 2025-03-31 18:50:14 +03:00

speed up tests build

build admc as lib and link all tests to that lib
This commit is contained in:
Dmitry Degtyarev 2021-04-22 12:55:23 +04:00
parent 9c2037bf73
commit bee2a3c8af
10 changed files with 47 additions and 167 deletions

@ -15,8 +15,22 @@ set(ADMC_ORGANIZATION "BaseALT")
set(ADMC_ORGANIZATION_DOMAIN "basealt.ru")
configure_file("config.h.in" "config.h")
add_executable(admc
main.cpp
include_directories(
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/src/adldap
)
link_libraries(
Qt5::Core
Qt5::Widgets
Qt5::Help
adldap
resolv
)
set(ADMC_SOURCES
properties_dialog.cpp
main_window.cpp
status.cpp
@ -111,19 +125,15 @@ add_executable(admc
admc.qrc
)
target_include_directories(admc
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/src/adldap
add_executable(admc
main.cpp
${ADMC_SOURCES}
)
target_link_libraries(admc
Qt5::Core
Qt5::Widgets
Qt5::Help
adldap
resolv
# NOTE: build admc as library to streamline building tests.
# Tests just link to this lib and use all of admc's code.
add_library(libadmc SHARED
${ADMC_SOURCES}
)
set(TS_FILES

@ -10,111 +10,22 @@ find_package(Qt5 REQUIRED
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
link_libraries(
Qt5::Core
Qt5::Widgets
Qt5::Test
Qt5::Help
adldap
libadmc
)
set(ADMC_APPLICATION_NAME "ADMC")
set(ADMC_APPLICATION_DISPLAY_NAME "ADMC")
set(ADMC_ORGANIZATION "BaseALT")
set(ADMC_ORGANIZATION_DOMAIN "basealt.ru")
# TODO: configure_file() call in admc's cmakelists is much cleaner, but doesn't work here. Fix this.
configure_file(${PROJECT_SOURCE_DIR}/src/admc/config.h.in "config.h")
set(TEST_SOURCES
admc_test.cpp
${PROJECT_SOURCE_DIR}/src/admc/properties_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/main_window.cpp
${PROJECT_SOURCE_DIR}/src/admc/status.cpp
${PROJECT_SOURCE_DIR}/src/admc/select_object_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/console_actions.cpp
${PROJECT_SOURCE_DIR}/src/admc/password_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/find_results.cpp
${PROJECT_SOURCE_DIR}/src/admc/filter_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/find_widget.cpp
${PROJECT_SOURCE_DIR}/src/admc/tab_widget.cpp
${PROJECT_SOURCE_DIR}/src/admc/central_widget.cpp
${PROJECT_SOURCE_DIR}/src/admc/search_thread.cpp
${PROJECT_SOURCE_DIR}/src/admc/help_browser.cpp
${PROJECT_SOURCE_DIR}/src/admc/globals.cpp
${PROJECT_SOURCE_DIR}/src/admc/utils.cpp
${PROJECT_SOURCE_DIR}/src/admc/settings.cpp
${PROJECT_SOURCE_DIR}/src/admc/policy_results_widget.cpp
${PROJECT_SOURCE_DIR}/src/admc/gplink.cpp
${PROJECT_SOURCE_DIR}/src/admc/console_types/console_object.cpp
${PROJECT_SOURCE_DIR}/src/admc/console_types/console_policy.cpp
${PROJECT_SOURCE_DIR}/src/admc/console_types/console_query.cpp
${PROJECT_SOURCE_DIR}/src/admc/move_object_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/rename_object_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/rename_policy_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/create_object_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/find_object_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/find_select_object_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/select_container_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/about_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/manual_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/select_policy_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/create_policy_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/create_query_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/create_query_folder_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/edit_query_folder_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/move_query_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/filter_widget/filter_widget.cpp
${PROJECT_SOURCE_DIR}/src/admc/filter_widget/filter_widget_simple_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/filter_widget/filter_widget_normal_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/filter_widget/filter_widget_advanced_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/filter_widget/select_classes_widget.cpp
${PROJECT_SOURCE_DIR}/src/admc/filter_widget/filter_builder.cpp
${PROJECT_SOURCE_DIR}/src/admc/filter_widget/search_base_widget.cpp
${PROJECT_SOURCE_DIR}/src/admc/tabs/properties_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/tabs/general_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/tabs/object_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/tabs/attributes_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/tabs/account_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/tabs/membership_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/tabs/address_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/tabs/group_policy_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/tabs/gpo_links_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/tabs/organization_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/tabs/telephones_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/tabs/profile_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/tabs/managed_by_tab.cpp
${PROJECT_SOURCE_DIR}/src/admc/editors/attribute_editor.cpp
${PROJECT_SOURCE_DIR}/src/admc/editors/multi_editor.cpp
${PROJECT_SOURCE_DIR}/src/admc/editors/string_editor.cpp
${PROJECT_SOURCE_DIR}/src/admc/editors/octet_editor.cpp
${PROJECT_SOURCE_DIR}/src/admc/editors/bool_editor.cpp
${PROJECT_SOURCE_DIR}/src/admc/editors/datetime_editor.cpp
${PROJECT_SOURCE_DIR}/src/admc/edits/attribute_edit.cpp
${PROJECT_SOURCE_DIR}/src/admc/edits/string_edit.cpp
${PROJECT_SOURCE_DIR}/src/admc/edits/string_other_edit.cpp
${PROJECT_SOURCE_DIR}/src/admc/edits/string_large_edit.cpp
${PROJECT_SOURCE_DIR}/src/admc/edits/country_edit.cpp
${PROJECT_SOURCE_DIR}/src/admc/edits/expiry_edit.cpp
${PROJECT_SOURCE_DIR}/src/admc/edits/unlock_edit.cpp
${PROJECT_SOURCE_DIR}/src/admc/edits/group_scope_edit.cpp
${PROJECT_SOURCE_DIR}/src/admc/edits/group_type_edit.cpp
${PROJECT_SOURCE_DIR}/src/admc/edits/account_option_edit.cpp
${PROJECT_SOURCE_DIR}/src/admc/edits/password_edit.cpp
${PROJECT_SOURCE_DIR}/src/admc/edits/datetime_edit.cpp
${PROJECT_SOURCE_DIR}/src/admc/edits/gpoptions_edit.cpp
${PROJECT_SOURCE_DIR}/src/admc/edits/manager_edit.cpp
${PROJECT_SOURCE_DIR}/src/admc/edits/upn_edit.cpp
${PROJECT_SOURCE_DIR}/src/admc/console_widget/console_widget.cpp
${PROJECT_SOURCE_DIR}/src/admc/console_widget/scope_model.cpp
${PROJECT_SOURCE_DIR}/src/admc/console_widget/customize_columns_dialog.cpp
${PROJECT_SOURCE_DIR}/src/admc/console_widget/results_description.cpp
${PROJECT_SOURCE_DIR}/src/admc/console_widget/results_view.cpp
${PROJECT_SOURCE_DIR}/src/admc/console_widget/console_drag_model.cpp
${PROJECT_SOURCE_DIR}/src/admc/admc.qrc
include_directories(
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/src/admc
${PROJECT_SOURCE_DIR}/src/adldap
${PROJECT_SOURCE_DIR}/tests
)
# NOTE: ADD ALL TESTS TO THIS LIST
@ -132,32 +43,13 @@ set(TEST_TARGETS
foreach(target ${TEST_TARGETS})
add_executable(${target}
admc_test.cpp
${target}.cpp
${TEST_SOURCES}
)
add_test(${target}
${PROJECT_BINARY_DIR}/${target}
)
target_include_directories(${target}
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/src/admc
${PROJECT_SOURCE_DIR}/tests
${PROJECT_SOURCE_DIR}/src/adldap
)
target_link_libraries(${target}
Qt5::Core
Qt5::Widgets
Qt5::Test
Qt5::Help
adldap
resolv
)
install(TARGETS ${target})
endforeach()

@ -38,7 +38,10 @@ void ADMCTest::initTestCase() {
QVERIFY2(ad.is_connected(), "Failed to connect to AD server");
// TODO: check for load failure
g_adconfig->load(ad, QLocale(QLocale::English));
ad_config = new AdConfig();
ad_config->load(ad, QLocale(QLocale::English));
AdInterface::set_permanent_adconfig(ad_config);
// Cleanup before all tests in-case this test suite was
// previously interrupted and a cleanup wasn't performed
@ -90,7 +93,7 @@ void ADMCTest::cleanup() {
}
QString ADMCTest::test_arena_dn() {
const QString head_dn = g_adconfig->domain_head();
const QString head_dn = ad_config->domain_head();
const QString dn = QString("OU=test-arena,%1").arg(head_dn);
return dn;

@ -34,6 +34,7 @@
class QString;
class QTreeView;
class AdConfig;
#define TEST_USER "test-user"
#define TEST_USER_LOGON "test-user-logon"
@ -94,6 +95,8 @@ protected:
void close_message_box_later();
private:
AdConfig *ad_config;
void close_message_box_slot();
};

@ -19,28 +19,7 @@
#include "admc_test_ad_interface.h"
#include "adldap.h"
#include "create_object_dialog.h"
#include "utils.h"
#include "status.h"
#include "console_types/console_object.h"
#include "select_container_dialog.h"
#include "select_object_dialog.h"
#include "find_select_object_dialog.h"
#include "settings.h"
#include "rename_object_dialog.h"
#include "find_object_dialog.h"
#include "move_object_dialog.h"
#include "password_dialog.h"
#include "find_widget.h"
#include "console_actions.h"
#include <QTest>
#include <QDebug>
#include <QModelIndex>
#include <QTreeView>
#include <QPushButton>
#include <QComboBox>
void ADMCTestAdInterface::object_add() {
const QString dn = test_object_dn(TEST_USER, CLASS_USER);

@ -19,7 +19,6 @@
#include "admc_test_country_edit.h"
#include "adldap.h"
#include "edits/country_edit.h"
#include <QFormLayout>

@ -22,18 +22,15 @@
#include "adldap.h"
#include "create_object_dialog.h"
#include "utils.h"
#include "status.h"
#include "console_types/console_object.h"
#include "select_container_dialog.h"
#include "select_object_dialog.h"
#include "find_select_object_dialog.h"
#include "settings.h"
#include "rename_object_dialog.h"
#include "find_object_dialog.h"
#include "move_object_dialog.h"
#include "password_dialog.h"
#include "find_widget.h"
#include "console_actions.h"
#include <QTest>
#include <QDebug>

@ -19,7 +19,6 @@
#include "admc_test_string_edit.h"
#include "adldap.h"
#include "edits/string_edit.h"
#include <QFormLayout>

@ -19,7 +19,6 @@
#include "admc_test_unlock_edit.h"
#include "adldap.h"
#include "edits/unlock_edit.h"
#include <QFormLayout>

@ -19,7 +19,6 @@
#include "admc_test_upn_edit.h"
#include "adldap.h"
#include "edits/upn_edit.h"
#include <QFormLayout>