diff options
| author | nagachika <nagachika@ruby-lang.org> | 2021-05-23 16:09:17 +0900 |
|---|---|---|
| committer | nagachika <nagachika@ruby-lang.org> | 2021-05-23 16:09:17 +0900 |
| commit | 5af5ea7f860ed64062796e54e73274e7a56c7280 (patch) | |
| tree | 0a3bb24a41eb093858593de234c6169833500cac /spec/ruby/core/string/lstrip_spec.rb | |
| parent | 44b87adc07621b6a8eddfcf4aaff34ce634179d4 (diff) | |
merge revision(s) cfd162d535c7a4f8b1f95255cc6be696a8b75557: [Backport #17467]
Make String#{strip,lstrip}{,!} strip leading NUL bytes
The documentation already specifies that they strip whitespace
and defines whitespace to include null.
This wraps the new behavior in the appropriate guards in the specs,
but does not specify behavior for previous versions, because this
is a bug that could be backported.
Fixes [Bug #17467]
---
spec/ruby/core/string/lstrip_spec.rb | 18 ++++++++++++------
spec/ruby/core/string/strip_spec.rb | 22 ++++++++++------------
string.c | 4 ++--
test/ruby/test_string.rb | 16 ++++++++++++++++
4 files changed, 40 insertions(+), 20 deletions(-)
Diffstat (limited to 'spec/ruby/core/string/lstrip_spec.rb')
| -rw-r--r-- | spec/ruby/core/string/lstrip_spec.rb | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/spec/ruby/core/string/lstrip_spec.rb b/spec/ruby/core/string/lstrip_spec.rb index 12c7b13200..6b40189500 100644 --- a/spec/ruby/core/string/lstrip_spec.rb +++ b/spec/ruby/core/string/lstrip_spec.rb @@ -7,11 +7,13 @@ describe "String#lstrip" do " hello world ".lstrip.should == "hello world " "\n\r\t\n\v\r hello world ".lstrip.should == "hello world " "hello".lstrip.should == "hello" - "\000 \000hello\000 \000".lstrip.should == "\000 \000hello\000 \000" end - it "does not strip leading \\0" do - "\x00hello".lstrip.should == "\x00hello" + ruby_version_is '3.1' do + it "strips leading \\0" do + "\x00hello".lstrip.should == "hello" + "\000 \000hello\000 \000".lstrip.should == "hello\000 \000" + end end ruby_version_is ''...'2.7' do @@ -28,10 +30,14 @@ describe "String#lstrip!" do a = " hello " a.lstrip!.should equal(a) a.should == "hello " + end - a = "\000 \000hello\000 \000" - a.lstrip! - a.should == "\000 \000hello\000 \000" + ruby_version_is '3.1' do + it "strips leading \\0" do + a = "\000 \000hello\000 \000" + a.lstrip! + a.should == "hello\000 \000" + end end it "returns nil if no modifications were made" do |
