From 79a25170262d4053209fc3c7b198c37cfdecefa5 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 15 Jan 2018 12:25:24 +0000 Subject: [PATCH] test_console_attr.rb: fix test * test/-ext-/win32/test_console_attr.rb (reverse_video): fix test when reverse video is set. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61853 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/-test-/win32/console/attribute.c | 5 +++++ test/-ext-/win32/test_console_attr.rb | 17 ++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/ext/-test-/win32/console/attribute.c b/ext/-test-/win32/console/attribute.c index 6d706fbfe7..a5f80fcaff 100644 --- a/ext/-test-/win32/console/attribute.c +++ b/ext/-test-/win32/console/attribute.c @@ -61,4 +61,9 @@ Init_attribute(VALUE m) rb_define_const(m, "BACKGROUND_GREEN", INT2FIX(BACKGROUND_GREEN)); rb_define_const(m, "BACKGROUND_RED", INT2FIX(BACKGROUND_RED)); rb_define_const(m, "BACKGROUND_INTENSITY", INT2FIX(BACKGROUND_INTENSITY)); + +#ifndef COMMON_LVB_REVERSE_VIDEO +#define COMMON_LVB_REVERSE_VIDEO 0x4000 +#endif + rb_define_const(m, "REVERSE_VIDEO", INT2FIX(COMMON_LVB_REVERSE_VIDEO)); } diff --git a/test/-ext-/win32/test_console_attr.rb b/test/-ext-/win32/test_console_attr.rb index e596e13469..35d425ded7 100644 --- a/test/-ext-/win32/test_console_attr.rb +++ b/test/-ext-/win32/test_console_attr.rb @@ -5,6 +5,17 @@ if /mswin|mingw/ =~ RUBY_PLATFORM and STDOUT.tty? require 'test/unit' class Test_Win32Console < Test::Unit::TestCase + REVERSE_VIDEO = Bug::Win32::REVERSE_VIDEO + + def reverse_video(fore, back = 0x0) + info = STDOUT.console_info + if (info.attr & REVERSE_VIDEO) == 0 + (fore << 4) | back + else + (back << 4) | fore | REVERSE_VIDEO + end + end + def reset STDOUT.console_attribute(7) end @@ -20,7 +31,7 @@ if /mswin|mingw/ =~ RUBY_PLATFORM and STDOUT.tty? def test_reverse print "\e[7m" info = STDOUT.console_info - assert_equal(0x70, info.attr); + assert_equal(reverse_video(0x7), info.attr); end def test_bold @@ -32,13 +43,13 @@ if /mswin|mingw/ =~ RUBY_PLATFORM and STDOUT.tty? def test_bold_reverse print "\e[1;7m" info = STDOUT.console_info - assert_equal(0xf0, info.attr); + assert_equal(reverse_video(0xf), info.attr); end def test_reverse_bold print "\e[7;1m" info = STDOUT.console_info - assert_equal(0xf0, info.attr); + assert_equal(reverse_video(0xf), info.attr); end end end