Sha256: 7b308fcced9a180fb1255a1e80ca321b05fc04a9c6c762da4acc6e69552fd7f9

Contents?: true

Size: 1.98 KB

Versions: 12

Compression:

Stored size: 1.98 KB

Contents

#!/usr/bin/env ruby
require 'test/unit'
require 'rubygems'; require 'require_relative'
require_relative '../../app/method'

class TestAppMethod < Test::Unit::TestCase

  def test_find_method_with_line
    method = Rubinius::VM.backtrace(0, true)[0].method
    line = __LINE__
    ##############################
    def foo                        # line +  2
      a = 5                        # line +  3
      b = 6                        # line +  4
    end                            # line +  5
    1.times do                     # line +  6 
      1.times do                   # line +  7
        x = 11                     # line +  8
        foo                        # line +  9
      end                          # line + 10
      c = 14                       # line + 11
    end                            # line + 12
    ################################################
    meths = []                     # line + 14
    expect = Array.new(22, true)  # line + 15
    [5, 10, 12, 13, 18].each do |i|
      expect[i] = false             # line + 17
    end                            # line + 18
    (2..21).each do |l|            # line + 19
      meth = Trepanning::Method.find_method_with_line(method, line+l)
      meths << meth                # line + 21
      assert_equal(expect[l], !!meth, "Mismatched line #{line+l}")
    end
    pairs = [[1,2], [0,4], [5,9], [6,7], [14,15], [20,21]]
    pairs.each do |pair|
      assert_equal(meths[pair[0]].inspect, meths[pair[1]].inspect, 
                   "Method compare")
    end
  end
  def test_valid_ip?
    meth = Rubinius::VM.backtrace(0, true)[0].method
    ip = Trepanning::Method.locate_line( __LINE__, meth)[1]
    assert_equal(true, ip.kind_of?(Fixnum), 
                 "locate line of #{__LINE__} should have gotten an IP;" +
                 " got: #{ip.inspect}")
    [[-1, false],
     [ 0, true], 
     [ip, true], 
     [100000, false]].each do |ip, expect|
      assert_equal expect, Trepanning::Method.valid_ip?(meth, ip)
    end
  end

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
rbx-trepanning-0.2.1-universal-rubinius-2.0 test/unit/test-app-method.rb
rbx-trepanning-0.2.1-universal-rubinius-1.2 test/unit/test-app-method.rb
rbx-trepanning-0.2.0-universal-rubinius-2.0 test/unit/test-app-method.rb
rbx-trepanning-0.1.0-universal-rubinius-1.2 test/unit/test-app-method.rb
rbx-trepanning-0.0.8-universal-rubinius-1.2 test/unit/test-app-method.rb
rbx-trepanning-0.0.7-universal-rubinius-1.2 test/unit/test-app-method.rb
rbx-trepanning-0.0.6-universal-rubinius-1.2 test/unit/test-app-method.rb
rbx-trepanning-0.0.5-universal-rubinius-1.2.1 test/unit/test-app-method.rb
rbx-trepanning-0.0.4-universal-rubinius-1.2 test/unit/test-app-method.rb
rbx-trepanning-0.0.3-universal-rubinius-1.2 test/unit/test-app-method.rb
rbx-trepanning-0.0.2-universal-rubinius-1.2 test/unit/test-app-method.rb
rbx-trepanning-0.0.1-universal-rubinius test/unit/test-app-method.rb