aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/google/android/mobly/snippet/bundled/NetworkingSnippet.java
diff options
context:
space:
mode:
authorKeith Dart <keith.dart@gmail.com>2017-09-14 11:10:06 -0700
committerAng Li <angli@google.com>2017-09-14 11:10:06 -0700
commit7f7798eb4b720054f40e0f507c0b2824cabbb405 (patch)
treeb9c3e9a230bb5ece85d2bbcfd10e0921c4727b5f /src/main/java/com/google/android/mobly/snippet/bundled/NetworkingSnippet.java
parentccedca0a4907591d994f7412adba2555c138bd0d (diff)
downloadmobly-bundled-snippets-7f7798eb4b720054f40e0f507c0b2824cabbb405.tar.gz
Add a networking snippet module. (#78)
Has one method for now, Connectable, that implicitly checks TCP connectivity to a host and port.
Diffstat (limited to 'src/main/java/com/google/android/mobly/snippet/bundled/NetworkingSnippet.java')
-rw-r--r--src/main/java/com/google/android/mobly/snippet/bundled/NetworkingSnippet.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/main/java/com/google/android/mobly/snippet/bundled/NetworkingSnippet.java b/src/main/java/com/google/android/mobly/snippet/bundled/NetworkingSnippet.java
new file mode 100644
index 0000000..d72205a
--- /dev/null
+++ b/src/main/java/com/google/android/mobly/snippet/bundled/NetworkingSnippet.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2017 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.google.android.mobly.snippet.bundled;
+
+import java.net.InetAddress;
+import java.net.Socket;
+import java.io.IOException;
+import java.net.UnknownHostException;
+import com.google.android.mobly.snippet.Snippet;
+import com.google.android.mobly.snippet.rpc.Rpc;
+import com.google.android.mobly.snippet.util.Log;
+
+/** Snippet class for networking RPCs. */
+public class NetworkingSnippet implements Snippet {
+
+ @Rpc(description = "Check if a host and port are connectable using a TCP connection attempt.")
+ public boolean networkIsTcpConnectable(String host, int port) {
+ InetAddress addr;
+ try {
+ addr = InetAddress.getByName(host);
+ } catch (UnknownHostException uherr) {
+ Log.d("Host name lookup failure: " + uherr.getMessage());
+ return false;
+ }
+
+ try {
+ Socket sock = new Socket(addr, port);
+ sock.close();
+ } catch (IOException ioerr) {
+ Log.d("Did not make connection to host: " + ioerr.getMessage());
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public void shutdown() {}
+}