Repository: mesos Updated Branches: refs/heads/master d69b10156 -> b8f2335ec
MESOS-2965: Add implicit conversion from Path to std::string. Review: https://reviews.apache.org/r/36116 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/b8f2335e Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/b8f2335e Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/b8f2335e Branch: refs/heads/master Commit: b8f2335ecfbd171e0e5c039cebeaa3f2534a12e1 Parents: d69b101 Author: Joseph Wu <[email protected]> Authored: Sun Jul 5 19:36:44 2015 -0700 Committer: Benjamin Hindman <[email protected]> Committed: Sun Jul 5 19:36:44 2015 -0700 ---------------------------------------------------------------------- .../3rdparty/stout/include/stout/path.hpp | 6 +++++ .../3rdparty/stout/tests/path_tests.cpp | 27 ++++++++++++++++++++ 2 files changed, 33 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/b8f2335e/3rdparty/libprocess/3rdparty/stout/include/stout/path.hpp ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/3rdparty/stout/include/stout/path.hpp b/3rdparty/libprocess/3rdparty/stout/include/stout/path.hpp index a4afdad..86c12a5 100644 --- a/3rdparty/libprocess/3rdparty/stout/include/stout/path.hpp +++ b/3rdparty/libprocess/3rdparty/stout/include/stout/path.hpp @@ -101,6 +101,12 @@ public: return value.substr(0, end + 1); } + // Implicit conversion from Path to string. + operator std::string () const + { + return value; + } + const std::string value; }; http://git-wip-us.apache.org/repos/asf/mesos/blob/b8f2335e/3rdparty/libprocess/3rdparty/stout/tests/path_tests.cpp ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/3rdparty/stout/tests/path_tests.cpp b/3rdparty/libprocess/3rdparty/stout/tests/path_tests.cpp index 3211a0d..ad9ce32 100644 --- a/3rdparty/libprocess/3rdparty/stout/tests/path_tests.cpp +++ b/3rdparty/libprocess/3rdparty/stout/tests/path_tests.cpp @@ -18,6 +18,8 @@ #include <stout/path.hpp> +#include <stout/tests/utils.hpp> + using std::string; using std::vector; @@ -117,3 +119,28 @@ TEST(PathTest, Join) EXPECT_EQ("/a/b/c/", path::join("/a/", "/b/", "/c/")); EXPECT_EQ("a/b/c/", path::join("a/", "/b/", "/c/")); } + + +class PathFileTest : public TemporaryDirectoryTest {}; + + +TEST_F(PathFileTest, ImplicitConversion) +{ + // Should be implicitly converted to string for the various os::_ calls. + const Path testfile(path::join(os::getcwd(), "file.txt")); + + // Create the test file. + ASSERT_SOME(os::touch(testfile)); + ASSERT_TRUE(os::exists(testfile)); + + // Open and close the file. + Try<int> fd = os::open( + testfile, + O_RDONLY, + S_IRUSR | S_IRGRP | S_IROTH); + ASSERT_SOME(fd); + close(fd.get()); + + // Delete the file. + EXPECT_SOME(os::rm(testfile)); +}
