diff --git a/tests/file/filetest.cpp b/tests/file/filetest.cpp index 4df22d037a..0f31b12db3 100644 --- a/tests/file/filetest.cpp +++ b/tests/file/filetest.cpp @@ -154,7 +154,10 @@ TEST_CASE("wxFile::Special", "[file][linux][special-file]") wxString s; CHECK( fileProc.ReadAll(&s) ); - CHECK( !s.empty() ); + + // /proc files seem to be always empty in LXC containers. + if ( !IsRunningInLXC() ) + CHECK( !s.empty() ); // All files in /sys have the size of one kernel page, even if they don't // have that much data in them. diff --git a/tests/test.cpp b/tests/test.cpp index bb4b04564f..6dce6f2249 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -69,6 +69,10 @@ std::string wxTheCurrentTestClass, wxTheCurrentTestMethod; #endif // __WXGTK__ #endif // wxUSE_GUI +#ifdef __LINUX__ + #include "wx/filename.h" +#endif + #include "wx/socket.h" #include "wx/evtloop.h" @@ -418,6 +422,17 @@ extern bool IsRunningUnderXVFB() return s_isRunningUnderXVFB == 1; } +#ifdef __LINUX__ + +extern bool IsRunningInLXC() +{ + // This is simplistic but should work in the normal cases and can always be + // made more precise later if necessary. + return wxFileName::DirExists("/dev/lxd"); +} + +#endif // __LINUX__ + #if wxUSE_GUI bool EnableUITests() diff --git a/tests/testprec.h b/tests/testprec.h index 7ae35168cc..38e2ce14e0 100644 --- a/tests/testprec.h +++ b/tests/testprec.h @@ -123,6 +123,10 @@ extern bool IsAutomaticTest(); extern bool IsRunningUnderXVFB(); +#ifdef __LINUX__ +extern bool IsRunningInLXC(); +#endif // __LINUX__ + // Helper class setting the locale to the given one for its lifetime. class LocaleSetter { diff --git a/tests/textfile/textfiletest.cpp b/tests/textfile/textfiletest.cpp index 57b3b5dc2a..dc7d22423d 100644 --- a/tests/textfile/textfiletest.cpp +++ b/tests/textfile/textfiletest.cpp @@ -348,7 +348,11 @@ TEST_CASE("wxTextFile::Special", "[textfile][linux][special-file]") { wxTextFile f; CHECK( f.Open("/proc/cpuinfo") ); - CHECK( f.GetLineCount() > 1 ); + + // /proc files seem to be always empty in LXC containers, so skip this + // check there. + if ( !IsRunningInLXC() ) + CHECK( f.GetLineCount() > 1 ); } SECTION("/sys")