From 07cd3df3e80386e4216577919939c653fcf5dfeb Mon Sep 17 00:00:00 2001 From: Marat Radchenko Date: Sat, 15 Jul 2023 15:35:19 +0300 Subject: Rewrite socket files test in pure Ruby This avoids dependency on nc(1) This commit is a follow-up to 9b1057f2e57cf0b304d94fe422e126bbc7f6d24b --- tests/test_bindfs.rb | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/test_bindfs.rb b/tests/test_bindfs.rb index fe20055..031529b 100755 --- a/tests/test_bindfs.rb +++ b/tests/test_bindfs.rb @@ -25,6 +25,7 @@ $LOAD_PATH << (ENV['srcdir'] || '.') require 'common.rb' require 'etc' +require 'socket' require 'tempfile' include Errno @@ -926,17 +927,16 @@ testenv("-ouser -onofail,nouser,,,delete-deny -o users -o auto,rename-deny,noaut end # Issue #132 / PR #133 -if `which nc 2> /dev/null`.strip != '' - testenv("", :title => "socket files") do - IO.popen("nc -U mnt/sock -l", "r") do |pipe| - sleep 0.1 until File.exists?('mnt/sock') - system("echo hello | nc -U -q 0 mnt/sock") - result = pipe.read - assert { result.strip == "hello" } +testenv("", :title => "socket files") do + UNIXServer.open("mnt/sock") do |server| + UNIXSocket.open("mnt/sock") do |client| + socket = server.accept + socket.write("hello") + socket.close + result = client.read + assert { result == "hello" } end end -else - puts "Skipping socket file test because 'nc' is not installed." end # FIXME: this stuff around testenv is a hax, and testenv may also exit(), which defeats the 'ensure' below. -- cgit v1.2.3