Skip to content

Commit d565e89

Browse files
committed
Fix strscan's specs on Ruby master
Don't run test cases that reproduce bugs in strscan 3.1.2 on Ruby 3.5 because 3.5.0.dev contains fixes for strscan but they are not released yet so version guards allow running these specs on 3.5.0dev.
1 parent 3238c28 commit d565e89

10 files changed

Lines changed: 48 additions & 0 deletions

library/stringscanner/check_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,15 @@
3939

4040
context "when #check was called with a String pattern" do
4141
# https://github.com/ruby/strscan/issues/139
42+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
4243
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
4344
it "returns nil when matching succeeded" do
4445
@s.check("This")
4546
@s.should.matched?
4647
@s[:a].should be_nil
4748
end
4849
end
50+
end
4951
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4"
5052
it "raises IndexError when matching succeeded" do
5153
@s.check("This")
@@ -66,6 +68,7 @@
6668
end
6769

6870
# https://github.com/ruby/strscan/issues/135
71+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
6972
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
7073
it "ignores the previous matching with Regexp" do
7174
@s.exist?(/(?<a>This)/)
@@ -77,6 +80,7 @@
7780
@s[:a].should be_nil
7881
end
7982
end
83+
end
8084
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
8185
it "ignores the previous matching with Regexp" do
8286
@s.exist?(/(?<a>This)/)

library/stringscanner/check_until_spec.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
end
3636

3737
# https://github.com/ruby/strscan/issues/131
38+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
3839
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.1"
3940
it "sets the last match result if given a String" do
4041
@s.check_until("a")
@@ -44,6 +45,7 @@
4445
@s.post_match.should == " test"
4546
end
4647
end
48+
end
4749

4850
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4"
4951
it "sets the last match result if given a String" do
@@ -74,13 +76,15 @@
7476
version_is StringScanner::Version, "3.1.1" do # ruby_version_is "3.4"
7577
context "when #check_until was called with a String pattern" do
7678
# https://github.com/ruby/strscan/issues/139
79+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
7780
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
7881
it "returns nil when matching succeeded" do
7982
@s.check_until("This")
8083
@s.should.matched?
8184
@s[:a].should be_nil
8285
end
8386
end
87+
end
8488
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.3"
8589
it "raises IndexError when matching succeeded" do
8690
@s.check_until("This")
@@ -101,6 +105,7 @@
101105
end
102106

103107
# https://github.com/ruby/strscan/issues/135
108+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
104109
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
105110
it "ignores the previous matching with Regexp" do
106111
@s.exist?(/(?<a>This)/)
@@ -112,6 +117,7 @@
112117
@s[:a].should be_nil
113118
end
114119
end
120+
end
115121
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
116122
it "ignores the previous matching with Regexp" do
117123
@s.exist?(/(?<a>This)/)

library/stringscanner/exist_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,15 @@
6464
version_is StringScanner::Version, "3.1.1" do # ruby_version_is "3.4"
6565
context "when #exist? was called with a String pattern" do
6666
# https://github.com/ruby/strscan/issues/139
67+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
6768
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
6869
it "returns nil when matching succeeded" do
6970
@s.exist?("This")
7071
@s.should.matched?
7172
@s[:a].should be_nil
7273
end
7374
end
75+
end
7476
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.3"
7577
it "raises IndexError when matching succeeded" do
7678
@s.exist?("This")
@@ -91,6 +93,7 @@
9193
end
9294

9395
# https://github.com/ruby/strscan/issues/135
96+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
9497
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
9598
it "ignores the previous matching with Regexp" do
9699
@s.exist?(/(?<a>This)/)
@@ -102,6 +105,7 @@
102105
@s[:a].should be_nil
103106
end
104107
end
108+
end
105109
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
106110
it "ignores the previous matching with Regexp" do
107111
@s.exist?(/(?<a>This)/)

library/stringscanner/getch_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
describe "#[] successive call with a capture group name" do
3535
# https://github.com/ruby/strscan/issues/139
36+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
3637
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
3738
it "returns nil" do
3839
s = StringScanner.new("This is a test")
@@ -41,6 +42,7 @@
4142
s[:a].should be_nil
4243
end
4344
end
45+
end
4446
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.3"
4547
it "raises IndexError" do
4648
s = StringScanner.new("This is a test")
@@ -57,6 +59,7 @@
5759
end
5860

5961
# https://github.com/ruby/strscan/issues/135
62+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
6063
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
6164
it "ignores the previous matching with Regexp" do
6265
s = StringScanner.new("This is a test")
@@ -70,6 +73,7 @@
7073
s[:a].should be_nil
7174
end
7275
end
76+
end
7377
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
7478
it "ignores the previous matching with Regexp" do
7579
s = StringScanner.new("This is a test")

library/stringscanner/scan_byte_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343

4444
describe "#[] successive call with a capture group name" do
4545
# https://github.com/ruby/strscan/issues/139
46+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
4647
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
4748
it "returns nil" do
4849
s = StringScanner.new("abc")
@@ -51,6 +52,7 @@
5152
s[:a].should be_nil
5253
end
5354
end
55+
end
5456
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.3"
5557
it "raises IndexError" do
5658
s = StringScanner.new("abc")
@@ -67,6 +69,7 @@
6769
end
6870

6971
# https://github.com/ruby/strscan/issues/135
72+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
7073
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
7174
it "ignores the previous matching with Regexp" do
7275
s = StringScanner.new("abc")
@@ -80,6 +83,7 @@
8083
s[:a].should == nil
8184
end
8285
end
86+
end
8387
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
8488
it "ignores the previous matching with Regexp" do
8589
s = StringScanner.new("abc")

library/stringscanner/scan_integer_spec.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,15 @@
6868
}.should raise_error(ArgumentError, "Unsupported integer base: 5, expected 10 or 16")
6969
end
7070

71+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
7172
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
7273
it "does not match '0x' prefix on its own" do
7374
StringScanner.new("0x").scan_integer(base: 16).should == nil
7475
StringScanner.new("-0x").scan_integer(base: 16).should == nil
7576
StringScanner.new("+0x").scan_integer(base: 16).should == nil
7677
end
7778
end
79+
end
7880

7981
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.3"
8082
it "matches '0' in a '0x' that is followed by non-hex characters" do
@@ -94,6 +96,7 @@
9496

9597
describe "#[] successive call with a capture group name" do
9698
# https://github.com/ruby/strscan/issues/139
99+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
97100
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
98101
it "returns nil substring when matching succeeded" do
99102
s = StringScanner.new("42")
@@ -102,6 +105,7 @@
102105
s[:a].should == nil
103106
end
104107
end
108+
end
105109
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.3"
106110
it "raises IndexError when matching succeeded" do
107111
s = StringScanner.new("42")
@@ -127,6 +131,7 @@
127131
end
128132

129133
# https://github.com/ruby/strscan/issues/135
134+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
130135
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
131136
it "does not ignore the previous matching with Regexp" do
132137
s = StringScanner.new("42")
@@ -140,6 +145,7 @@
140145
s[:a].should == "42"
141146
end
142147
end
148+
end
143149
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4"
144150
it "ignores the previous matching with Regexp" do
145151
s = StringScanner.new("42")

library/stringscanner/scan_until_spec.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
end
4242

4343
# https://github.com/ruby/strscan/issues/131
44+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
4445
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.1"
4546
it "sets the last match result if given a String" do
4647
@s.scan_until("a")
@@ -50,6 +51,7 @@
5051
@s.post_match.should == " test"
5152
end
5253
end
54+
end
5355

5456
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4"
5557
it "sets the last match result if given a String" do
@@ -80,13 +82,15 @@
8082
version_is StringScanner::Version, "3.1.1" do # ruby_version_is "3.4"
8183
context "when #scan_until was called with a String pattern" do
8284
# https://github.com/ruby/strscan/issues/139
85+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
8386
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
8487
it "returns nil when matching succeeded" do
8588
@s.scan_until("This")
8689
@s.should.matched?
8790
@s[:a].should be_nil
8891
end
8992
end
93+
end
9094
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.3"
9195
it "raises IndexError when matching succeeded" do
9296
@s.scan_until("This")
@@ -107,6 +111,7 @@
107111
end
108112

109113
# https://github.com/ruby/strscan/issues/135
114+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
110115
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
111116
it "ignores the previous matching with Regexp" do
112117
@s.exist?(/(?<a>This)/)
@@ -118,6 +123,7 @@
118123
@s[:a].should be_nil
119124
end
120125
end
126+
end
121127
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4"
122128
it "ignores the previous matching with Regexp" do
123129
@s.exist?(/(?<a>This)/)

library/stringscanner/search_full_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
end
5151

5252
# https://github.com/ruby/strscan/issues/131
53+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
5354
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.1"
5455
it "sets the last match result if given a String" do
5556
@s.search_full("is a", false, false)
@@ -59,6 +60,7 @@
5960
@s.post_match.should == " test"
6061
end
6162
end
63+
end
6264

6365
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4"
6466
it "sets the last match result if given a String" do
@@ -89,13 +91,15 @@
8991
version_is StringScanner::Version, "3.1.1" do # ruby_version_is "3.4"
9092
context "when #search_full was called with a String pattern" do
9193
# https://github.com/ruby/strscan/issues/139
94+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
9295
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
9396
it "returns nil when matching succeeded" do
9497
@s.search_full("This", false, false)
9598
@s.should.matched?
9699
@s[:a].should be_nil
97100
end
98101
end
102+
end
99103
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.3"
100104
it "raises IndexError when matching succeeded" do
101105
@s.search_full("This", false, false)

library/stringscanner/shared/get_byte.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
describe "#[] successive call with a capture group name" do
3333
# https://github.com/ruby/strscan/issues/139
34+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
3435
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
3536
it "returns nil" do
3637
s = StringScanner.new("This is a test")
@@ -39,6 +40,7 @@
3940
s[:a].should be_nil
4041
end
4142
end
43+
end
4244
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.3"
4345
it "raises IndexError" do
4446
s = StringScanner.new("This is a test")
@@ -55,6 +57,7 @@
5557
end
5658

5759
# https://github.com/ruby/strscan/issues/135
60+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
5861
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
5962
it "ignores the previous matching with Regexp" do
6063
s = StringScanner.new("This is a test")
@@ -67,6 +70,7 @@
6770
s[:a].should be_nil
6871
end
6972
end
73+
end
7074
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.3"
7175
it "ignores the previous matching with Regexp" do
7276
s = StringScanner.new("This is a test")

library/stringscanner/skip_until_spec.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
end
3939

4040
# https://github.com/ruby/strscan/issues/131
41+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
4142
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.1"
4243
it "sets the last match result if given a String" do
4344
@s.skip_until("a")
@@ -47,6 +48,7 @@
4748
@s.post_match.should == " test"
4849
end
4950
end
51+
end
5052

5153
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4"
5254
it "sets the last match result if given a String" do
@@ -77,13 +79,15 @@
7779
version_is StringScanner::Version, "3.1.1" do # ruby_version_is "3.4"
7880
context "when #skip_until was called with a String pattern" do
7981
# https://github.com/ruby/strscan/issues/139
82+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
8083
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
8184
it "returns nil when matching succeeded" do
8285
@s.skip_until("This")
8386
@s.should.matched?
8487
@s[:a].should be_nil
8588
end
8689
end
90+
end
8791
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4.3"
8892
it "raises IndexError when matching succeeded" do
8993
@s.skip_until("This")
@@ -104,6 +108,7 @@
104108
end
105109

106110
# https://github.com/ruby/strscan/issues/135
111+
ruby_version_is ""..."3.5" do # Don't run on 3.5.0dev that already contains not released fixes
107112
version_is StringScanner::Version, "3.1.1"..."3.1.3" do # ruby_version_is "3.4.0"..."3.4.3"
108113
it "ignores the previous matching with Regexp" do
109114
@s.exist?(/(?<a>This)/)
@@ -115,6 +120,7 @@
115120
@s[:a].should be_nil
116121
end
117122
end
123+
end
118124
version_is StringScanner::Version, "3.1.3" do # ruby_version_is "3.4"
119125
it "ignores the previous matching with Regexp" do
120126
@s.exist?(/(?<a>This)/)

0 commit comments

Comments
 (0)