THRIFT-3371: added test for abstract namespace domain sockets.
diff --git a/test/crossrunner/run.py b/test/crossrunner/run.py
index e3300ba..ae7d366 100644
--- a/test/crossrunner/run.py
+++ b/test/crossrunner/run.py
@@ -204,7 +204,7 @@
     return port if ok else self._get_domain_port()
 
   def alloc_port(self, socket_type):
-    if socket_type == 'domain':
+    if socket_type in ('domain', 'abstract'):
       return self._get_domain_port()
     else:
       return self._get_tcp_port()
@@ -226,6 +226,8 @@
         path = domain_socket_path(port)
         if os.path.exists(path):
           os.remove(path)
+      elif socket_type == 'abstract':
+        self._dom_ports.remove(port)
       else:
         self._ports.remove(port)
     except IOError as err:
diff --git a/test/crossrunner/test.py b/test/crossrunner/test.py
index 512e664..3750ba3 100644
--- a/test/crossrunner/test.py
+++ b/test/crossrunner/test.py
@@ -60,10 +60,11 @@
       cmd[0] = abs_if_exists(cmd[0])
     return cmd
 
-  def _socket_arg(self, socket, port):
+  def _socket_args(self, socket, port):
     return {
-      'ip-ssl': '--ssl',
-      'domain': '--domain-socket=%s' % domain_socket_path(port),
+      'ip-ssl': ['--ssl'],
+      'domain': ['--domain-socket=%s' % domain_socket_path(port)],
+      'abstract': ['--abstract-namespace', '--domain-socket=%s' % domain_socket_path(port)],
     }.get(socket, None)
 
   def build_command(self, port):
@@ -71,9 +72,9 @@
     args = []
     args.append('--protocol=' + self.protocol)
     args.append('--transport=' + self.transport)
-    socket_arg = self._socket_arg(self.socket, port)
-    if socket_arg:
-      args.append(socket_arg)
+    socket_args = self._socket_args(self.socket, port)
+    if socket_args:
+      args += socket_args
     args.append('--port=%d' % port)
     if self._join_args:
       cmd.append('%s' % " ".join(args))