Sha256: 7c250415a5db417a32fc1faa8b3901168dc584bfeab7ee5359137eb64e5cae72

Contents?: true

Size: 1.2 KB

Versions: 2

Compression:

Stored size: 1.2 KB

Contents

module OrigenTesters
  module SmartestBasedTester
    class Base
      module Processors
        # Implements continue on a fail branch for V93K by removing any bin nodes that are
        # siblings of continue nodes. The continue nodes are also removed in the process since
        # they have now served their function.
        class ContinueImplementer < ATP::Processor
          # Delete any on-fail child if it's 'empty'
          def on_on_fail(node)
            if cont = node.find(:continue) || @continue
              node = node.updated(nil, node.children - [cont] - node.find_all(:set_result))
            end
            node.updated(nil, process_all(node.children))
          end

          def on_group(node)
            f = node.find(:on_fail)
            if f && f.find(:continue)
              with_continue do
                node = node.updated(nil, process_all(node.children))
              end
              node
            else
              node.updated(nil, process_all(node.children))
            end
          end

          def with_continue
            orig = @continue
            @continue = true
            yield
            @continue = orig
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
origen_testers-0.13.1 lib/origen_testers/smartest_based_tester/base/processors/continue_implementer.rb
origen_testers-0.13.0 lib/origen_testers/smartest_based_tester/base/processors/continue_implementer.rb