summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/ruby/test_warning.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/ruby/test_warning.rb b/test/ruby/test_warning.rb
new file mode 100644
index 0000000000..cd220ff00f
--- /dev/null
+++ b/test/ruby/test_warning.rb
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+require 'test/unit'
+
+class TestWarning < Test::Unit::TestCase
+ def test_warn_called_only_when_category_enabled
+ # Assert that warn is called when the category is enabled
+ assert_separately([], "#{<<~"begin;"}\n#{<<~'end;'}")
+ begin;
+ Warning[:deprecated] = true
+ $warnings = []
+ def Warning.warn(msg, category:)
+ $warnings << [msg, category]
+ end
+ assert_equal(0, $warnings.length)
+ "" << 12
+ assert_equal(1, $warnings.length)
+ end;
+
+ assert_separately([], "#{<<~"begin;"}\n#{<<~'end;'}")
+ begin;
+ Warning[:deprecated] = false
+ $warnings = []
+ def Warning.warn(msg, category:)
+ $warnings << [msg, category]
+ end
+ assert_equal(0, $warnings.length)
+ "" << 12
+ assert_equal(0, $warnings.length, $warnings.join)
+ end;
+ end
+end