vcl/inc/salinst.hxx                    |    2 ++
 vcl/osx/service_entry.cxx              |    2 +-
 vcl/source/app/salvtables.cxx          |    7 +++++++
 vcl/source/components/dtranscomp.cxx   |    4 ++--
 vcl/unx/generic/dtrans/X11_service.cxx |    2 +-
 vcl/unx/gtk3/gtkinst.cxx               |    2 +-
 vcl/win/dtrans/WinClipboard.cxx        |    2 +-
 7 files changed, 15 insertions(+), 6 deletions(-)
New commits:
commit 828b26bdc22743974655d64dada69e154159435a
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Tue Jul 16 13:40:03 2024 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Tue Jul 16 16:03:08 2024 +0200

    use generic clipboard when running UI tests
    
    rather than the system clipboard, which makes no sense, since then the
    tests interfere with each other
    
    Change-Id: I911e88f5547dfc4f3558b9ed3ef670cef4903420
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170574
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/vcl/inc/salinst.hxx b/vcl/inc/salinst.hxx
index ca6a6920bf76..45c031db30ae 100644
--- a/vcl/inc/salinst.hxx
+++ b/vcl/inc/salinst.hxx
@@ -214,6 +214,8 @@ public:
     // Note: we cannot make this a global variable, because it might be 
initialised BEFORE the putenv() call in cppunittester.
     static bool IsRunningUnitTest() { return getenv("LO_TESTNAME") != nullptr; 
}
 
+    static bool IsRunningUITest();
+
     // both must be implemented, if the VCL plugin needs to run via system 
event loop
     virtual bool DoExecute(int &nExitCode);
     virtual void DoQuit();
diff --git a/vcl/osx/service_entry.cxx b/vcl/osx/service_entry.cxx
index 849e73a77dcd..a970b6a65917 100644
--- a/vcl/osx/service_entry.cxx
+++ b/vcl/osx/service_entry.cxx
@@ -38,7 +38,7 @@ using namespace ::com::sun::star::datatransfer::clipboard;
 
 uno::Reference< XInterface > AquaSalInstance::CreateClipboard( const Sequence< 
Any >& i_rArguments )
 {
-    if ( Application::IsHeadlessModeEnabled() || IsRunningUnitTest() )
+    if ( Application::IsHeadlessModeEnabled() || IsRunningUnitTest() || 
IsRunningUITest() )
         return SalInstance::CreateClipboard( i_rArguments );
 
     SalData* pSalData = GetSalData();
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 353f3ecfb285..67ac9f971a63 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -180,6 +180,13 @@ void SalInstance::DoQuit()
         std::abort();
 }
 
+// static
+bool SalInstance::IsRunningUITest()
+{
+    static const bool bRunningUITest = getenv("LIBO_TEST_UNIT");
+    return bRunningUITest;
+}
+
 SalTimer::~SalTimer() COVERITY_NOEXCEPT_FALSE {}
 
 void SalBitmap::DropScaledCache()
diff --git a/vcl/source/components/dtranscomp.cxx 
b/vcl/source/components/dtranscomp.cxx
index 49cb61eb37fa..9c052468aaef 100644
--- a/vcl/source/components/dtranscomp.cxx
+++ b/vcl/source/components/dtranscomp.cxx
@@ -446,7 +446,7 @@ Reference< XInterface > SalInstance::CreateDragSource(const 
SystemEnvData* pSysE
 {
     // We run unit tests in parallel, which is a problem when touching a 
shared resource
     // the system clipboard, so rather use the dummy GenericClipboard.
-    if (Application::IsHeadlessModeEnabled() || IsRunningUnitTest())
+    if (Application::IsHeadlessModeEnabled() || IsRunningUnitTest() || 
IsRunningUITest())
         return getXWeak(new vcl::GenericDragSource());
     return ImplCreateDragSource(pSysEnv);
 }
@@ -459,7 +459,7 @@ uno::Reference<uno::XInterface> 
SalInstance::ImplCreateDropTarget(const SystemEn
 Reference< XInterface > SalInstance::CreateDropTarget(const SystemEnvData* 
pSysEnv)
 {
     // see SalInstance::CreateDragSource
-    if (Application::IsHeadlessModeEnabled() || IsRunningUnitTest())
+    if (Application::IsHeadlessModeEnabled() || IsRunningUnitTest() || 
IsRunningUITest())
         return getXWeak(new vcl::GenericDropTarget());
     return ImplCreateDropTarget(pSysEnv);
 }
diff --git a/vcl/unx/generic/dtrans/X11_service.cxx 
b/vcl/unx/generic/dtrans/X11_service.cxx
index 73c0487370c7..19f8b20fda05 100644
--- a/vcl/unx/generic/dtrans/X11_service.cxx
+++ b/vcl/unx/generic/dtrans/X11_service.cxx
@@ -47,7 +47,7 @@ Sequence< OUString > 
x11::Xdnd_dropTarget_getSupportedServiceNames()
 
 css::uno::Reference< XInterface > X11SalInstance::CreateClipboard( const 
Sequence< Any >& arguments )
 {
-    if ( IsRunningUnitTest() )
+    if ( IsRunningUnitTest() || IsRunningUITest() )
         return SalInstance::CreateClipboard( arguments );
 
     SelectionManager& rManager = SelectionManager::get();
diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index aaf69e92d186..698f2dbe1575 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -1578,7 +1578,7 @@ void VclGtkClipboard::removeClipboardListener( const 
Reference< datatransfer::cl
 
 Reference< XInterface > GtkInstance::CreateClipboard(const Sequence< Any >& 
arguments)
 {
-    if ( IsRunningUnitTest() )
+    if ( IsRunningUnitTest() || IsRunningUITest() )
         return SalInstance::CreateClipboard( arguments );
 
     OUString sel;
diff --git a/vcl/win/dtrans/WinClipboard.cxx b/vcl/win/dtrans/WinClipboard.cxx
index 8341e446360b..2592d82f6b8b 100644
--- a/vcl/win/dtrans/WinClipboard.cxx
+++ b/vcl/win/dtrans/WinClipboard.cxx
@@ -336,7 +336,7 @@ 
dtrans_CWinClipboard_get_implementation(css::uno::XComponentContext* context,
 {
     // We run unit tests in parallel, which is a problem when touching a 
shared resource
     // like the system clipboard, so rather use the dummy GenericClipboard.
-    static const bool bRunningUnitTest = getenv("LO_TESTNAME");
+    static const bool bRunningUnitTest = getenv("LO_TESTNAME") || 
getenv("LIBO_TEST_UNIT");
 
     if (bRunningUnitTest)
     {

Reply via email to