summaryrefslogtreecommitdiff
path: root/FreeRTOS-Plus/Test/CMock/vendor/unity/auto/colour_prompt.rb
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS-Plus/Test/CMock/vendor/unity/auto/colour_prompt.rb')
-rw-r--r--FreeRTOS-Plus/Test/CMock/vendor/unity/auto/colour_prompt.rb119
1 files changed, 119 insertions, 0 deletions
diff --git a/FreeRTOS-Plus/Test/CMock/vendor/unity/auto/colour_prompt.rb b/FreeRTOS-Plus/Test/CMock/vendor/unity/auto/colour_prompt.rb
new file mode 100644
index 000000000..85cbfd80c
--- /dev/null
+++ b/FreeRTOS-Plus/Test/CMock/vendor/unity/auto/colour_prompt.rb
@@ -0,0 +1,119 @@
+# ==========================================
+# Unity Project - A Test Framework for C
+# Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
+# [Released under MIT License. Please refer to license.txt for details]
+# ==========================================
+
+if RUBY_PLATFORM =~ /(win|w)32$/
+ begin
+ require 'Win32API'
+ rescue LoadError
+ puts 'ERROR! "Win32API" library not found'
+ puts '"Win32API" is required for colour on a windows machine'
+ puts ' try => "gem install Win32API" on the command line'
+ puts
+ end
+ # puts
+ # puts 'Windows Environment Detected...'
+ # puts 'Win32API Library Found.'
+ # puts
+end
+
+class ColourCommandLine
+ def initialize
+ return unless RUBY_PLATFORM =~ /(win|w)32$/
+
+ get_std_handle = Win32API.new('kernel32', 'GetStdHandle', ['L'], 'L')
+ @set_console_txt_attrb =
+ Win32API.new('kernel32', 'SetConsoleTextAttribute', %w[L N], 'I')
+ @hout = get_std_handle.call(-11)
+ end
+
+ def change_to(new_colour)
+ if RUBY_PLATFORM =~ /(win|w)32$/
+ @set_console_txt_attrb.call(@hout, win32_colour(new_colour))
+ else
+ "\033[30;#{posix_colour(new_colour)};22m"
+ end
+ end
+
+ def win32_colour(colour)
+ case colour
+ when :black then 0
+ when :dark_blue then 1
+ when :dark_green then 2
+ when :dark_cyan then 3
+ when :dark_red then 4
+ when :dark_purple then 5
+ when :dark_yellow, :narrative then 6
+ when :default_white, :default, :dark_white then 7
+ when :silver then 8
+ when :blue then 9
+ when :green, :success then 10
+ when :cyan, :output then 11
+ when :red, :failure then 12
+ when :purple then 13
+ when :yellow then 14
+ when :white then 15
+ else
+ 0
+ end
+ end
+
+ def posix_colour(colour)
+ # ANSI Escape Codes - Foreground colors
+ # | Code | Color |
+ # | 39 | Default foreground color |
+ # | 30 | Black |
+ # | 31 | Red |
+ # | 32 | Green |
+ # | 33 | Yellow |
+ # | 34 | Blue |
+ # | 35 | Magenta |
+ # | 36 | Cyan |
+ # | 37 | Light gray |
+ # | 90 | Dark gray |
+ # | 91 | Light red |
+ # | 92 | Light green |
+ # | 93 | Light yellow |
+ # | 94 | Light blue |
+ # | 95 | Light magenta |
+ # | 96 | Light cyan |
+ # | 97 | White |
+
+ case colour
+ when :black then 30
+ when :red, :failure then 31
+ when :green, :success then 32
+ when :yellow then 33
+ when :blue, :narrative then 34
+ when :purple, :magenta then 35
+ when :cyan, :output then 36
+ when :white, :default_white then 37
+ when :default then 39
+ else
+ 39
+ end
+ end
+
+ def out_c(mode, colour, str)
+ case RUBY_PLATFORM
+ when /(win|w)32$/
+ change_to(colour)
+ $stdout.puts str if mode == :puts
+ $stdout.print str if mode == :print
+ change_to(:default_white)
+ else
+ $stdout.puts("#{change_to(colour)}#{str}\033[0m") if mode == :puts
+ $stdout.print("#{change_to(colour)}#{str}\033[0m") if mode == :print
+ end
+ end
+end
+
+def colour_puts(role, str)
+ ColourCommandLine.new.out_c(:puts, role, str)
+end
+
+def colour_print(role, str)
+ ColourCommandLine.new.out_c(:print, role, str)
+end