Sha256: 82d87a924f2ae1bd722c416be575073621d6c7fdfe38d049061f68cc77117764

Contents?: true

Size: 1.34 KB

Versions: 7

Compression:

Stored size: 1.34 KB

Contents

module RokuBuilder

  # Method for running unit tests
  # This is intended to be used with the brstest librbary but should work
  # with other testing libraries
  class Tester < Util

    # Initialize starting and ending regular expressions
    def init()
      @end_reg = /\*\*\*\*\* ENDING TESTS \*\*\*\*\*/
      @start_reg = /\*\*\*\*\* STARTING TESTS \*\*\*\*\*/
    end

    # Run tests and report results
    # @param sideload_config [Hash] The config for sideloading the app
    def run_tests(sideload_config:)
      telnet_config ={
        'Host' => @roku_ip_address,
        'Port' => 8085
      }

      loader = Loader.new(**@device_config)
      connection = Net::Telnet.new(telnet_config)
      loader.sideload(**sideload_config)

      in_tests = false
      connection.waitfor(@end_reg) do |txt|
        in_tests = handle_text(txt: txt, in_tests: in_tests)
      end
      connection.puts("cont\n")
    end

    private

    # Handel testing text
    # @param txt [String] current text from telnet
    # @param in_tests [Boolean] currently parsing test text
    # @return [Boolean] currently parsing test text
    def handle_text(txt:, in_tests:)
      txt.split("\n").each do |line|
        in_tests = false if line =~ @end_reg
        @logger.unknown line if in_tests
        in_tests = true if line =~ @start_reg
      end
      in_tests
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
roku_builder-3.5.0 lib/roku_builder/tester.rb
roku_builder-3.4.4 lib/roku_builder/tester.rb
roku_builder-3.4.3 lib/roku_builder/tester.rb
roku_builder-3.4.2 lib/roku_builder/tester.rb
roku_builder-3.4.1 lib/roku_builder/tester.rb
roku_builder-3.4.0 lib/roku_builder/tester.rb
roku_builder-3.3.4 lib/roku_builder/tester.rb