Skip to content

Backport(v1.16): test_fluentd: fix assert pattern of syntax error for Ruby HEAD (#4644) - #5187

Merged
daipom merged 1 commit into
v1.16from
backport-to-1.16/pr4644
Dec 9, 2025
Merged

Backport(v1.16): test_fluentd: fix assert pattern of syntax error for Ruby HEAD (#4644)#5187
daipom merged 1 commit into
v1.16from
backport-to-1.16/pr4644

Conversation

@Watson1978

Copy link
Copy Markdown
Contributor

Backport #4644

Which issue(s) this PR fixes:
Fixes #

Related to #4584

What this PR does / why we need it:
Ruby parser will be replaced new parser in Ruby 3.4. ruby/ruby@ea2af57

The new parser might not have a fully compatible of Syntax error messages.

So I modified the assert pattern to succeed in the Ruby HEAD.

example

module Foo
  class Bar
    def say
      puts "hello"
    end
  end

result with Ruby 3.3.5

$ ruby -v test.rb
ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-linux]
test.rb: --> test.rb
Unmatched keyword, missing `end' ?
> 1  module Foo

test.rb:6: syntax error, unexpected end-of-input, expecting `end' or dummy end (SyntaxError)
  end
     ^

result with Ruby 3.4-dev

ruby -v test.rb
ruby 3.4.0dev (2024-09-25T02:45:33Z master 76543a34ab) +PRISM [x86_64-linux]
test.rb: --> test.rb
Unmatched keyword, missing `end' ?
> 1  module Foo

test.rb:7: syntax errors found (SyntaxError)
  5 |     end
  6 |   end
> 7 | 
    | ^ expected an `end` to close the `module` statement

    | ^ unexpected end-of-input, assuming it is closing the parent top level context

Ruby 3.3.5 has test.rb:6: syntax error,.., but Ruby 3.4-dev has test.rb:7: syntax errors....

Docs Changes:

Release Note:

Ruby parser will be replaced new parser in Ruby 3.4.
ruby/ruby@ea2af57

The new parser might not have a fully compatible of Syntax error messages.

So I modified the assert pattern to succeed in the Ruby HEAD.

### example
```ruby
module Foo
  class Bar
    def say
      puts "hello"
    end
  end
```

### result with Ruby 3.3.5
```
$ ruby -v test.rb
ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-linux]
test.rb: --> test.rb
Unmatched keyword, missing `end' ?
> 1  module Foo

test.rb:6: syntax error, unexpected end-of-input, expecting `end' or dummy end (SyntaxError)
  end
     ^

```

### result with Ruby 3.4-dev
```ruby
ruby -v test.rb
ruby 3.4.0dev (2024-09-25T02:45:33Z master 76543a34ab) +PRISM [x86_64-linux]
test.rb: --> test.rb
Unmatched keyword, missing `end' ?
> 1  module Foo

test.rb:7: syntax errors found (SyntaxError)
  5 |     end
  6 |   end
> 7 |
    | ^ expected an `end` to close the `module` statement

    | ^ unexpected end-of-input, assuming it is closing the parent top level context

```

Ruby 3.3.5 has `test.rb:6: syntax error,..`, but Ruby 3.4-dev has `test.rb:7: syntax errors...`.

Signed-off-by: Shizuo Fujita <fujita@clear-code.com>
@Watson1978 Watson1978 added the CI Test/CI issues label Dec 9, 2025
@Watson1978 Watson1978 added this to the v1.16.11 milestone Dec 9, 2025
@daipom
daipom merged commit 6b165bd into v1.16 Dec 9, 2025
41 of 44 checks passed
@daipom
daipom deleted the backport-to-1.16/pr4644 branch December 9, 2025 03:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI Test/CI issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants