X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=tests%2Flibrary.at;h=cab8e2c9be45cb4815d4853c0332623b4a762100;hb=a339aa8162f4ac29784bc4e35612137f9cb1a025;hp=1dca2b850b6027b18a97110ea0d7a24788d3c9b7;hpb=10a24935c9d382e4d85b05d9616843f3d3bb4983;p=openvswitch diff --git a/tests/library.at b/tests/library.at index 1dca2b85..cab8e2c9 100644 --- a/tests/library.at +++ b/tests/library.at @@ -38,3 +38,30 @@ AT_SETUP([test byte order conversion]) AT_KEYWORDS([byte order]) AT_CHECK([test-byte-order], [0], [ignore]) AT_CLEANUP + +AT_SETUP([test unix socket -- short pathname]) +AT_CHECK([test-unix-socket 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/. We do not have a workaround +dnl for other platforms, so we skip the test there. +AT_SETUP([test unix socket -- long pathname]) +AT_CHECK([dnl + case `uname` in dnl ( + *[[lL]]inux*) + exit 0 + ;; dnl ( + *) + dnl Magic exit code to tell Autotest to skip this test. + exit 77 + ;; + esac +]) +dnl Linux has a 108 byte limit; this is 150 bytes long. +mkdir 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +cd 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +AT_CHECK([test-unix-socket ../012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/socket socket]) +AT_CLEANUP