Sha256: 39e7e932631b076bc1686cce240fdf686e76a2ce10f847f97106074ec4e03426

Contents?: true

Size: 1.8 KB

Versions: 39

Compression:

Stored size: 1.8 KB

Contents

require 'active_support/concern'
module OrigenTesters
  # Include this module to create an interface that supports multiple tester
  # types.
  #
  # This module will expose generators for all test platforms supported by
  # the Testers plugin.
  module ProgramGenerators
    extend ActiveSupport::Concern
    include Interface

    PLATFORMS = [J750, J750_HPT, UltraFLEX, V93K]

    included do
      Origen.add_interface(self)
    end

    module ClassMethods
      # Ensures that the correct generator is loaded before initialize is called
      def new(*args, &block)
        x = allocate
        x._load_generator
        x.send(:initialize, *args, &block)
        x
      end

      # Returns true if the interface class supports the
      # given tester instance
      def supports?(tester_instance)
        PLATFORMS.include?(tester_instance.class)
      end
    end

    # @api private
    def pre_initialize(options = {})
      _load_generator
    end

    def initialize(options = {})
    end

    def tester
      Origen.tester
    end

    def _load_generator
      if tester.v93k?
        if tester.smt8?
          class << self; include OrigenTesters::V93K_SMT8::Generator; end
        else
          class << self; include OrigenTesters::V93K::Generator; end
        end
      elsif tester.j750_hpt?
        class << self; include OrigenTesters::J750_HPT::Generator; end
      elsif tester.j750?
        class << self; include OrigenTesters::J750::Generator; end
      elsif tester.ultraflex?
        class << self; include OrigenTesters::UltraFLEX::Generator; end
      elsif defined? tester.class::TEST_PROGRAM_GENERATOR
        class << self; include tester.class::TEST_PROGRAM_GENERATOR; end
      else
        fail "The OrigenTesters::ProgramGenerators module does not support #{tester.class}!"
      end
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
origen_testers-0.52.9 lib/origen_testers/program_generators.rb
origen_testers-0.52.8 lib/origen_testers/program_generators.rb
origen_testers-0.52.7 lib/origen_testers/program_generators.rb
origen_testers-0.52.6 lib/origen_testers/program_generators.rb
origen_testers-0.52.5 lib/origen_testers/program_generators.rb
origen_testers-0.52.4 lib/origen_testers/program_generators.rb
origen_testers-0.52.3 lib/origen_testers/program_generators.rb
origen_testers-0.52.1 lib/origen_testers/program_generators.rb
origen_testers-0.52.0 lib/origen_testers/program_generators.rb
origen_testers-0.51.5 lib/origen_testers/program_generators.rb
origen_testers-0.51.4 lib/origen_testers/program_generators.rb
origen_testers-0.51.3 lib/origen_testers/program_generators.rb
origen_testers-0.51.2 lib/origen_testers/program_generators.rb
origen_testers-0.51.1 lib/origen_testers/program_generators.rb
origen_testers-0.51.0 lib/origen_testers/program_generators.rb
origen_testers-0.50.0 lib/origen_testers/program_generators.rb
origen_testers-0.49.4 lib/origen_testers/program_generators.rb
origen_testers-0.49.3 lib/origen_testers/program_generators.rb
origen_testers-0.49.2 lib/origen_testers/program_generators.rb
origen_testers-0.49.1 lib/origen_testers/program_generators.rb