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!";
   }