summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2017-08-21 09:32:02 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2017-08-21 09:37:13 +0200
commit12b3725aeff5d016d11853c9c8d5077f7e8f7b71 (patch)
tree8c00dedc9445f5860f9787c5783a5bec895d175e
parent8eb8e427d1e0757fe0add304cfdbe2d6aae4d9c9 (diff)
updater: add a way to test the dialog code of the updater
Change-Id: I7436edc85f87d1f68b50d39bf29564ff498c9ab9
-rw-r--r--Repository.mk4
-rw-r--r--onlineupdate/Executable_test_updater_dialog.mk72
-rw-r--r--onlineupdate/Module_onlineupdate.mk1
-rw-r--r--onlineupdate/workben/test_dialog.cxx34
4 files changed, 111 insertions, 0 deletions
diff --git a/Repository.mk b/Repository.mk
index d133131551a0..736e13370503 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -56,6 +56,10 @@ $(eval $(call gb_Helper_register_executables,NONE, \
sp2bv \
svg2odf \
svidl \
+ $(if $(ENABLE_ONLINE_UPDATE_MAR),\
+ $(if $(filter WNT,$(OS)), \
+ test_updater_dialog \
+ )) \
treex \
ulfex \
unoidl-read \
diff --git a/onlineupdate/Executable_test_updater_dialog.mk b/onlineupdate/Executable_test_updater_dialog.mk
new file mode 100644
index 000000000000..92e70dfae337
--- /dev/null
+++ b/onlineupdate/Executable_test_updater_dialog.mk
@@ -0,0 +1,72 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Executable_Executable,test_updater_dialog))
+
+$(eval $(call gb_Executable_set_include,test_updater_dialog,\
+ -I$(SRCDIR)/onlineupdate/inc \
+ -I$(SRCDIR)/onlineupdate/source/update/common \
+ -I$(SRCDIR)/onlineupdate/source/update/updater/xpcom/glue \
+ -I$(SRCDIR)/onlineupdate/source/update/updater \
+ $$(INCLUDE) \
+))
+
+$(eval $(call gb_Executable_use_static_libraries,test_updater_dialog,\
+ updatehelper \
+))
+
+ifeq ($(OS),WNT)
+$(eval $(call gb_Executable_add_libs,test_updater_dialog,\
+ Ws2_32.lib \
+ Gdi32.lib \
+ Comctl32.lib \
+ Shell32.lib \
+ Shlwapi.lib \
+ Crypt32.lib \
+))
+
+$(eval $(call gb_Executable_set_targettype_gui,test_updater_dialog,YES))
+
+$(eval $(call gb_Executable_add_nativeres,test_updater_dialog,updaterres))
+
+$(eval $(call gb_Executable_add_ldflags,test_updater_dialog,\
+ /ENTRY:wmainCRTStartup \
+))
+
+$(eval $(call gb_Executable_add_defs,test_updater_dialog,\
+ -DUNICODE \
+))
+
+else
+
+$(eval $(call gb_Executable_add_defs,test_updater_dialog,\
+ -DVERIFY_MAR_SIGNATURE \
+ -DNSS3 \
+))
+
+$(eval $(call gb_Executable_use_externals,test_updater_dialog,\
+ nss3 \
+ gtk \
+))
+
+$(eval $(call gb_Executable_add_libs,test_updater_dialog,\
+ -lX11 \
+ -lXext \
+ -lXrender \
+ -lSM \
+ -lICE \
+ -lpthread \
+))
+endif
+
+$(eval $(call gb_Executable_add_exception_objects,test_updater_dialog,\
+ onlineupdate/workben/test_dialog \
+))
+
+# vim:set shiftwidth=4 tabstop=4 noexpandtab: */
diff --git a/onlineupdate/Module_onlineupdate.mk b/onlineupdate/Module_onlineupdate.mk
index a900e631a877..a343506e351d 100644
--- a/onlineupdate/Module_onlineupdate.mk
+++ b/onlineupdate/Module_onlineupdate.mk
@@ -17,6 +17,7 @@ $(eval $(call gb_Module_add_targets,onlineupdate,\
StaticLibrary_updatehelper \
$(if $(filter WNT,$(OS)),\
Executable_update_service \
+ Executable_test_updater_dialog \
WinResTarget_updater )\
Executable_mar \
Executable_updater \
diff --git a/onlineupdate/workben/test_dialog.cxx b/onlineupdate/workben/test_dialog.cxx
new file mode 100644
index 000000000000..113ec07eebbd
--- /dev/null
+++ b/onlineupdate/workben/test_dialog.cxx
@@ -0,0 +1,34 @@
+#include "progressui.h"
+#include "progressui_win.cxx"
+
+#include <thread>
+#include <chrono>
+#include <iostream>
+
+void func()
+{
+ for (int i = 0; i <= 100; ++i)
+ {
+ std::this_thread::sleep_for(std::chrono::milliseconds(200));
+ UpdateProgressUI(i);
+ }
+ QuitProgressUI();
+}
+
+int wmain(int argc, wchar_t** argv)
+{
+ InitProgressUI(&argc, &argv);
+ std::thread a(func);
+ /*
+ volatile bool b = false;
+ do
+ {
+ std::this_thread::sleep_for(std::chrono::seconds(1));
+ }
+ while (!b);
+ */
+ int result = ShowProgressUI();
+ std::cout << result << std::endl;
+ a.join();
+ return 0;
+}