There's a bit of trailing whitespace in test-unix-socket.py (at least in the version I cloned from your repo).
Acked-by: Ethan Jackson <et...@nicira.com> On Fri, Feb 1, 2013 at 2:46 PM, Ben Pfaff <b...@nicira.com> wrote: > Signed-off-by: Ben Pfaff <b...@nicira.com> > --- > tests/automake.mk | 1 + > tests/library.at | 24 ++++++++++++++++++- > tests/test-unix-socket.py | 54 > +++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 77 insertions(+), 2 deletions(-) > create mode 100644 tests/test-unix-socket.py > > diff --git a/tests/automake.mk b/tests/automake.mk > index 1ebdf85..c29fca8 100644 > --- a/tests/automake.mk > +++ b/tests/automake.mk > @@ -308,6 +308,7 @@ CHECK_PYFILES = \ > tests/test-ovsdb.py \ > tests/test-reconnect.py \ > tests/MockXenAPI.py \ > + tests/test-unix-socket.py \ > tests/test-unixctl.py \ > tests/test-vlog.py > EXTRA_DIST += $(CHECK_PYFILES) > diff --git a/tests/library.at b/tests/library.at > index 3e84648..650fef3 100644 > --- a/tests/library.at > +++ b/tests/library.at > @@ -114,7 +114,7 @@ m4_foreach( > AT_CHECK([test-util testname], [0], [], []) > AT_CLEANUP]) > > -AT_SETUP([test unix socket -- short pathname]) > +AT_SETUP([test unix socket, short pathname - C]) > AT_CHECK([test-unix-socket x]) > AT_CLEANUP > > @@ -123,7 +123,7 @@ dnl go in a fixed-length field in struct sockaddr_un. > Generally the limit > dnl is about 100 bytes. On Linux, we work around this by indirecting through > dnl a directory fd using /proc/self/fd/<dirfd>. We do not have a workaround > dnl for other platforms, so we skip the test there. > -AT_SETUP([test unix socket -- long pathname]) > +AT_SETUP([test unix socket, long pathname - C]) > AT_SKIP_IF([test ! -d /proc/self/fd]) > dnl Linux has a 108 byte limit; this is 150 bytes long. > > longname=012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 > @@ -132,6 +132,26 @@ cd $longname > AT_CHECK([test-unix-socket ../$longname/socket socket]) > AT_CLEANUP > > +AT_SETUP([test unix socket, short pathname - Python]) > +AT_SKIP_IF([test $HAVE_PYTHON = no]) > +AT_CHECK([$PYTHON $srcdir/test-unix-socket.py x]) > +AT_CLEANUP > + > +dnl Unix sockets with long names are problematic because the name has to > +dnl go in a fixed-length field in struct sockaddr_un. Generally the limit > +dnl is about 100 bytes. On Linux, we work around this by indirecting through > +dnl a directory fd using /proc/self/fd/<dirfd>. We do not have a workaround > +dnl for other platforms, so we skip the test there. > +AT_SETUP([test unix socket, long pathname - Python]) > +AT_SKIP_IF([test $HAVE_PYTHON = no]) > +AT_SKIP_IF([test ! -d /proc/self/fd]) > +dnl Linux has a 108 byte limit; this is 150 bytes long. > +longname=012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 > +mkdir $longname > +cd $longname > +AT_CHECK([$PYTHON $abs_srcdir/test-unix-socket.py ../$longname/socket > socket]) > +AT_CLEANUP > + > AT_SETUP([ovs_assert]) > OVS_LOGDIR=`pwd`; export OVS_LOGDIR > AT_CHECK([test-util -voff -vfile:info '-vPATTERN:file:%c|%p|%m' --log-file > assert || kill -l $?], > diff --git a/tests/test-unix-socket.py b/tests/test-unix-socket.py > new file mode 100644 > index 0000000..a570662 > --- /dev/null > +++ b/tests/test-unix-socket.py > @@ -0,0 +1,54 @@ > +# > +# Copyright (c) 2010, 2012, 2013 Nicira, 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. > + > +import os > +import signal > +import socket > +import sys > + > +import ovs.socket_util > + > +def main(argv): > + if len(argv) not in (2, 3): > + sys.stderr.write("usage: %s SOCKETNAME1 [SOCKETNAME2]", argv[0]) > + sys.exit(1) > + > + sockname1 = argv[1] > + if len(argv) > 2: > + sockname2 = argv[2] > + else: > + sockname2 = sockname1 > + > + signal.signal(signal.SIGALRM, signal.SIG_DFL) > + signal.alarm(5) > + > + # Create a listening socket under name 'sockname1'. > + error, sock1 = ovs.socket_util.make_unix_socket(socket.SOCK_STREAM, > False, > + sockname1, None) > + if error: > + sys.stderr.write("%s: bind failed (%s)" % (sockname1, > + os.strerror(error))) > + sock1.listen(1) > + > + # Connect to 'sockname2' (which should be the same file, perhaps under a > + # different name). > + error, sock2 = ovs.socket_util.make_unix_socket(socket.SOCK_STREAM, > False, > + None, sockname2) > + if error: > + sys.stderr.write("%s: connect failed (%s)" % (sockname2, > + os.strerror(error))) > + > +if __name__ == '__main__': > + main(sys.argv) > -- > 1.7.2.5 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev