summaryrefslogtreecommitdiff
path: root/postprocess/qa/services.cxx
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2014-06-12 12:28:51 +0200
committerStephan Bergmann <sbergman@redhat.com>2014-06-12 12:29:24 +0200
commit0b5568b9ddc2f89a58a76daef0b52bbfadcd6280 (patch)
tree68c5e747cf90623d9487f638055bbcdb2d821029 /postprocess/qa/services.cxx
parentc4444ea0c412d580a9ff0423bd9fa4d8b535490b (diff)
Fix CppunitTest_services on Windows
...by blacklisting the problematic service Change-Id: I524a7c7af2cb374911db7b204021c3d2bcd1fdd6
Diffstat (limited to 'postprocess/qa/services.cxx')
-rw-r--r--postprocess/qa/services.cxx25
1 files changed, 25 insertions, 0 deletions
diff --git a/postprocess/qa/services.cxx b/postprocess/qa/services.cxx
index a7052c1180fe..706010d6774a 100644
--- a/postprocess/qa/services.cxx
+++ b/postprocess/qa/services.cxx
@@ -9,6 +9,7 @@
#include <sal/config.h>
+#include <algorithm>
#include <vector>
#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
@@ -36,6 +37,25 @@ public:
void ServicesTest::test()
{
+ std::vector<OUString> blacklist;
+#if defined WNT
+ // On Windows, blacklist the com.sun.star.report.ReportDefinition service,
+ // as its reportdesign::OReportDefinition implementation (in
+ // reportdesign/source/core/api/ReportDefinition.cxx) spawns a thread that
+ // forever blocks in SendMessageW when no VCL event loop is running
+ // (reportdesign::<anon>::FactoryLoader::execute ->
+ // framework::Desktop::findFrame -> framework::TaskCreator::createTask ->
+ // <anon>::TaskCreatorService::createInstanceWithArguments ->
+ // <anon>::TaskCreatorService::impls_createContainerWindow ->
+ // <anon>::VCLXToolkit::createWindow ->
+ // <anon>::VCLXToolkit::ImplCreateWindow ->
+ // <anon>::VCLXToolkit::ImplCreateWindow -> WorkWindow::WorkWindow ->
+ // WorkWindow::ImplInit -> ImplBorderWindow::ImplBorderWindow ->
+ // ImplBorderWindow::ImplInit -> Window::ImplInit ->
+ // WinSalInstance::CreateFrame -> ImplSendMessage -> SendMessageW):
+ blacklist.push_back("com.sun.star.report.ReportDefinition");
+#endif
+
Reference< XHierarchicalNameAccess > xTypeManager(
m_xContext->getValueByName(
"/singletons/com.sun.star.reflection.theTypeDescriptionManager"),
@@ -44,6 +64,11 @@ void ServicesTest::test()
std::vector< css::uno::Reference<css::lang::XComponent> > comps;
for (sal_Int32 i = 0; i < s.getLength(); i++)
{
+ if (std::find(blacklist.begin(), blacklist.end(), s[i])
+ != blacklist.end())
+ {
+ continue;
+ }
if (!xTypeManager->hasByHierarchicalName(s[i]))
{
SAL_WARN(