add a mode to use unix socket between agent and drivers
this's to support user builds
Change-Id: I908bcc0599f8c241b2ed7f834a5b8018bd81f613
diff --git a/sysfuzzer/framework/VtsFuzzerMain.cpp b/sysfuzzer/framework/VtsFuzzerMain.cpp
index ebdc69b..ca8f352 100644
--- a/sysfuzzer/framework/VtsFuzzerMain.cpp
+++ b/sysfuzzer/framework/VtsFuzzerMain.cpp
@@ -47,6 +47,7 @@
#include "specification_parser/SpecificationBuilder.h"
#include "BinderServer.h"
+#include "SocketServer.h"
using namespace std;
using namespace android;
@@ -78,23 +79,31 @@
// Parses command args and kicks things off.
int main(int argc, char* const argv[]) {
static const struct option longOptions[] = {
- {"help", no_argument, NULL, 'h'},
- {"class", required_argument, NULL, 'c'},
- {"type", required_argument, NULL, 't'},
- {"version", required_argument, NULL, 'v'},
- {"epoch_count", required_argument, NULL, 'e'},
- {"spec_dir", required_argument, NULL, 's'},
- {"service_name", required_argument, NULL, 'n'},
- {"server", optional_argument, NULL, 'd'},
- {"agent_port", optional_argument, NULL, 'p'},
- {NULL, 0, NULL, 0}};
+ {"help", no_argument, NULL, 'h'},
+ {"class", required_argument, NULL, 'c'},
+ {"type", required_argument, NULL, 't'},
+ {"version", required_argument, NULL, 'v'},
+ {"epoch_count", required_argument, NULL, 'e'},
+ {"spec_dir", required_argument, NULL, 's'},
+#ifndef VTS_AGENT_DRIVER_COMM_BINDER // socket
+ {"socket_port_file", optional_argument, NULL, 'f'},
+#else // binder
+ {"service_name", required_argument, NULL, 'n'},
+#endif
+ {"server", optional_argument, NULL, 'd'},
+ {"agent_port", optional_argument, NULL, 'p'},
+ {NULL, 0, NULL, 0}};
int target_class;
int target_type;
float target_version = 1.0;
int epoch_count = kDefaultEpochCount;
string spec_dir_path(DEFAULT_SPEC_DIR_PATH);
bool server = false;
+#ifndef VTS_AGENT_DRIVER_COMM_BINDER // socket
+ string socket_port_file;
+#else // binder
string service_name(VTS_FUZZER_BINDER_SERVICE_NAME);
+#endif
int agent_port = -1;
while (true) {
@@ -152,9 +161,15 @@
case 's':
spec_dir_path = string(optarg);
break;
+#ifndef VTS_AGENT_DRIVER_COMM_BINDER // socket
+ case 'f':
+ socket_port_file = string(optarg);
+ break;
+#else // binder
case 'n':
service_name = string(optarg);
break;
+#endif
case 'd':
server = true;
break;
@@ -182,8 +197,13 @@
cout << endl << PASSED_MARKER << endl;
}
} else {
+#ifndef VTS_AGENT_DRIVER_COMM_BINDER // socket
+ android::vts::StartSocketServer(socket_port_file, spec_builder,
+ INTERFACE_SPEC_LIB_FILENAME);
+#else // binder
android::vts::StartBinderServer(service_name, spec_builder,
INTERFACE_SPEC_LIB_FILENAME);
+#endif
}
return 0;