ruby-changes:46816
From: eregon <ko1@a...>
Date: Sun, 28 May 2017 06:55:07 +0900 (JST)
Subject: [ruby-changes:46816] eregon:r58931 (trunk): Update to ruby/spec@2795010
eregon 2017-05-28 06:55:02 +0900 (Sun, 28 May 2017) New Revision: 58931 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=58931 Log: Update to ruby/spec@2795010 Added files: trunk/spec/rubyspec/core/exception/uncaught_throw_error_spec.rb trunk/spec/rubyspec/library/socket/udpsocket/write_spec.rb trunk/spec/rubyspec/optional/capi/boolean_spec.rb Removed files: trunk/spec/rubyspec/optional/capi/false_spec.rb trunk/spec/rubyspec/optional/capi/true_spec.rb Modified files: trunk/spec/rubyspec/.travis.yml trunk/spec/rubyspec/core/dir/shared/delete.rb trunk/spec/rubyspec/core/io/fixtures/classes.rb trunk/spec/rubyspec/core/io/fixtures/lines.txt trunk/spec/rubyspec/core/kernel/gets_spec.rb trunk/spec/rubyspec/core/kernel/system_spec.rb trunk/spec/rubyspec/core/kernel/test_spec.rb trunk/spec/rubyspec/language/alias_spec.rb trunk/spec/rubyspec/language/undef_spec.rb trunk/spec/rubyspec/library/cgi/cookie/to_s_spec.rb trunk/spec/rubyspec/library/socket/basicsocket/recv_spec.rb trunk/spec/rubyspec/library/socket/fixtures/classes.rb trunk/spec/rubyspec/library/socket/ipsocket/recvfrom_spec.rb trunk/spec/rubyspec/library/socket/tcpsocket/recv_nonblock_spec.rb trunk/spec/rubyspec/library/socket/tcpsocket/setsockopt_spec.rb trunk/spec/rubyspec/library/socket/tcpsocket/shared/new.rb trunk/spec/rubyspec/library/socket/udpsocket/send_spec.rb trunk/spec/rubyspec/library/yaml/dump_spec.rb trunk/spec/rubyspec/library/zlib/crc_table_spec.rb trunk/spec/rubyspec/optional/capi/ext/io_spec.c trunk/spec/rubyspec/optional/capi/ext/kernel_spec.c trunk/spec/rubyspec/optional/capi/ext/rubyspec.h trunk/spec/rubyspec/optional/capi/io_spec.rb trunk/spec/rubyspec/optional/capi/kernel_spec.rb trunk/spec/rubyspec/optional/capi/spec_helper.rb Index: spec/rubyspec/optional/capi/false_spec.rb =================================================================== --- spec/rubyspec/optional/capi/false_spec.rb (revision 58930) +++ spec/rubyspec/optional/capi/false_spec.rb (nonexistent) @@ -1,21 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/optional/capi/false_spec.rb#L0 -require File.expand_path('../spec_helper', __FILE__) - -load_extension("boolean") - -describe "CApiFalseSpecs" do - before :each do - @b = CApiBooleanSpecs.new - end - - describe "a false value from Ruby" do - it "is falsey in C" do - @b.is_true(false).should == 2 - end - end - - describe "a false value from Qfalse" do - it "is falsey in C" do - @b.is_true(@b.q_false).should == 2 - end - end -end Property changes on: spec/rubyspec/optional/capi/false_spec.rb ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -LF \ No newline at end of property Index: spec/rubyspec/optional/capi/true_spec.rb =================================================================== --- spec/rubyspec/optional/capi/true_spec.rb (revision 58930) +++ spec/rubyspec/optional/capi/true_spec.rb (nonexistent) @@ -1,21 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/optional/capi/true_spec.rb#L0 -require File.expand_path('../spec_helper', __FILE__) - -load_extension("boolean") - -describe "CApiTrueSpecs" do - before :each do - @b = CApiBooleanSpecs.new - end - - describe "a true value from Ruby" do - it "is truthy in C" do - @b.is_true(true).should == 1 - end - end - - describe "a true value from Qtrue" do - it "is truthy in C" do - @b.is_true(@b.q_true).should == 1 - end - end -end Property changes on: spec/rubyspec/optional/capi/true_spec.rb ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -LF \ No newline at end of property Index: spec/rubyspec/library/zlib/crc_table_spec.rb =================================================================== --- spec/rubyspec/library/zlib/crc_table_spec.rb (revision 58930) +++ spec/rubyspec/library/zlib/crc_table_spec.rb (revision 58931) @@ -4,8 +4,72 @@ require "zlib" https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/library/zlib/crc_table_spec.rb#L4 describe "Zlib.crc_table" do it "returns the same value as zlib's get_crc_table()" do - Zlib.crc_table.should == - [0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, 293667514 8, 906185462, 1090812512, 3747672003, 2825379669, 829329135, 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, 936918000, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 15103342 35, 755167117] + Zlib.crc_table.should == [ + 0, 1996959894, 3993919788, 2567524794, + 124634137, 1886057615, 3915621685, 2657392035, + 249268274, 2044508324, 3772115230, 2547177864, + 162941995, 2125561021, 3887607047, 2428444049, + 498536548, 1789927666, 4089016648, 2227061214, + 450548861, 1843258603, 4107580753, 2211677639, + 325883990, 1684777152, 4251122042, 2321926636, + 335633487, 1661365465, 4195302755, 2366115317, + 997073096, 1281953886, 3579855332, 2724688242, + 1006888145, 1258607687, 3524101629, 2768942443, + 901097722, 1119000684, 3686517206, 2898065728, + 853044451, 1172266101, 3705015759, 2882616665, + 651767980, 1373503546, 3369554304, 3218104598, + 565507253, 1454621731, 3485111705, 3099436303, + 671266974, 1594198024, 3322730930, 2970347812, + 795835527, 1483230225, 3244367275, 3060149565, + 1994146192, 31158534, 2563907772, 4023717930, + 1907459465, 112637215, 2680153253, 3904427059, + 2013776290, 251722036, 2517215374, 3775830040, + 2137656763, 141376813, 2439277719, 3865271297, + 1802195444, 476864866, 2238001368, 4066508878, + 1812370925, 453092731, 2181625025, 4111451223, + 1706088902, 314042704, 2344532202, 4240017532, + 1658658271, 366619977, 2362670323, 4224994405, + 1303535960, 984961486, 2747007092, 3569037538, + 1256170817, 1037604311, 2765210733, 3554079995, + 1131014506, 879679996, 2909243462, 3663771856, + 1141124467, 855842277, 2852801631, 3708648649, + 1342533948, 654459306, 3188396048, 3373015174, + 1466479909, 544179635, 3110523913, 3462522015, + 1591671054, 702138776, 2966460450, 3352799412, + 1504918807, 783551873, 3082640443, 3233442989, + 3988292384, 2596254646, 62317068, 1957810842, + 3939845945, 2647816111, 81470997, 1943803523, + 3814918930, 2489596804, 225274430, 2053790376, + 3826175755, 2466906013, 167816743, 2097651377, + 4027552580, 2265490386, 503444072, 1762050814, + 4150417245, 2154129355, 426522225, 1852507879, + 4275313526, 2312317920, 282753626, 1742555852, + 4189708143, 2394877945, 397917763, 1622183637, + 3604390888, 2714866558, 953729732, 1340076626, + 3518719985, 2797360999, 1068828381, 1219638859, + 3624741850, 2936675148, 906185462, 1090812512, + 3747672003, 2825379669, 829329135, 1181335161, + 3412177804, 3160834842, 628085408, 1382605366, + 3423369109, 3138078467, 570562233, 1426400815, + 3317316542, 2998733608, 733239954, 1555261956, + 3268935591, 3050360625, 752459403, 1541320221, + 2607071920, 3965973030, 1969922972, 40735498, + 2617837225, 3943577151, 1913087877, 83908371, + 2512341634, 3803740692, 2075208622, 213261112, + 2463272603, 3855990285, 2094854071, 198958881, + 2262029012, 4057260610, 1759359992, 534414190, + 2176718541, 4139329115, 1873836001, 414664567, + 2282248934, 4279200368, 1711684554, 285281116, + 2405801727, 4167216745, 1634467795, 376229701, + 2685067896, 3608007406, 1308918612, 956543938, + 2808555105, 3495958263, 1231636301, 1047427035, + 2932959818, 3654703836, 1088359270, 936918000, + 2847714899, 3736837829, 1202900863, 817233897, + 3183342108, 3401237130, 1404277552, 615818150, + 3134207493, 3453421203, 1423857449, 601450431, + 3009837614, 3294710456, 1567103746, 711928724, + 3020668471, 3272380065, 1510334235, 755167117, + ] end end Index: spec/rubyspec/library/socket/tcpsocket/shared/new.rb =================================================================== --- spec/rubyspec/library/socket/tcpsocket/shared/new.rb (revision 58930) +++ spec/rubyspec/library/socket/tcpsocket/shared/new.rb (revision 58931) @@ -29,28 +29,28 @@ describe :tcpsocket_new, shared: true do https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/library/socket/tcpsocket/shared/new.rb#L29 end it "silently ignores 'nil' as the third parameter" do - @socket = TCPSocket.send(@method, @hostname, SocketSpecs.port, nil) + @socket = TCPSocket.send(@method, @hostname, @server.port, nil) @socket.should be_an_instance_of(TCPSocket) end it "connects to a listening server with host and port" do - @socket = TCPSocket.send(@method, @hostname, SocketSpecs.port) + @socket = TCPSocket.send(@method, @hostname, @server.port) @socket.should be_an_instance_of(TCPSocket) end it "connects to a server when passed local_host argument" do - @socket = TCPSocket.send(@method, @hostname, SocketSpecs.port, @hostname) + @socket = TCPSocket.send(@method, @hostname, @server.port, @hostname) @socket.should be_an_instance_of(TCPSocket) end it "connects to a server when passed local_host and local_port arguments" do - @socket = TCPSocket.send(@method, @hostname, SocketSpecs.port, + @socket = TCPSocket.send(@method, @hostname, @server.port, @hostname, SocketSpecs.local_port) @socket.should be_an_instance_of(TCPSocket) end it "has an address once it has connected to a listening server" do - @socket = TCPSocket.send(@method, @hostname, SocketSpecs.port) + @socket = TCPSocket.send(@method, @hostname, @server.port) @socket.should be_an_instance_of(TCPSocket) # TODO: Figure out how to abstract this. You can get AF_INET Index: spec/rubyspec/library/socket/tcpsocket/setsockopt_spec.rb =================================================================== --- spec/rubyspec/library/socket/tcpsocket/setsockopt_spec.rb (revision 58930) +++ spec/rubyspec/library/socket/tcpsocket/setsockopt_spec.rb (revision 58931) @@ -5,10 +5,7 @@ describe "TCPSocket#setsockopt" do https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/library/socket/tcpsocket/setsockopt_spec.rb#L5 before :each do @server = SocketSpecs::SpecTCPServer.new @hostname = @server.hostname - end - - before :each do - @sock = TCPSocket.new @hostname, SocketSpecs.port + @sock = TCPSocket.new @hostname, @server.port end after :each do Index: spec/rubyspec/library/socket/tcpsocket/recv_nonblock_spec.rb =================================================================== --- spec/rubyspec/library/socket/tcpsocket/recv_nonblock_spec.rb (revision 58930) +++ spec/rubyspec/library/socket/tcpsocket/recv_nonblock_spec.rb (revision 58931) @@ -16,7 +16,7 @@ describe "TCPSocket#recv_nonblock" do https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/library/socket/tcpsocket/recv_nonblock_spec.rb#L16 end it "returns a String read from the socket" do - @socket = TCPSocket.new @hostname, SocketSpecs.port + @socket = TCPSocket.new @hostname, @server.port @socket.write "TCPSocket#recv_nonblock" # Wait for the server to echo. This spec is testing the return @@ -29,7 +29,7 @@ describe "TCPSocket#recv_nonblock" do https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/library/socket/tcpsocket/recv_nonblock_spec.rb#L29 ruby_version_is '2.3' do it 'returns :wait_readable in exceptionless mode' do - @socket = TCPSocket.new @hostname, SocketSpecs.port + @socket = TCPSocket.new @hostname, @server.port @socket.recv_nonblock(50, exception: false).should == :wait_readable end end Index: spec/rubyspec/library/socket/ipsocket/recvfrom_spec.rb =================================================================== --- spec/rubyspec/library/socket/ipsocket/recvfrom_spec.rb (revision 58930) +++ spec/rubyspec/library/socket/ipsocket/recvfrom_spec.rb (revision 58931) @@ -17,8 +17,11 @@ describe "Socket::IPSocket#recvfrom" do https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/library/socket/ipsocket/recvfrom_spec.rb#L17 data = nil t = Thread.new do client = @server.accept - data = client.recvfrom(6) - client.close + begin + data = client.recvfrom(6) + ensure + client.close + end end @client.send('hello', 0) @@ -33,8 +36,11 @@ describe "Socket::IPSocket#recvfrom" do https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/library/socket/ipsocket/recvfrom_spec.rb#L36 data = nil t = Thread.new do client = @server.accept - data = client.recvfrom(3) - client.close + begin + data = client.recvfrom(3) + ensure + client.close + end end @client.send('hello', 0) Index: spec/rubyspec/library/socket/udpsocket/send_spec.rb =================================================================== --- spec/rubyspec/library/socket/udpsocket/send_spec.rb (revision 58930) +++ spec/rubyspec/library/socket/udpsocket/send_spec.rb (revision 58931) @@ -6,22 +6,25 @@ describe "UDPSocket.send" do https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/library/socket/udpsocket/send_spec.rb#L6 @ready = false @server_thread = Thread.new do @server = UDPSocket.open - @server.bind(nil, SocketSpecs.port) - @ready = true begin - @msg = @server.recvfrom_nonblock(64) - rescue IO::WaitReadable - IO.select([@server]) - retry + @server.bind(nil, SocketSpecs.port) + @ready = true + begin + @msg = @server.recvfrom_nonblock(64) + rescue IO::WaitReadable + IO.select([@server]) + retry + end + ensure + @server.close if !@server.closed? end - @server.close end Thread.pass while @server_thread.status and !@ready end it "sends data in ad hoc mode" do @socket = UDPSocket.open - @socket.send("ad hoc", 0, SocketSpecs.hostname,SocketSpecs.port) + @socket.send("ad hoc", 0, SocketSpecs.hostname, SocketSpecs.port) @socket.close @server_thread.join @@ -33,7 +36,7 @@ describe "UDPSocket.send" do https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/library/socket/udpsocket/send_spec.rb#L36 it "sends data in ad hoc mode (with port given as a String)" do @socket = UDPSocket.open - @socket.send("ad hoc", 0, SocketSpecs.hostname,SocketSpecs.str_port) + @socket.send("ad hoc", 0, SocketSpecs.hostname, SocketSpecs.str_port) @socket.close @server_thread.join @@ -45,7 +48,7 @@ describe "UDPSocket.send" do https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/library/socket/udpsocket/send_spec.rb#L48 it "sends data in connection mode" do @socket = UDPSocket.open - @socket.connect(SocketSpecs.hostname,SocketSpecs.port) + @socket.connect(SocketSpecs.hostname, SocketSpecs.port) @socket.send("connection-based", 0) @socket.close @server_thread.join @@ -55,4 +58,17 @@ describe "UDPSocket.send" do https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/library/socket/udpsocket/send_spec.rb#L58 @msg[1][1].should be_kind_of(Fixnum) @msg[1][3].should == "127.0.0.1" end + + it "raises EMSGSIZE if data is too too big" do + @socket = UDPSocket.open + begin + lambda do + @socket.send('1' * 100_000, 0, SocketSpecs.hostname, SocketSpecs.str_port) + end.should raise_error(Errno::EMSGSIZE) + ensure + @socket.send("ad hoc", 0, SocketSpecs.hostname, SocketSpecs.port) + @socket.close + @server_thread.join + end + end end Index: spec/rubyspec/library/socket/udpsocket/write_spec.rb =================================================================== --- spec/rubyspec/library/socket/udpsocket/write_spec.rb (nonexistent) +++ spec/rubyspec/library/socket/udpsocket/write_spec.rb (revision 58931) @@ -0,0 +1,21 @@ https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/library/socket/udpsocket/write_spec.rb#L1 +require File.expand_path('../../../../spec_helper', __FILE__) +require File.expand_path('../../fixtures/classes', __FILE__) + +describe "UDPSocket#write" do + it "raises EMSGSIZE if msg is too long" do + begin + host, port = SocketSpecs.hostname, SocketSpecs.port + s1 = UDPSocket.new + s1.bind(host, port) + s2 = UDPSocket.new + s2.connect(host, port) + + lambda do + s2.write('1' * 100_000) + end.should raise_error(Errno::EMSGSIZE) + ensure + s1.close if s1 && !s1.closed? + s2.close if s2 && !s2.closed? + end + end +end Index: spec/rubyspec/library/socket/fixtures/classes.rb =================================================================== --- spec/rubyspec/library/socket/fixtures/classes.rb (revision 58930) +++ spec/rubyspec/library/socket/fixtures/classes.rb (revision 58931) @@ -72,26 +72,20 @@ module SocketSpecs https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/library/socket/fixtures/classes.rb#L72 # TCPServer echo server accepting one connection class SpecTCPServer - attr_accessor :hostname, :port, :logger + attr_reader :hostname, :port - def initialize(host=nil, port=nil, logger=nil) - @hostname = host || SocketSpecs.hostname - @port = port || SocketSpecs.port - @logger = logger + def initialize + @hostname = SocketSpecs.hostname + @server = TCPServer.new @hostname, 0 + @port = @server.addr[1] - start - end - - def start log "SpecTCPServer starting on #{@hostname}:#{@port}" - @server = TCPServer.new @hostname, @port @thread = Thread.new do socket = @server.accept log "SpecTCPServer accepted connection: #{socket}" service socket end - self end def service(socket) Index: spec/rubyspec/library/socket/basicsocket/recv_spec.rb =================================================================== --- spec/rubyspec/library/socket/basicsocket/recv_spec.rb (revision 58930) +++ spec/rubyspec/library/socket/basicsocket/recv_spec.rb (revision 58931) @@ -9,8 +9,7 @@ describe "BasicSocket#recv" do https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/library/socket/basicsocket/recv_spec.rb#L9 end after :each do - @server.closed?.should be_false - @server.close + @server.close unless @server.closed? ScratchPad.clear end @@ -83,8 +82,11 @@ describe "BasicSocket#recv" do https://github.com/ruby/ruby/blob/trunk/spec/rubyspec/library/socket/basicsocket/recv_spec.rb#L82 client = @server.accept buf = "foo" - client.recv(4, 0, buf) - client.close + begin + client.recv(4, 0, buf) + ensure + client.close + end buf.should == "data" socket.close Index: spec/rubyspec/library/cgi/cookie/to_s_spec.rb ======================================================== (... truncated) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/