NsdService: test coverage for client requests.
Adding coverage for:
- NsdManager client disconnection
- in-flight request GC
Test: new test passes
Bug: 37013369, 33298084
Change-Id: I92039f297cf99352bbf4196797933d89c0b819ff
diff --git a/services/core/java/com/android/server/NsdService.java b/services/core/java/com/android/server/NsdService.java
index 55bca64..efbad45 100644
--- a/services/core/java/com/android/server/NsdService.java
+++ b/services/core/java/com/android/server/NsdService.java
@@ -48,7 +48,6 @@
import com.android.internal.util.Protocol;
import com.android.internal.util.State;
import com.android.internal.util.StateMachine;
-import com.android.server.NativeDaemonConnector.Command;
/**
* Network Service Discovery Service handles remote service discovery operation requests by
@@ -161,7 +160,7 @@
}
//Last client
if (mClients.size() == 0) {
- stopMDnsDaemon();
+ mDaemon.stop();
}
break;
case AsyncChannel.CMD_CHANNEL_FULL_CONNECTION:
@@ -221,14 +220,14 @@
public void enter() {
sendNsdStateChangeBroadcast(true);
if (mClients.size() > 0) {
- startMDnsDaemon();
+ mDaemon.start();
}
}
@Override
public void exit() {
if (mClients.size() > 0) {
- stopMDnsDaemon();
+ mDaemon.stop();
}
}
@@ -262,7 +261,7 @@
//First client
if (msg.arg1 == AsyncChannel.STATUS_SUCCESSFUL &&
mClients.size() == 0) {
- startMDnsDaemon();
+ mDaemon.start();
}
return NOT_HANDLED;
case AsyncChannel.CMD_CHANNEL_DISCONNECTED:
@@ -712,26 +711,13 @@
return true;
}
- public boolean execute(Command cmd) {
- if (DBG) {
- Slog.d(TAG, cmd.toString());
- }
- try {
- mNativeConnector.execute(cmd);
- } catch (NativeDaemonConnectorException e) {
- Slog.e(TAG, "Failed to execute " + cmd, e);
- return false;
- }
- return true;
+ public void start() {
+ execute("start-service");
}
- }
- private boolean startMDnsDaemon() {
- return mDaemon.execute("start-service");
- }
-
- private boolean stopMDnsDaemon() {
- return mDaemon.execute("stop-service");
+ public void stop() {
+ execute("stop-service");
+ }
}
private boolean registerService(int regId, NsdServiceInfo service) {
@@ -743,8 +729,7 @@
int port = service.getPort();
byte[] textRecord = service.getTxtRecord();
String record = Base64.encodeToString(textRecord, Base64.DEFAULT).replace("\n", "");
- Command cmd = new Command("mdnssd", "register", regId, name, type, port, record);
- return mDaemon.execute(cmd);
+ return mDaemon.execute("register", regId, name, type, port, record);
}
private boolean unregisterService(int regId) {