AU/unittest: parameterize test_http_server port
This eliminates the constant definition of the test HTTP server port,
replacing it with a command-line parameter (which defaults to 8080, the
well-known userland HTTP port). This is needed for allowing parallel
invocations of unit tests.
BUG=chromium:236465
TEST=Passes unit tests
Change-Id: I91904dc360ec1b993cbaae93554fb0dd9e5adaad
Reviewed-on: https://gerrit.chromium.org/gerrit/60626
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
diff --git a/http_fetcher_unittest.cc b/http_fetcher_unittest.cc
index e6204d3..b638411 100644
--- a/http_fetcher_unittest.cc
+++ b/http_fetcher_unittest.cc
@@ -18,7 +18,6 @@
#include <gtest/gtest.h>
#include "update_engine/http_common.h"
-#include "update_engine/http_fetcher_unittest.h"
#include "update_engine/libcurl_http_fetcher.h"
#include "update_engine/mock_connection_manager.h"
#include "update_engine/mock_http_fetcher.h"
@@ -46,6 +45,8 @@
const int kFlakySleepEvery = 3;
const int kFlakySleepSecs = 10;
+const int kServerPort = 8088;
+
} // namespace
namespace chromeos_update_engine {
@@ -82,7 +83,11 @@
class PythonHttpServer : public HttpServer {
public:
PythonHttpServer() {
- char *argv[2] = {strdup("./test_http_server"), NULL};
+ char *port_str = NULL;
+ char *argv[] = {
+ strdup("./test_http_server"),
+ asprintf(&port_str, "%d", kServerPort) >= 0 ? port_str : NULL,
+ NULL};
GError *err;
started_ = false;
validate_quit_ = true;
@@ -125,7 +130,8 @@
started_ = false;
}
- free(argv[0]);
+ for (unsigned i = 0; i < arraysize(argv); i++)
+ free(argv[i]);
LOG(INFO) << "gdb attach now!";
}