Sha256: fefcbe75d1b7c4921951a7fd6d82a1c6c196c1fa5af5669b6639a0b42a904e7e

Contents?: true

Size: 1.38 KB

Versions: 31

Compression:

Stored size: 1.38 KB

Contents

module HybridPlatformsConductorTest

  module TestPlugins

    # Test plugin at platform level
    class Platform < HybridPlatformsConductor::Test

      class << self

        # Sequences of platforms on which this test has been run
        # Array< [ Symbol,    String   ] >
        # Array< [ test_name, platform ] >
        attr_accessor :runs

        # List of platforms for which we fail
        # Array<String>
        attr_accessor :fail_for

        # List of platform types that should only be concerned by this test
        # Array<Symbol>
        attr_accessor :only_on_platform_types

        # Eventual sleep time per platform name, per test name
        # Hash<Symbol, Hash<String, Integer> >
        attr_accessor :sleeps

      end

      # Check my_test_plugin.rb.sample documentation for signature details.
      def test_on_platform
        platform_name = @platform.name
        raise 'Failing test' if Platform.fail_for.include? platform_name

        sleep_time = Platform.sleeps.dig(@name, platform_name)
        sleep sleep_time unless sleep_time.nil?
        Platform.runs << [@name, platform_name]
      end

      # Limit the list of platform types for these tests.
      #
      # Result::
      # * Array<Symbol> or nil: List of platform types allowed for this test, or nil for all
      def self.only_on_platforms
        Platform.only_on_platform_types
      end

    end

  end

end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
hybrid_platforms_conductor-33.9.5 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.9.4 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.9.2 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.9.1 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.9.0 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.8.4 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.8.3 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.8.2 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.8.1 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.8.0 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.7.4 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.7.3 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.7.2 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.7.1 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.7.0 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.6.0 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.5.1 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.5.0 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.4.0 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
hybrid_platforms_conductor-33.3.0 spec/hybrid_platforms_conductor_test/test_plugins/platform.rb