Skip to content

Commit

Permalink
test_fluentd: fix assert pattern of syntax error for Ruby HEAD (#4644)
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
Watson1978 authored Sep 26, 2024
1 parent bff81cb commit 7e39526
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion test/command/test_fluentd.rb
Original file line number Diff line number Diff line change
Expand Up @@ -570,7 +570,7 @@ def assert_fluentd_fails_to_start(cmdline, *pattern_list, timeout: 20)

assert_fluentd_fails_to_start(
create_cmdline(conf_path, "-p", File.dirname(plugin_path)),
"in_buggy.rb:5: syntax error, unexpected end-of-input"
/in_buggy.rb:\d+:.+\(SyntaxError\)/
)
end
end
Expand Down

0 comments on commit 7e39526

Please sign in to comment.