colour_reporter.rb 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. # ==========================================
  2. # Unity Project - A Test Framework for C
  3. # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
  4. # [Released under MIT License. Please refer to license.txt for details]
  5. # ==========================================
  6. require "#{File.expand_path(File.dirname(__FILE__))}/colour_prompt"
  7. $colour_output = true
  8. def report(message)
  9. if !$colour_output
  10. $stdout.puts(message)
  11. else
  12. message = message.join('\n') if message.class == Array
  13. message.each_line do |line|
  14. line.chomp!
  15. colour = case line
  16. when /(?:total\s+)?tests:?\s+(\d+)\s+(?:total\s+)?failures:?\s+\d+\s+Ignored:?/i
  17. Regexp.last_match(1).to_i.zero? ? :green : :red
  18. when /PASS/
  19. :green
  20. when /^OK$/
  21. :green
  22. when /(?:FAIL|ERROR)/
  23. :red
  24. when /IGNORE/
  25. :yellow
  26. when /^(?:Creating|Compiling|Linking)/
  27. :white
  28. else
  29. :silver
  30. end
  31. colour_puts(colour, line)
  32. end
  33. end
  34. $stdout.flush
  35. $stderr.flush
  36. end