diff options
| author | elijah <elijah@riseup.net> | 2014-02-25 17:43:29 -0800 | 
|---|---|---|
| committer | elijah <elijah@riseup.net> | 2014-02-25 17:43:29 -0800 | 
| commit | ddc190489964008ffa085685e06b93a9e86c058b (patch) | |
| tree | 4b61e21d07f47cfa1af41516eb6f0e9dc2988590 /bin/run_tests | |
| parent | 761fe6f40058612d6ac0ce88103c9a4f35877ef8 (diff) | |
added a checkmk mode to the script `run_tests` (run with `run_tests --checkmk`. you can symlink `/srv/leap/bin/run_tests` script to anywhere if needed)
Diffstat (limited to 'bin/run_tests')
| -rwxr-xr-x | bin/run_tests | 58 | 
1 files changed, 44 insertions, 14 deletions
diff --git a/bin/run_tests b/bin/run_tests index a44fcdcf..ee517ae5 100755 --- a/bin/run_tests +++ b/bin/run_tests @@ -318,35 +318,57 @@ class LeapRunner < MiniTest::Unit    end    # -  # override default status slightly +  # override default status summary    #    def status(io = self.output) -    format = "%d tests, %d assertions, %d passes, %d failures, %d errors, %d skips" -    output.puts format % [test_count, assertion_count, passes, failures, errors, skips] +    if $output_format == :human +      format = "%d tests, %d assertions, %d passes, %d failures, %d errors, %d skips" +      output.puts format % [test_count, assertion_count, passes, failures, errors, skips] +    end    end    #    # returns a string for a PASS, SKIP, or FAIL error    #    def report_line(prefix, klass, meth, e=nil, message=nil) +    msg_txt = nil      if message        message = message.sub(/http:\/\/([a-z_]+):([a-zA-Z0-9_]+)@/, "http://\\1:password@") -      indent = "\n  " -      msg_txt = indent + message.split("\n").join(indent) +      if $output_format == :human +        indent = "\n  " +        msg_txt = indent + message.split("\n").join(indent) +      else +        msg_txt = message.gsub("\n", ' ') +      end      end -    if e && message -      output.puts "#{prefix}: #{readable(klass.name)} > #{readable(meth)} [#{File.basename(location(e))}]:#{msg_txt}" -    elsif message -      output.puts "#{prefix}: #{readable(klass.name)} > #{readable(meth)}:#{msg_txt}" -    else -      output.puts "#{prefix}: #{readable(klass.name)} > #{readable(meth)}" + +    if $output_format == :human +      if e && msg_txt +        output.puts "#{prefix}: #{readable(klass.name)} > #{readable(meth)} [#{File.basename(location(e))}]:#{msg_txt}" +      elsif msg_txt +        output.puts "#{prefix}: #{readable(klass.name)} > #{readable(meth)}:#{msg_txt}" +      else +        output.puts "#{prefix}: #{readable(klass.name)} > #{readable(meth)}" +      end +                      # I don't understand at all why, but adding a very tiny sleep here will +      sleep(0.0001)   # keep lines from being joined together by the logger. output.flush doesn't. +    elsif $output_format == :checkmk +      code = CHECKMK_CODES[prefix] +      msg_txt ||= "Success" if prefix == "PASS" +      if e && msg_txt +        output.puts "#{code} #{klass.name}/#{machine_readable(meth)} - [#{File.basename(location(e))}]:#{msg_txt}" +      elsif msg_txt +        output.puts "#{code} #{klass.name}/#{machine_readable(meth)} - #{msg_txt}" +      else +        output.puts "#{code} #{klass.name}/#{machine_readable(meth)} - no message" +      end      end -                    # I don't understand at all why, but adding a very tiny sleep here will -    sleep(0.0001)   # keep lines from being joined together by the logger. output.flush doesn't.    end    private +  CHECKMK_CODES = {"PASS" => 0, "SKIP" => 1, "FAIL" => 2, "ERROR" => 3} +    #    # Converts snake_case and CamelCase to something more pleasant for humans to read.    # @@ -357,6 +379,11 @@ class LeapRunner < MiniTest::Unit      sub(/^test (\d* )?/i, '').      downcase.capitalize    end + +  def machine_readable(str) +    str.sub(/^test_(\d+_)?/i, '') +  end +  end  ## @@ -402,7 +429,8 @@ else  end  # load all test classes -Dir[File.expand_path('../../tests/white-box/*.rb', __FILE__)].each do |test_file| +this_file = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__ +Dir[File.expand_path('../../tests/white-box/*.rb', this_file)].each do |test_file|    begin      require test_file    rescue SkipTest @@ -411,9 +439,11 @@ end  # parse command line options  $halt_on_failure = true +$output_format = :human  loop do    case ARGV[0]      when '--continue' then ARGV.shift; $halt_on_failure = false +    when '--checkmk' then ARGV.shift; $output_format = :checkmk; $halt_on_failure = false      else break    end  end  | 
