Add IsRunningWithVFS1 to test util
VFS2 is adding more functionality than VFS1. In order to test new functionality, it's required to skip some tests with VFS1. To skip tests, use: SKIP_IF(IsRunningWithVFS1()); The test will run in Linux and gVisor with VFS2 enabled. Updates #1035 PiperOrigin-RevId: 312698616
This commit is contained in:
parent
7369aaee32
commit
7bde26934a
|
@ -42,12 +42,13 @@ namespace testing {
|
|||
|
||||
#define TEST_ON_GVISOR "TEST_ON_GVISOR"
|
||||
#define GVISOR_NETWORK "GVISOR_NETWORK"
|
||||
#define GVISOR_VFS "GVISOR_VFS"
|
||||
|
||||
bool IsRunningOnGvisor() { return GvisorPlatform() != Platform::kNative; }
|
||||
|
||||
const std::string GvisorPlatform() {
|
||||
// Set by runner.go.
|
||||
char* env = getenv(TEST_ON_GVISOR);
|
||||
const char* env = getenv(TEST_ON_GVISOR);
|
||||
if (!env) {
|
||||
return Platform::kNative;
|
||||
}
|
||||
|
@ -55,10 +56,19 @@ const std::string GvisorPlatform() {
|
|||
}
|
||||
|
||||
bool IsRunningWithHostinet() {
|
||||
char* env = getenv(GVISOR_NETWORK);
|
||||
const char* env = getenv(GVISOR_NETWORK);
|
||||
return env && strcmp(env, "host") == 0;
|
||||
}
|
||||
|
||||
bool IsRunningWithVFS1() {
|
||||
const char* env = getenv(GVISOR_VFS);
|
||||
if (env == nullptr) {
|
||||
// If not set, it's running on Linux.
|
||||
return false;
|
||||
}
|
||||
return strcmp(env, "VFS1") == 0;
|
||||
}
|
||||
|
||||
// Inline cpuid instruction. Preserve %ebx/%rbx register. In PIC compilations
|
||||
// %ebx contains the address of the global offset table. %rbx is occasionally
|
||||
// used to address stack variables in presence of dynamic allocas.
|
||||
|
|
|
@ -220,6 +220,7 @@ constexpr char kKVM[] = "kvm";
|
|||
bool IsRunningOnGvisor();
|
||||
const std::string GvisorPlatform();
|
||||
bool IsRunningWithHostinet();
|
||||
bool IsRunningWithVFS1();
|
||||
|
||||
#ifdef __linux__
|
||||
void SetupGvisorDeathTest();
|
||||
|
|
Loading…
Reference in New Issue