You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by tn...@apache.org on 2015/12/10 16:31:18 UTC
[1/3] mesos git commit: Fixed tests to call socket accept before
sending response.
Repository: mesos
Updated Branches:
refs/heads/master 388dd5fcb -> 2ecd10240
Fixed tests to call socket accept before sending response.
By calling accept before sending a response, the server would be ready for
client's next request.
Review: https://reviews.apache.org/r/41078
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/2ecd1024
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/2ecd1024
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/2ecd1024
Branch: refs/heads/master
Commit: 2ecd10240d7671dfe6b16118e5ad2e33f8cbc712
Parents: c1af7d0
Author: Jojy Varghese <jo...@mesosphere.io>
Authored: Thu Dec 10 16:57:07 2015 +0800
Committer: Timothy Chen <tn...@apache.org>
Committed: Thu Dec 10 23:31:01 2015 +0800
----------------------------------------------------------------------
.../containerizer/provisioner_docker_tests.cpp | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/2ecd1024/src/tests/containerizer/provisioner_docker_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/provisioner_docker_tests.cpp b/src/tests/containerizer/provisioner_docker_tests.cpp
index 3f1717b..31e7a31 100644
--- a/src/tests/containerizer/provisioner_docker_tests.cpp
+++ b/src/tests/containerizer/provisioner_docker_tests.cpp
@@ -690,10 +690,11 @@ TEST_F(RegistryClientTest, SimpleGetManifest)
// Send 401 Unauthorized response for a manifest request.
Future<string> manifestHttpRequest = Socket(socket.get()).recv();
AWAIT_ASSERT_READY(manifestHttpRequest);
+
+ socket = server.get().accept();
AWAIT_ASSERT_READY(Socket(socket.get()).send(unauthHttpResponse));
// Token response.
- socket = server.get().accept();
AWAIT_ASSERT_READY(socket);
Future<string> tokenRequest = Socket(socket.get()).recv();
@@ -709,10 +710,10 @@ TEST_F(RegistryClientTest, SimpleGetManifest)
"\r\n" +
tokenResponse;
+ socket = server.get().accept();
AWAIT_ASSERT_READY(Socket(socket.get()).send(tokenHttpResponse));
// Manifest response.
- socket = server.get().accept();
AWAIT_ASSERT_READY(socket);
manifestHttpRequest = Socket(socket.get()).recv();
@@ -868,10 +869,11 @@ TEST_F(RegistryClientTest, SimpleGetBlob)
// Send 401 Unauthorized response.
Future<string> blobHttpRequest = Socket(socket.get()).recv();
AWAIT_ASSERT_READY(blobHttpRequest);
+
+ socket = server.get().accept();
AWAIT_ASSERT_READY(Socket(socket.get()).send(unauthHttpResponse));
// Send token response.
- socket = server.get().accept();
AWAIT_ASSERT_READY(socket);
Future<string> tokenRequest = Socket(socket.get()).recv();
@@ -887,10 +889,10 @@ TEST_F(RegistryClientTest, SimpleGetBlob)
"\r\n" +
tokenResponse;
+ socket = server.get().accept();
AWAIT_ASSERT_READY(Socket(socket.get()).send(tokenHttpResponse));
// Send redirect.
- socket = server.get().accept();
AWAIT_ASSERT_READY(socket);
blobHttpRequest = Socket(socket.get()).recv();
@@ -1037,10 +1039,11 @@ TEST_F(RegistryClientTest, SimpleRegistryPuller)
// Send 401 Unauthorized response for a manifest request.
Future<string> registryPullerHttpRequestFuture = Socket(socket.get()).recv();
AWAIT_ASSERT_READY(registryPullerHttpRequestFuture);
+
+ socket = server.get().accept();
AWAIT_ASSERT_READY(Socket(socket.get()).send(unauthHttpResponse));
// Token response.
- socket = server.get().accept();
AWAIT_ASSERT_READY(socket);
Future<string> tokenRequestFuture = Socket(socket.get()).recv();
@@ -1056,10 +1059,10 @@ TEST_F(RegistryClientTest, SimpleRegistryPuller)
"\r\n" +
tokenResponse;
+ socket = server.get().accept();
AWAIT_ASSERT_READY(Socket(socket.get()).send(tokenHttpResponse));
// Manifest response.
- socket = server.get().accept();
AWAIT_ASSERT_READY(socket);
registryPullerHttpRequestFuture = Socket(socket.get()).recv();
@@ -1119,10 +1122,10 @@ TEST_F(RegistryClientTest, SimpleRegistryPuller)
"\r\n" +
manifestResponse;
+ socket = server.get().accept();
AWAIT_ASSERT_READY(Socket(socket.get()).send(manifestHttpResponse));
// Redirect response.
- socket = server.get().accept();
AWAIT_ASSERT_READY(socket);
registryPullerHttpRequestFuture = Socket(socket.get()).recv();
[2/3] mesos git commit: Created separate server to serve blobs in
RegistryClientTests.
Posted by tn...@apache.org.
Created separate server to serve blobs in RegistryClientTests.
By having a separate blob server, it simulates the real world more closely.
It also allows the test server to be in accept mode early.
Review: https://reviews.apache.org/r/40873
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/c1af7d0a
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/c1af7d0a
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/c1af7d0a
Branch: refs/heads/master
Commit: c1af7d0aaa81beb29cf9555d7b79eb1a0773a382
Parents: 21b5bbd
Author: Jojy Varghese <jo...@mesosphere.io>
Authored: Thu Dec 10 16:55:41 2015 +0800
Committer: Timothy Chen <tn...@apache.org>
Committed: Thu Dec 10 23:31:01 2015 +0800
----------------------------------------------------------------------
.../containerizer/provisioner_docker_tests.cpp | 58 ++++++++++++--------
1 file changed, 35 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/c1af7d0a/src/tests/containerizer/provisioner_docker_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/provisioner_docker_tests.cpp b/src/tests/containerizer/provisioner_docker_tests.cpp
index d562d47..3f1717b 100644
--- a/src/tests/containerizer/provisioner_docker_tests.cpp
+++ b/src/tests/containerizer/provisioner_docker_tests.cpp
@@ -521,13 +521,6 @@ protected:
{"SSL_KEY_FILE", key_path().value},
{"SSL_CERT_FILE", certificate_path().value}});
}
-
- // Abstracts the concept of the directory the tests would be sandboxed to.
- // TODO(jojy): Have uuid based unique working directory.
- string working_directory()
- {
- return os::getcwd();
- }
};
@@ -834,6 +827,14 @@ TEST_F(RegistryClientTest, SimpleGetBlob)
Future<Socket> socket = server.get().accept();
+ Try<Socket> blobServer = getServer();
+
+ ASSERT_SOME(blobServer);
+ ASSERT_SOME(blobServer.get().address());
+ ASSERT_SOME(blobServer.get().address().get().hostname());
+
+ Future<Socket> blobServerAcceptSocket = blobServer.get().accept();
+
const process::http::URL url(
"https",
server.get().address().get().hostname().get(),
@@ -844,7 +845,7 @@ TEST_F(RegistryClientTest, SimpleGetBlob)
ASSERT_SOME(registryClient);
- const Path blobPath(path::join(working_directory(), "blob"));
+ const Path blobPath(path::join(os::getcwd(), "blob"));
Future<size_t> result =
registryClient.get()->getBlob(
@@ -898,16 +899,16 @@ TEST_F(RegistryClientTest, SimpleGetBlob)
const string redirectHttpResponse =
string("HTTP/1.1 307 Temporary Redirect\r\n") +
"Location: https://" +
- stringify(server.get().address().get()) + "\r\n" +
+ blobServer.get().address().get().hostname().get() + ":" +
+ stringify(blobServer.get().address().get().port) + "/blob \r\n" +
"\r\n";
AWAIT_ASSERT_READY(Socket(socket.get()).send(redirectHttpResponse));
// Finally send blob response.
- socket = server.get().accept();
- AWAIT_ASSERT_READY(socket);
+ AWAIT_ASSERT_READY(blobServerAcceptSocket);
- blobHttpRequest = Socket(socket.get()).recv();
+ blobHttpRequest = Socket(blobServerAcceptSocket.get()).recv();
AWAIT_ASSERT_READY(blobHttpRequest);
const string blobResponse = stringify(Clock::now());
@@ -919,7 +920,8 @@ TEST_F(RegistryClientTest, SimpleGetBlob)
"\r\n" +
blobResponse;
- AWAIT_ASSERT_READY(Socket(socket.get()).send(blobHttpResponse));
+ AWAIT_ASSERT_READY(Socket(blobServerAcceptSocket.get()).send(
+ blobHttpResponse));
AWAIT_ASSERT_READY(result);
@@ -949,7 +951,7 @@ TEST_F(RegistryClientTest, BadRequest)
ASSERT_SOME(registryClient);
- const Path blobPath(path::join(working_directory(), "blob"));
+ const Path blobPath(path::join(os::getcwd(), "blob"));
Future<size_t> result =
registryClient.get()->getBlob(
@@ -992,6 +994,14 @@ TEST_F(RegistryClientTest, SimpleRegistryPuller)
Future<Socket> socket = server.get().accept();
+ Try<Socket> blobServer = getServer();
+
+ ASSERT_SOME(blobServer);
+ ASSERT_SOME(blobServer.get().address());
+ ASSERT_SOME(blobServer.get().address().get().hostname());
+
+ Future<Socket> blobServerAcceptSock = blobServer.get().accept();
+
Flags flags;
flags.docker_registry = server.get().address().get().hostname().get();
flags.docker_registry_port = stringify(server.get().address().get().port);
@@ -1002,7 +1012,7 @@ TEST_F(RegistryClientTest, SimpleRegistryPuller)
ASSERT_SOME(registryPuller);
- const Path registryPullerPath(working_directory());
+ const Path registryPullerPath(os::getcwd());
Try<slave::docker::Image::Name> imageName =
parseImageName("busybox");
@@ -1120,12 +1130,19 @@ TEST_F(RegistryClientTest, SimpleRegistryPuller)
const string redirectHttpResponse =
string("HTTP/1.1 307 Temporary Redirect\r\n") +
+ "Content-Length : 0\r\n" +
"Location: https://" +
- stringify(server.get().address().get()) + "\r\n" +
+ blobServer.get().address().get().hostname().get() + ":" +
+ stringify(blobServer.get().address().get().port) + "/blob \r\n" +
"\r\n";
AWAIT_ASSERT_READY(Socket(socket.get()).send(redirectHttpResponse));
+ AWAIT_ASSERT_READY(blobServerAcceptSock);
+
+ registryPullerHttpRequestFuture = Socket(blobServerAcceptSock.get()).recv();
+ AWAIT_ASSERT_READY(registryPullerHttpRequestFuture);
+
// Prepare the blob response from the server. The blob response buffer is a
// tarball. So we create a tarball of our test response and send that.
const string blobFile = "blob";
@@ -1152,6 +1169,7 @@ TEST_F(RegistryClientTest, SimpleRegistryPuller)
Subprocess::PATH("/dev/null"),
Subprocess::PATH("/dev/null"),
Subprocess::PATH("/dev/null"));
+
ASSERT_SOME(s);
AWAIT_ASSERT_READY(s.get().status());
@@ -1197,13 +1215,7 @@ TEST_F(RegistryClientTest, SimpleRegistryPuller)
tarBuffer.get(),
tarSize.get().bytes());
- socket = server.get().accept();
- AWAIT_ASSERT_READY(socket);
-
- registryPullerHttpRequestFuture = Socket(socket.get()).recv();
- AWAIT_ASSERT_READY(registryPullerHttpRequestFuture);
-
- AWAIT_ASSERT_READY(Socket(socket.get()).send(
+ AWAIT_ASSERT_READY(Socket(blobServerAcceptSock.get()).send(
responseBuffer.get(),
blobResponseSize));
[3/3] mesos git commit: Changed RegistryClientTest to use instance
work directory.
Posted by tn...@apache.org.
Changed RegistryClientTest to use instance work directory.
Review: https://reviews.apache.org/r/40872
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/21b5bbdb
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/21b5bbdb
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/21b5bbdb
Branch: refs/heads/master
Commit: 21b5bbdba5c30fd6d73856f544b23a524994f131
Parents: 388dd5f
Author: Jojy Varghese <jo...@mesosphere.io>
Authored: Thu Dec 10 16:41:57 2015 +0800
Committer: Timothy Chen <tn...@apache.org>
Committed: Thu Dec 10 23:31:01 2015 +0800
----------------------------------------------------------------------
.../containerizer/provisioner_docker_tests.cpp | 25 ++++++--------------
1 file changed, 7 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/21b5bbdb/src/tests/containerizer/provisioner_docker_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/provisioner_docker_tests.cpp b/src/tests/containerizer/provisioner_docker_tests.cpp
index c63bf53..d562d47 100644
--- a/src/tests/containerizer/provisioner_docker_tests.cpp
+++ b/src/tests/containerizer/provisioner_docker_tests.cpp
@@ -522,25 +522,14 @@ protected:
{"SSL_CERT_FILE", certificate_path().value}});
}
- static void SetUpTestCase()
+ // Abstracts the concept of the directory the tests would be sandboxed to.
+ // TODO(jojy): Have uuid based unique working directory.
+ string working_directory()
{
- if (os::mkdir(RegistryClientTest::OUTPUT_DIR).isError()) {
- ABORT("Could not create temporary directory: " +
- RegistryClientTest::OUTPUT_DIR);
- }
+ return os::getcwd();
}
-
- static void TearDownTestCase()
- {
- SSLTest::TearDownTestCase();
-
- os::rmdir(RegistryClientTest::OUTPUT_DIR);
- }
-
- static const string OUTPUT_DIR;
};
-const string RegistryClientTest::OUTPUT_DIR = "output_dir";
// Tests TokenManager for a simple token request.
TEST_F(RegistryClientTest, SimpleGetToken)
@@ -855,7 +844,7 @@ TEST_F(RegistryClientTest, SimpleGetBlob)
ASSERT_SOME(registryClient);
- const Path blobPath(RegistryClientTest::OUTPUT_DIR + "/blob");
+ const Path blobPath(path::join(working_directory(), "blob"));
Future<size_t> result =
registryClient.get()->getBlob(
@@ -960,7 +949,7 @@ TEST_F(RegistryClientTest, BadRequest)
ASSERT_SOME(registryClient);
- const Path blobPath(RegistryClientTest::OUTPUT_DIR + "/blob");
+ const Path blobPath(path::join(working_directory(), "blob"));
Future<size_t> result =
registryClient.get()->getBlob(
@@ -1013,7 +1002,7 @@ TEST_F(RegistryClientTest, SimpleRegistryPuller)
ASSERT_SOME(registryPuller);
- const Path registryPullerPath(RegistryClientTest::OUTPUT_DIR);
+ const Path registryPullerPath(working_directory());
Try<slave::docker::Image::Name> imageName =
parseImageName("busybox");