summaryrefslogtreecommitdiff
path: root/test/did_you_mean/test_ractor_compatibility.rb
diff options
context:
space:
mode:
authorHiroshi SHIBATA <hsbt@ruby-lang.org>2022-05-20 19:48:21 +0900
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2022-05-20 19:48:28 +0900
commit4146fd284b3c3995cf6638b239625c530c6da875 (patch)
treef829a986ab35e125444cefbf494d60c5835cd873 /test/did_you_mean/test_ractor_compatibility.rb
parenta080651f4625207dc847962cff3a6fc6a7da4810 (diff)
downloadruby-4146fd284b3c3995cf6638b239625c530c6da875.tar.gz
Rewrite with assert_ractor for multiple ractor environment
Diffstat (limited to 'test/did_you_mean/test_ractor_compatibility.rb')
-rw-r--r--test/did_you_mean/test_ractor_compatibility.rb157
1 files changed, 86 insertions, 71 deletions
diff --git a/test/did_you_mean/test_ractor_compatibility.rb b/test/did_you_mean/test_ractor_compatibility.rb
index 1a9e63997f..f66a1a9d62 100644
--- a/test/did_you_mean/test_ractor_compatibility.rb
+++ b/test/did_you_mean/test_ractor_compatibility.rb
@@ -3,100 +3,115 @@ require_relative './helper'
return if not DidYouMean::TestHelper.ractor_compatible?
class RactorCompatibilityTest < Test::Unit::TestCase
- include DidYouMean::TestHelper
-
- class ::Book; end
- class FirstNameError < NameError; end
-
def test_class_name_suggestion_works_in_ractor
- error = Ractor.new {
- begin
- Boook
- rescue NameError => e
- e.corrections # It is important to call the #corrections method within Ractor.
- e
- end
- }.take
+ assert_ractor(<<~CODE, require_relative: "helper")
+ class ::Book; end
+ include DidYouMean::TestHelper
+ error = Ractor.new {
+ begin
+ Boook
+ rescue NameError => e
+ e.corrections # It is important to call the #corrections method within Ractor.
+ e
+ end
+ }.take
- assert_correction "Book", error.corrections
+ assert_correction "Book", error.corrections
+ CODE
end
def test_key_name_suggestion_works_in_ractor
- error = Ractor.new {
- begin
- hash = { "foo" => 1, bar: 2 }
+ assert_ractor(<<~CODE, require_relative: "helper")
+ include DidYouMean::TestHelper
+ error = Ractor.new {
+ begin
+ hash = { "foo" => 1, bar: 2 }
- hash.fetch(:bax)
- rescue KeyError => e
- e.corrections # It is important to call the #corrections method within Ractor.
- e
- end
- }.take
+ hash.fetch(:bax)
+ rescue KeyError => e
+ e.corrections # It is important to call the #corrections method within Ractor.
+ e
+ end
+ }.take
- assert_correction ":bar", error.corrections
- assert_match "Did you mean? :bar", error.to_s
+ assert_correction ":bar", error.corrections
+ assert_match "Did you mean? :bar", error.to_s
+ CODE
end
def test_method_name_suggestion_works_in_ractor
- error = Ractor.new {
- begin
- self.to__s
- rescue NoMethodError => e
- e.corrections # It is important to call the #corrections method within Ractor.
- e
- end
- }.take
-
- assert_correction :to_s, error.corrections
- assert_match "Did you mean? to_s", error.to_s
- end
-
- if defined?(::NoMatchingPatternKeyError)
- def test_pattern_key_name_suggestion_works_in_ractor
+ assert_ractor(<<~CODE, require_relative: "helper")
+ include DidYouMean::TestHelper
error = Ractor.new {
begin
- eval(<<~RUBY, binding, __FILE__, __LINE__)
- hash = {foo: 1, bar: 2, baz: 3}
- hash => {fooo:}
- fooo = 1 # suppress "unused variable: fooo" warning
- RUBY
- rescue NoMatchingPatternKeyError => e
+ self.to__s
+ rescue NoMethodError => e
e.corrections # It is important to call the #corrections method within Ractor.
e
end
}.take
- assert_correction ":foo", error.corrections
- assert_match "Did you mean? :foo", error.to_s
+ assert_correction :to_s, error.corrections
+ assert_match "Did you mean? to_s", error.to_s
+ CODE
+ end
+
+ if defined?(::NoMatchingPatternKeyError)
+ def test_pattern_key_name_suggestion_works_in_ractor
+ assert_ractor(<<~CODE, require_relative: "helper")
+ include DidYouMean::TestHelper
+ error = Ractor.new {
+ begin
+ eval(<<~RUBY, binding, __FILE__, __LINE__)
+ hash = {foo: 1, bar: 2, baz: 3}
+ hash => {fooo:}
+ fooo = 1 # suppress "unused variable: fooo" warning
+ RUBY
+ rescue NoMatchingPatternKeyError => e
+ e.corrections # It is important to call the #corrections method within Ractor.
+ e
+ end
+ }.take
+
+ assert_correction ":foo", error.corrections
+ assert_match "Did you mean? :foo", error.to_s
+ CODE
end
end
def test_can_raise_other_name_error_in_ractor
- error = Ractor.new {
- begin
- raise FirstNameError, "Other name error"
- rescue FirstNameError => e
- e.corrections # It is important to call the #corrections method within Ractor.
- e
- end
- }.take
-
- assert_not_match(/Did you mean\?/, error.message)
+ assert_ractor(<<~CODE, require_relative: "helper")
+ class FirstNameError < NameError; end
+ include DidYouMean::TestHelper
+ error = Ractor.new {
+ begin
+ raise FirstNameError, "Other name error"
+ rescue FirstNameError => e
+ e.corrections # It is important to call the #corrections method within Ractor.
+ e
+ end
+ }.take
+
+ assert_not_match(/Did you mean\?/, error.message)
+ CODE
end
def test_variable_name_suggestion_works_in_ractor
- error = Ractor.new {
- in_ractor = in_ractor = 1
-
- begin
- in_reactor
- rescue NameError => e
- e.corrections # It is important to call the #corrections method within Ractor.
- e
- end
- }.take
-
- assert_correction :in_ractor, error.corrections
- assert_match "Did you mean? in_ractor", error.to_s
+ assert_ractor(<<~CODE, require_relative: "helper")
+ include DidYouMean::TestHelper
+ error = Ractor.new {
+ in_ractor = in_ractor = 1
+
+ begin
+ in_reactor
+ rescue NameError => e
+ e.corrections # It is important to call the #corrections method within Ractor.
+ e
+ end
+ }.take
+
+ assert_correction :in_ractor, error.corrections
+ assert_match "Did you mean? in_ractor", error.to_s
+ CODE
end
end