summaryrefslogtreecommitdiff
path: root/test/fiber
diff options
context:
space:
mode:
authorSamuel Williams <samuel.williams@oriontransfer.co.nz>2020-08-15 15:36:18 +1200
committerSamuel Williams <samuel.williams@oriontransfer.co.nz>2020-08-18 00:56:35 +1200
commit0a218a97ad31f06eb7f59ccdd428fd46c4b93982 (patch)
tree9f9e50845d2ee2b19044c78d4ced69af9c07e3da /test/fiber
parentc45f5ff2b0b801a94ffe761d83a46760c3d6d33d (diff)
Expose ec -> backtrace (internal) and use it to implement fiber backtrace.
See <https://bugs.ruby-lang.org/issues/16815> for more details.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3422
Diffstat (limited to 'test/fiber')
-rw-r--r--test/fiber/test_backtrace.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/fiber/test_backtrace.rb b/test/fiber/test_backtrace.rb
new file mode 100644
index 0000000000..2d637c09c8
--- /dev/null
+++ b/test/fiber/test_backtrace.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+require 'test/unit'
+require 'fiber'
+
+class TestFiberBacktrace < Test::Unit::TestCase
+ def test_backtrace
+ backtrace = Fiber.current.backtrace
+ assert_kind_of Array, backtrace
+ assert_match /test_backtrace/, backtrace[0]
+ end
+
+ def test_backtrace_locations
+ backtrace = Fiber.current.backtrace_locations
+ assert_kind_of Array, backtrace
+ assert_match /test_backtrace_locations/, backtrace[1].label
+ end
+
+ def test_local_backtrace
+ backtrace = Fiber.current.backtrace(2)
+ assert_equal backtrace, caller
+ end
+end