File: bug_require_last_or_segfault.rb

package info (click to toggle)
ruby-curb 0.8.6-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 604 kB
  • ctags: 880
  • sloc: ansic: 4,242; ruby: 2,768; makefile: 3
file content (40 lines) | stat: -rw-r--r-- 1,271 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# From Vlad Jebelev:
# 
# - if I have a require statement after "require 'curb'" and there is a 
# POST with at least 1 field, the script will fail with a segmentation 
# fault, e.g. the following sequence fails every time for me (Ruby 1.8.5):
# -----------------------------------------------------------------
# require 'curb'
# require 'uri'
#  
#  url = 'https://www.google.com/accounts/ServiceLoginAuth'
#   
#  c = Curl::Easy.http_post(
#         'https://www.google.com/accounts/ServiceLoginAuth',
#               [Curl:: PostField.content('ltmpl','m_blanco')] ) do |curl|
#  end
#  ------------------------------------------------------------------
#  :..dev/util$ ruby seg.rb
#  seg.rb:6: [BUG] Segmentation fault
#  ruby 1.8.5 (2006-08-25) [i686-linux]
#                
#  Aborted
#  ------------------------------------------------------------------
#
require 'test/unit'
require 'rbconfig'

$rubycmd = RbConfig::CONFIG['RUBY_INSTALL_NAME'] || 'ruby'

class BugTestRequireLastOrSegfault < Test::Unit::TestCase
  def test_bug
    5.times do |i|
      puts "Test ##{i}"

      # will be empty string if it segfaults...
      assert_equal 'success', `#$rubycmd #{File.dirname(__FILE__)}/require_last_or_segfault_script.rb`.chomp
      sleep 5
    end
  end
end