diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-09-23 18:00:46 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-09-23 18:00:46 +0000 |
commit | f5cbe886b653aa2020f178e37996e0b81cb68b5e (patch) | |
tree | 5e127ee645f3522ee2c8556d3143fd09ba33be4a /test | |
parent | 3a412f28058b76685a87f83501d80cadd13b1d1c (diff) |
* eval.c (rb_add_threadswitch_hook): wrapper for unofficial APIs
in Mac OS X port. the use of them is strongly discouraged.
* eval.c (rb_remove_threadswitch_hook): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@29326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/-ext-/test_threadswitch_hook.rb | 16 | ||||
-rw-r--r-- | test/ruby/envutil.rb | 12 |
2 files changed, 28 insertions, 0 deletions
diff --git a/test/-ext-/test_threadswitch_hook.rb b/test/-ext-/test_threadswitch_hook.rb new file mode 100644 index 0000000000..8374ca4487 --- /dev/null +++ b/test/-ext-/test_threadswitch_hook.rb @@ -0,0 +1,16 @@ +require 'test/unit' +require '-test-/threadswitch/event_hook' +require 'ruby/envutil' + +class Test_ThreadSwitch < Test::Unit::TestCase + def test_threadswitch_init + threads = [] + warning = EnvUtil.verbose_warning { + EventHook::ThreadSwitch.hook {|name, thread| + threads << thread if name == "thread-init" + } + } + assert_match(/not an official API/, warning) + assert_operator(threads, :include?, Thread.current) + end +end diff --git a/test/ruby/envutil.rb b/test/ruby/envutil.rb index 639aee00ca..01b1afe8af 100644 --- a/test/ruby/envutil.rb +++ b/test/ruby/envutil.rb @@ -25,6 +25,18 @@ module EnvUtil end end module_function :rubybin + + def verbose_warning + class << (stderr = "") + alias write << + end + stderr, $stderr, verbose, $VERBOSE = $stderr, stderr, $VERBOSE, true + yield stderr + ensure + stderr, $stderr, $VERBOSE = $stderr, stderr, verbose + return stderr + end + module_function :verbose_warning end begin |