diff options
author | Michal Gorny <mgorny@gentoo.org> | 2018-12-16 15:12:06 +0000 |
---|---|---|
committer | Michal Gorny <mgorny@gentoo.org> | 2018-12-16 15:12:06 +0000 |
commit | 4ce222198cfde1c013b86b2c694a835a47ac153b (patch) | |
tree | 83d63b12efc46c475b31a9b01ba8ef6ee7318e38 /libcxx/test | |
parent | 13ac2f15b0416bf85f53753657dafda6da4c353f (diff) |
[test] [support] Use socket()+bind() to create unix sockets portably
Replace the mknod() call with socket() + bind() for creating unix
sockets. The mknod() method is not portable and does not work
on NetBSD while binding the socket should work on all systems supporting
unix sockets.
Differential Revision: https://reviews.llvm.org/D55576
llvm-svn: 349305
Diffstat (limited to 'libcxx/test')
-rw-r--r-- | libcxx/test/support/filesystem_dynamic_test_helper.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libcxx/test/support/filesystem_dynamic_test_helper.py b/libcxx/test/support/filesystem_dynamic_test_helper.py index 5bb5b258c85b..078958274978 100644 --- a/libcxx/test/support/filesystem_dynamic_test_helper.py +++ b/libcxx/test/support/filesystem_dynamic_test_helper.py @@ -1,5 +1,6 @@ import sys import os +import socket import stat # Ensure that this is being run on a specific platform @@ -76,8 +77,13 @@ def create_fifo(source): def create_socket(source): - mode = 0o600 | stat.S_IFSOCK - os.mknod(sanitize(source), mode) + sock = socket.socket(socket.AF_UNIX) + sanitized_source = sanitize(source) + # AF_UNIX sockets may have very limited path length, so split it + # into chdir call (with technically unlimited length) followed + # by bind() relative to the directory + os.chdir(os.path.dirname(sanitized_source)) + sock.bind(os.path.basename(sanitized_source)) if __name__ == '__main__': |