aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/gems/locale-2.0.5/test/test_thread.rb
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gems/locale-2.0.5/test/test_thread.rb')
-rw-r--r--vendor/gems/locale-2.0.5/test/test_thread.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/vendor/gems/locale-2.0.5/test/test_thread.rb b/vendor/gems/locale-2.0.5/test/test_thread.rb
new file mode 100644
index 000000000..43dba513e
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/test/test_thread.rb
@@ -0,0 +1,37 @@
+require 'locale'
+require 'thread'
+require 'test/unit'
+
+class TestThread < Test::Unit::TestCase
+
+ def setup
+ Locale.init(:driver => :env)
+ @mutex = Mutex.new
+ end
+
+ def invoke_thread(tag, sleep_time)
+ Thread.start do
+ @mutex.synchronize {
+ ENV["LC_ALL"] = tag
+ Locale.current
+ }
+ (1..10).each do |v|
+# puts "#{tag}: locale = #{Locale.current}"
+ assert_equal tag, Locale.current.to_posix.to_s
+ print "."
+ $stdout.flush
+ sleep sleep_time
+ end
+ Locale.clear # Clear this thread only.
+ end
+ end
+
+ def test_thread
+ th1 = invoke_thread("ja_JP.eucJP", 0.3)
+ th2 = invoke_thread("zh_CN.UTF-8", 0.2)
+ th3 = invoke_thread("en", 0.1)
+ th1.join
+ th2.join
+ th3.join
+ end
+end