diff options
Diffstat (limited to 'spec/rubyspec/library/socket/fixtures/classes.rb')
| -rw-r--r-- | spec/rubyspec/library/socket/fixtures/classes.rb | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/spec/rubyspec/library/socket/fixtures/classes.rb b/spec/rubyspec/library/socket/fixtures/classes.rb deleted file mode 100644 index b8e5d2a38d..0000000000 --- a/spec/rubyspec/library/socket/fixtures/classes.rb +++ /dev/null @@ -1,93 +0,0 @@ -require 'socket' - -module SocketSpecs - # helper to get the hostname associated to 127.0.0.1 - def self.hostname - # Calculate each time, without caching, since the result might - # depend on things like do_not_reverse_lookup mode, which is - # changing from test to test - Socket.getaddrinfo("127.0.0.1", nil)[0][2] - end - - def self.hostnamev6 - Socket.getaddrinfo("::1", nil)[0][2] - end - - def self.addr(which=:ipv4) - case which - when :ipv4 - host = "127.0.0.1" - when :ipv6 - host = "::1" - end - Socket.getaddrinfo(host, nil)[0][3] - end - - def self.reserved_unused_port - # https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers - 0 - end - - def self.sockaddr_in(port, host) - Socket::SockAddr_In.new(Socket.sockaddr_in(port, host)) - end - - def self.socket_path - path = tmp("unix.sock", false) - # Check for too long unix socket path (max 108 bytes including \0 => 107) - # Note that Linux accepts not null-terminated paths but the man page advises against it. - if path.bytesize > 107 - path = "/tmp/unix_server_spec.socket" - end - rm_socket(path) - path - end - - def self.rm_socket(path) - File.delete(path) if File.exist?(path) - end - - # TCPServer echo server accepting one connection - class SpecTCPServer - attr_reader :hostname, :port - - def initialize - @hostname = SocketSpecs.hostname - @server = TCPServer.new @hostname, 0 - @port = @server.addr[1] - - log "SpecTCPServer starting on #{@hostname}:#{@port}" - - @thread = Thread.new do - socket = @server.accept - log "SpecTCPServer accepted connection: #{socket}" - service socket - end - end - - def service(socket) - begin - data = socket.recv(1024) - - return if data.empty? - log "SpecTCPServer received: #{data.inspect}" - - return if data == "QUIT" - - socket.send data, 0 - ensure - socket.close - end - end - - def shutdown - log "SpecTCPServer shutting down" - @thread.join - @server.close - end - - def log(message) - @logger.puts message if @logger - end - end -end |
