You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by jo...@apache.org on 2018/10/29 20:26:20 UTC

[mesos] 02/02: Made fetcher tests more robust by using the test sandbox.

This is an automated email from the ASF dual-hosted git repository.

josephwu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git

commit a78d9df206fd97fd368e75bd2024bfca2057e927
Author: Meng Zhu <mz...@mesosphere.io>
AuthorDate: Mon Oct 29 13:18:14 2018 -0700

    Made fetcher tests more robust by using the test sandbox.
    
    Fetcher tests currently rely on some hard-coded paths,
    for example, `/tmp/mesos/fetcher` and `/tmp/frameworks`.
    Thus fetcher tests could fail if these directories already
    exit. This patch makes `FetcherTest` a subclass of
    `MesosTest` which has a `createSlaveFlags()` helper to
    utilize the test sandboxes for related directories to
    avoid interference. The above paths will be
    replaced by `fetch/` and `frameworks/` under the sandbox.
    
    Review: https://reviews.apache.org/r/69146/
---
 src/tests/fetcher_tests.cpp | 88 +++++++++++++++------------------------------
 src/tests/mesos.cpp         |  2 ++
 2 files changed, 30 insertions(+), 60 deletions(-)

diff --git a/src/tests/fetcher_tests.cpp b/src/tests/fetcher_tests.cpp
index 283238c..90bee40 100644
--- a/src/tests/fetcher_tests.cpp
+++ b/src/tests/fetcher_tests.cpp
@@ -71,7 +71,7 @@ namespace mesos {
 namespace internal {
 namespace tests {
 
-class FetcherTest : public TemporaryDirectoryTest
+class FetcherTest : public MesosTest
 {
 public:
   static void verifyMetrics(unsigned successCount, unsigned errorCount)
@@ -107,8 +107,7 @@ TEST_F(FetcherTest, FileURI)
   string localFile = path::join(os::getcwd(), "test");
   EXPECT_FALSE(os::exists(localFile));
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   ContainerID containerId;
   containerId.set_value(id::UUID::random().toString());
@@ -138,8 +137,7 @@ TEST_F(FetcherTest, DuplicateFileURI)
   string testFile = path::join(fromDir, "test");
   EXPECT_SOME(os::write(testFile, "data"));
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   ContainerID containerId;
   containerId.set_value(id::UUID::random().toString());
@@ -199,8 +197,7 @@ TEST_F(FetcherTest, LogSuccessToStderr)
   string stderrFile = path::join(os::getcwd(), "stderr");
   EXPECT_FALSE(os::exists(stderrFile));
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   ContainerID containerId;
   containerId.set_value(id::UUID::random().toString());
@@ -243,8 +240,7 @@ TEST_F(FetcherTest, LogFailureToStderr)
   string stderrFile = path::join(os::getcwd(), "stderr");
   EXPECT_FALSE(os::exists(stderrFile));
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   ContainerID containerId;
   containerId.set_value(id::UUID::random().toString());
@@ -290,8 +286,7 @@ TEST_F(FetcherTest, ROOT_UNPRIVILEGED_USER_RootProtectedFileURI)
   EXPECT_SOME(os::write(testFile, "data"));
   EXPECT_SOME(os::chmod(testFile, 600));
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   ContainerID containerId;
   containerId.set_value(id::UUID::random().toString());
@@ -322,8 +317,7 @@ TEST_F(FetcherTest, CustomOutputFileSubdirectory)
   string localFile = path::join(os::getcwd(), customOutputFile);
   EXPECT_FALSE(os::exists(localFile));
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   ContainerID containerId;
   containerId.set_value(id::UUID::random().toString());
@@ -359,8 +353,7 @@ TEST_F(FetcherTest, AbsoluteCustomSubdirectoryFails)
   string localFile = path::join(os::getcwd(), customOutputFile);
   EXPECT_FALSE(os::exists(localFile));
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   ContainerID containerId;
   containerId.set_value(id::UUID::random().toString());
@@ -398,9 +391,7 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(FetcherTest, InvalidUser)
   string localFile = path::join(os::getcwd(), "test");
   EXPECT_FALSE(os::exists(localFile));
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
-  flags.frameworks_home = "/tmp/frameworks";
+  slave::Flags flags = CreateSlaveFlags();
 
   ContainerID containerId;
   containerId.set_value(id::UUID::random().toString());
@@ -435,9 +426,7 @@ TEST_F(FetcherTest, NonExistingFile)
   ASSERT_SOME(os::mkdir(fromDir));
   string testFile = path::join(fromDir, "nonExistingFile");
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
-  flags.frameworks_home = "/tmp/frameworks";
+  slave::Flags flags = CreateSlaveFlags();
 
   ContainerID containerId;
   containerId.set_value(id::UUID::random().toString());
@@ -462,9 +451,7 @@ TEST_F(FetcherTest, NonExistingFile)
 // Negative test: malformed URI, missing path.
 TEST_F(FetcherTest, MalformedURI)
 {
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
-  flags.frameworks_home = "/tmp/frameworks";
+  slave::Flags flags = CreateSlaveFlags();
 
   ContainerID containerId;
   containerId.set_value(id::UUID::random().toString());
@@ -496,8 +483,7 @@ TEST_F(FetcherTest, AbsoluteFilePath)
   string localFile = path::join(os::getcwd(), "test");
   EXPECT_FALSE(os::exists(localFile));
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   ContainerID containerId;
   containerId.set_value(id::UUID::random().toString());
@@ -528,8 +514,7 @@ TEST_F(FetcherTest, RelativeFilePath)
   string localFile = path::join(os::getcwd(), "test");
   EXPECT_FALSE(os::exists(localFile));
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   ContainerID containerId;
   containerId.set_value(id::UUID::random().toString());
@@ -620,9 +605,7 @@ TEST_F(FetcherTest, OSNetUriTest)
   string localFile = path::join(os::getcwd(), "test");
   EXPECT_FALSE(os::exists(localFile));
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
-  flags.frameworks_home = "/tmp/frameworks";
+  slave::Flags flags = CreateSlaveFlags();
 
   ContainerID containerId;
   containerId.set_value(id::UUID::random().toString());
@@ -666,9 +649,7 @@ TEST_F(FetcherTest, OSNetUriSpaceTest)
   string localFile = path::join(os::getcwd(), "test");
   EXPECT_FALSE(os::exists(localFile));
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
-  flags.frameworks_home = "/tmp/frameworks";
+  slave::Flags flags = CreateSlaveFlags();
 
   ContainerID containerId;
   containerId.set_value(id::UUID::random().toString());
@@ -706,8 +687,7 @@ TEST_F(FetcherTest, FileLocalhostURI)
   string localFile = path::join(os::getcwd(), "test");
   EXPECT_FALSE(os::exists(localFile));
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   ContainerID containerId;
   containerId.set_value(id::UUID::random().toString());
@@ -748,8 +728,7 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(FetcherTest, NoExtractNotExecutable)
   uri->set_executable(false);
   uri->set_extract(false);
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   Fetcher fetcher(flags);
 
@@ -790,8 +769,7 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(FetcherTest, NoExtractExecutable)
   uri->set_executable(true);
   uri->set_extract(false);
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   Fetcher fetcher(flags);
 
@@ -843,8 +821,7 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(FetcherTest, ExtractNotExecutable)
   uri->set_executable(false);
   uri->set_extract(true);
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   Fetcher fetcher(flags);
 
@@ -900,8 +877,7 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(FetcherTest, ExtractTar)
   uri->set_value(uri::from_path(path.get() + ".tar"));
   uri->set_extract(true);
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   Fetcher fetcher(flags);
 
@@ -942,8 +918,7 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(FetcherTest, ExtractGzipFile)
   uri->set_value(path.get() + ".gz");
   uri->set_extract(true);
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   Fetcher fetcher(flags);
 
@@ -991,8 +966,7 @@ TEST_F(FetcherTest, UNZIP_ExtractFile)
   uri->set_value(uri::from_path(path.get() + ".zip"));
   uri->set_extract(true);
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   Fetcher fetcher(flags);
 
@@ -1044,8 +1018,7 @@ TEST_F(FetcherTest, UNZIP_ExtractInvalidFile)
   uri->set_value(uri::from_path(path.get() + ".zip"));
   uri->set_extract(true);
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   Fetcher fetcher(flags);
 
@@ -1092,8 +1065,7 @@ TEST_F(FetcherTest, UNZIP_ExtractFileWithDuplicatedEntries)
   uri->set_value(uri::from_path(path.get() + ".zip"));
   uri->set_extract(true);
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   Fetcher fetcher(flags);
 
@@ -1135,8 +1107,7 @@ TEST_F(FetcherTest, UseCustomOutputFile)
   uri->set_extract(true);
   uri->set_output_file(customOutputFile);
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   Fetcher fetcher(flags);
 
@@ -1176,8 +1147,7 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(FetcherTest, CustomGzipOutputFile)
   uri->set_extract(true);
   uri->set_output_file(customOutputFile + ".gz");
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   Fetcher fetcher(flags);
 
@@ -1260,8 +1230,7 @@ TEST_F(FetcherTest, HdfsURI)
   string localFile = path::join(os::getcwd(), "test");
   EXPECT_FALSE(os::exists(localFile));
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
   flags.hadoop_home = hadoopPath;
 
   ContainerID containerId;
@@ -1323,8 +1292,7 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(FetcherTest, SSLEnvironmentSpillover)
   uri->set_value(path.get() + ".gz");
   uri->set_extract(true);
 
-  slave::Flags flags;
-  flags.launcher_dir = getLauncherDir();
+  slave::Flags flags = CreateSlaveFlags();
 
   Fetcher fetcher(flags);
 
diff --git a/src/tests/mesos.cpp b/src/tests/mesos.cpp
index c0ab2f7..3a1101c 100644
--- a/src/tests/mesos.cpp
+++ b/src/tests/mesos.cpp
@@ -178,6 +178,8 @@ slave::Flags MesosTest::CreateSlaveFlags()
 
   flags.docker_store_dir = path::join(directory.get(), "store", "docker");
 
+  flags.frameworks_home = path::join(directory.get(), "frameworks");
+
   {
     // Create a default credential file for master/agent authentication.
     const string& path = path::join(directory.get(), "credential");