apmanager: add ProcessFactory for better unittesting
Use ProcessMock instead of real process when starting hostapd and
dnsmasq during unittest.
BUG=chromium:431759
TEST=USE="asan clang" FEATURES=test emerge-$BOARD apmanager
Start AP service using apmanager and verify client can connect
to it.
Change-Id: Ifea32a2dd08247db9ea4306ecef5947b305a3c8d
Reviewed-on: https://chromium-review.googlesource.com/239975
Trybot-Ready: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
diff --git a/service.h b/service.h
index 9caf65b..a7cecac 100644
--- a/service.h
+++ b/service.h
@@ -14,6 +14,7 @@
#include "apmanager/dbus_adaptors/org.chromium.apmanager.Service.h"
#include "apmanager/dhcp_server_factory.h"
#include "apmanager/file_writer.h"
+#include "apmanager/process_factory.h"
namespace apmanager {
@@ -42,7 +43,7 @@
static const char kHostapdPath[];
static const char kHostapdConfigPathFormat[];
- static const char kHostapdControlInterfacePathFormat[];
+ static const char kHostapdControlInterfacePath[];
static const int kTerminationTimeoutSeconds;
// Return true if hostapd process is currently running.
@@ -69,6 +70,7 @@
std::unique_ptr<DHCPServer> dhcp_server_;
DHCPServerFactory* dhcp_server_factory_;
FileWriter* file_writer_;
+ ProcessFactory* process_factory_;
DISALLOW_COPY_AND_ASSIGN(Service);
};