summaryrefslogtreecommitdiff
path: root/test/-ext-/st
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-10-09 07:16:19 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-10-09 07:16:19 +0000
commitf8b219e4d66b5b9e24dc14233256e9a57ee0351e (patch)
treede2078dfdd59dc43cf597ee3adbe9e61f0f9f3c6 /test/-ext-/st
parent4adfbab35c128a0c3b9f1fdb7c0d89ccdaf55351 (diff)
st: test packed-to-unpacked transitions during iteration
The st_foreach and st_foreach_check functions support transitioning from a packed to an unpacked state during iteration. However, this functionality did not get exercised by the current test suite until now. This should help us prevent breakage when making modifications to st. * ext/-test-/st/foreach/extconf.rb: new file * ext/-test-/st/foreach/foreach.c: ditto * test/-ext-/st/test_foreach.rb: ditto [Feature #10321] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/-ext-/st')
-rw-r--r--test/-ext-/st/test_foreach.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/-ext-/st/test_foreach.rb b/test/-ext-/st/test_foreach.rb
new file mode 100644
index 0000000..259b0a9
--- /dev/null
+++ b/test/-ext-/st/test_foreach.rb
@@ -0,0 +1,15 @@
+require 'test/unit'
+require '-test-/st/foreach'
+
+class Test_StForeachUnpack < Test::Unit::TestCase
+ def test_st_foreach_check_unpack
+ assert_nil Bug.unp_st_foreach_check(:check), "goto unpacked_continue"
+ assert_nil Bug.unp_st_foreach_check(:delete1), "goto unpacked"
+ assert_nil Bug.unp_st_foreach_check(:delete2), "goto deleted"
+ end
+
+ def test_st_foreach_unpack
+ assert_nil Bug.unp_st_foreach(:unpacked), "goto unpacked"
+ assert_nil Bug.unp_st_foreach(:unpack_delete), "if (!ptr) return 0"
+ end
+end