Bugs: Browse | Submit New | Admin

[#28677] Infinite loop when calling rspec --heckle

Date:
2010-10-29 16:21
Priority:
3
Submitted By:
Rubén Medellín (chubas)
Assigned To:
Kevin Clark (kevinclark)
Category:
heckle
State:
Open
Summary:
Infinite loop when calling rspec --heckle

Detailed description
**********************************************************************
***  Site#has_many_dependent_destroy_for_moderated_entries loaded with 17 possible mutations
**********************************************************************

17 mutations remaining...
16 mutations remaining...
15 mutations remaining...
14 mutations remaining...
13 mutations remaining...
12 mutations remaining...
11 mutations remaining...
10 mutations remaining...
9 mutations remaining...
8 mutations remaining...
7 mutations remaining...
6 mutations remaining...
5 mutations remaining...
4 mutations remaining...
bug!

mutatees:
{:call=>
  [s(:call,
    s(:sclass, s(:lvar, :o), s(:scope, s(:self))),
    :send,
    s(:arglist,
     s(:lit, :define_method),
     s(:lvar, :counter_method),
     s(:iter, s(:call, s(:const, :Proc), :new, s(:arglist)), nil)))],
 :false=>[],
 :dasgn=>[],
 :lit=>[],
 :iasgn=>[],
 :str=>[],
 :lasgn=>[],
 :iter=>
  [s(:iter, s(:call, s(:const, :Proc), :new, s(:arglist)), nil),
   s(:iter,
    s(:call,
     s(:call,
      nil,
      :send,
      s(:arglist, s(:call, s(:lvar, :reflection), :name, s(:arglist)))),
     :each,
     s(:arglist)),
    s(:lasgn, :o),
    s(:block,
     s(:lasgn,
      :counter_method,
      s(:call,
       s(:call,
        s(:str, "belongs_to_counter_cache_before_destroy_for_"),
        :+,
        s(:arglist,
         s(:call,
          s(:call,
           s(:call, s(:self), :class, s(:arglist)),
           :name,
           s(:arglist)),
          :downcase,
          s(:arglist)))),
       :to_sym,
       s(:arglist))),
     s(:if,
      s(:call,
       s(:lvar, :o),
       :respond_to?,
       s(:arglist, s(:lvar, :counter_method))),
      s(:call,
       s(:sclass, s(:lvar, :o), s(:scope, s(:self))),
       :send,
       s(:arglist,
        s(:lit, :define_method),
        s(:lvar, :counter_method),
        s(:iter, s(:call, s(:const, :Proc), :new, s(:arglist)), nil))),
      nil),
     s(:call, s(:lvar, :o), :destroy, s(:arglist))))],
 :if=>
  [s(:if,
    s(:call,
     s(:lvar, :o),
     :respond_to?,
     s(:arglist, s(:lvar, :counter_method))),
    s(:call,
     s(:sclass, s(:lvar, :o), s(:scope, s(:self))),
     :send,
     s(:arglist,
      s(:lit, :define_method),
      s(:lvar, :counter_method),
      s(:iter, s(:call, s(:const, :Proc), :new, s(:arglist)), nil))),
    nil)],
 :cvasgn=>[],
 :until=>[],
 :true=>[],
 :dasgn_curr=>[],
 :gasgn=>[],
 :while=>[]}

original tree:
s(:defn,
 :has_many_dependent_destroy_for_moderated_entries,
 s(:args),
 s(:scope,
  s(:block,
   s(:iter,
    s(:call,
     s(:call,
      nil,
      :send,
      s(:arglist, s(:call, s(:lvar, :reflection), :name, s(:arglist)))),
     :each,
     s(:arglist)),
    s(:lasgn, :o),
    s(:block,
     s(:lasgn,
      :counter_method,
      s(:call,
       s(:call,
        s(:str, "belongs_to_counter_cache_before_destroy_for_"),
        :+,
        s(:arglist,
         s(:call,
          s(:call,
           s(:call, s(:self), :class, s(:arglist)),
           :name,
           s(:arglist)),
          :downcase,
          s(:arglist)))),
       :to_sym,
       s(:arglist))),
     s(:if,
      s(:call,
       s(:lvar, :o),
       :respond_to?,
       s(:arglist, s(:lvar, :counter_method))),
      s(:call,
       s(:sclass, s(:lvar, :o), s(:scope, s(:self))),
       :send,
       s(:arglist,
        s(:lit, :define_method),
        s(:lvar, :counter_method),
        s(:iter, s(:call, s(:const, :Proc), :new, s(:arglist)), nil))),
      nil),
     s(:call, s(:lvar, :o), :destroy, s(:arglist)))))))

Infinite loop detected!
Please save this output to an attachment and submit a ticket here:
http://rubyforge.org/tracker/?func=add&group_id=1513&atid=5921

=====

Using heckle 1.4.3, rspec 1.3.0

Add A Comment: Notepad

Please login


Followup

Message
Date: 2012-06-04 21:03
Sender: Ryan Davis

Believe it or not, we've moved to github! If you think this issue
is still relevant, please re-file it under our project on github
(
https://github.com/seattlerb/$projectname ) and provide a link 
back to this ticket (if there is any comment stream). If not, 
please close this ticket.

Attached Files:

Name Description Download
No Files Currently Attached

Changes:

No Changes Have Been Made to This Item