summaryrefslogtreecommitdiff
path: root/test/date/test_date_ractor.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/date/test_date_ractor.rb')
-rw-r--r--test/date/test_date_ractor.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/date/test_date_ractor.rb b/test/date/test_date_ractor.rb
new file mode 100644
index 0000000000..7b0c3f4911
--- /dev/null
+++ b/test/date/test_date_ractor.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+require 'test/unit'
+require 'date'
+
+class TestDateParse < Test::Unit::TestCase
+ def code(klass = Date, share: false)
+ <<~RUBY.gsub('Date', klass.name)
+ share = #{share}
+ d = Date.parse('Aug 23:55')
+ Ractor.make_shareable(d) if share
+ d2, d3 = Ractor.new(d) { |d| [d, Date.parse(d.to_s)] }.take
+ if share
+ assert_same d, d2
+ else
+ assert_equal d, d2
+ end
+ assert_equal d, d3
+ RUBY
+ end
+
+ def test_date_ractor
+ assert_ractor(code , require: 'date')
+ assert_ractor(code( share: true), require: 'date')
+ assert_ractor(code(DateTime ), require: 'date')
+ assert_ractor(code(DateTime, share: true), require: 'date')
+ end
+end