Disable tests of /proc/cpuinfo in LXC containers

It seems that we can't access /proc files when running inside such
containers, so don't try to do it.
This commit is contained in:
Vadim Zeitlin
2020-04-07 14:30:01 +02:00
parent a776a9112e
commit 82cfdd07c2
4 changed files with 28 additions and 2 deletions

View File

@@ -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.

View File

@@ -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()

View File

@@ -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
{

View File

@@ -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")