1
0
Fork 0
mirror of https://github.com/puma/puma.git synced 2022-11-09 13:48:40 -05:00

[CI] Add workflow to test ragel generation (#2859)

* [CI] Add ragel test for file changes

* Revert 'regenerate ragel' a7f48495e8
This commit is contained in:
MSP-Greg 2022-04-16 10:06:18 -05:00 committed by GitHub
parent 34c3c59809
commit a4b5c2fc61
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 90 additions and 22 deletions

68
.github/workflows/ragel.yml vendored Normal file
View file

@ -0,0 +1,68 @@
name: ragel
on: [push, pull_request, workflow_dispatch]
jobs:
ragel:
name: >-
ragel ${{ matrix.os }} ${{ matrix.ruby }}
runs-on: ${{ matrix.os }}
if: |
!( contains(github.event.pull_request.title, '[ci skip]')
|| contains(github.event.pull_request.title, '[skip ci]'))
strategy:
fail-fast: false
matrix:
include:
- { os: ubuntu-20.04 , ruby: head }
- { os: macos-11 , ruby: head }
- { os: windows-2022 , ruby: ucrt }
steps:
# windows git will convert \n to \r\n
- name: git config
if: startsWith(matrix.os, 'windows')
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- name: repo checkout
uses: actions/checkout@v3
- name: load ruby
uses: MSP-Greg/setup-ruby-pkgs@v1
with:
ruby-version: ${{ matrix.ruby }}
apt-get: ragel
brew: ragel
bundler-cache: true
timeout-minutes: 10
- name: check ragel generation
shell: pwsh
run: |
ragel --version
Remove-Item -Path ext/puma_http11/http11_parser.c
Remove-Item -Path ext/puma_http11/org/jruby/puma/Http11Parser.java
rake ragel
if ($IsWindows) {
dos2unix ext/puma_http11/http11_parser.c
dos2unix ext/puma_http11/org/jruby/puma/Http11Parser.java
}
$git_out = $(git status --porcelain)
if ($git_out -ne $null) {
echo "** $git_out **`n"
git --no-pager diff
echo "`nbundle exec ragel changes a file"
exit 1
}
- name: save ragel generated files on fail
uses: actions/upload-artifact@v3
if: ${{ failure() }}
with:
name: ${{ matrix.os }}-ragel-generated-files
path: |
ext/puma_http11/http11_parser.c
ext/puma_http11/org/jruby/puma/Http11Parser.java

View file

@ -175,7 +175,7 @@ tr8:
parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
}
goto st5;
tr30:
tr31:
#line 37 "ext/puma_http11/http11_parser.rl"
{ MARK(mark, p); }
#line 56 "ext/puma_http11/http11_parser.rl"
@ -183,13 +183,13 @@ tr30:
parser->fragment(parser, PTR_TO(mark), LEN(mark, p));
}
goto st5;
tr32:
tr33:
#line 56 "ext/puma_http11/http11_parser.rl"
{
parser->fragment(parser, PTR_TO(mark), LEN(mark, p));
}
goto st5;
tr36:
tr37:
#line 69 "ext/puma_http11/http11_parser.rl"
{
parser->request_path(parser, PTR_TO(mark), LEN(mark,p));
@ -199,7 +199,7 @@ tr36:
parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
}
goto st5;
tr40:
tr41:
#line 60 "ext/puma_http11/http11_parser.rl"
{ MARK(query_start, p); }
#line 61 "ext/puma_http11/http11_parser.rl"
@ -211,7 +211,7 @@ tr40:
parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
}
goto st5;
tr43:
tr44:
#line 61 "ext/puma_http11/http11_parser.rl"
{
parser->query_string(parser, PTR_TO(query_start), LEN(query_start, p));
@ -433,7 +433,7 @@ case 18:
if ( (*p) > 8 ) {
if ( 10 <= (*p) && (*p) <= 31 )
goto st0;
} else
} else if ( (*p) >= 0 )
goto st0;
goto tr25;
tr25:
@ -452,7 +452,7 @@ case 19:
if ( (*p) > 8 ) {
if ( 10 <= (*p) && (*p) <= 31 )
goto st0;
} else
} else if ( (*p) >= 0 )
goto st0;
goto st19;
tr9:
@ -499,7 +499,7 @@ st20:
case 20:
#line 501 "ext/puma_http11/http11_parser.c"
switch( (*p) ) {
case 32: goto tr30;
case 32: goto tr31;
case 60: goto st0;
case 62: goto st0;
case 127: goto st0;
@ -507,10 +507,10 @@ case 20:
if ( (*p) > 31 ) {
if ( 34 <= (*p) && (*p) <= 35 )
goto st0;
} else
} else if ( (*p) >= 0 )
goto st0;
goto tr31;
tr31:
goto tr30;
tr30:
#line 37 "ext/puma_http11/http11_parser.rl"
{ MARK(mark, p); }
goto st21;
@ -520,7 +520,7 @@ st21:
case 21:
#line 522 "ext/puma_http11/http11_parser.c"
switch( (*p) ) {
case 32: goto tr32;
case 32: goto tr33;
case 60: goto st0;
case 62: goto st0;
case 127: goto st0;
@ -528,7 +528,7 @@ case 21:
if ( (*p) > 31 ) {
if ( 34 <= (*p) && (*p) <= 35 )
goto st0;
} else
} else if ( (*p) >= 0 )
goto st0;
goto st21;
tr5:
@ -573,7 +573,7 @@ case 23:
case 62: goto st0;
case 127: goto st0;
}
if ( (*p) <= 31 )
if ( 0 <= (*p) && (*p) <= 31 )
goto st0;
goto st23;
tr6:
@ -586,7 +586,7 @@ st24:
case 24:
#line 588 "ext/puma_http11/http11_parser.c"
switch( (*p) ) {
case 32: goto tr36;
case 32: goto tr37;
case 34: goto st0;
case 35: goto tr38;
case 60: goto st0;
@ -594,7 +594,7 @@ case 24:
case 63: goto tr39;
case 127: goto st0;
}
if ( (*p) <= 31 )
if ( 0 <= (*p) && (*p) <= 31 )
goto st0;
goto st24;
tr39:
@ -609,17 +609,17 @@ st25:
case 25:
#line 611 "ext/puma_http11/http11_parser.c"
switch( (*p) ) {
case 32: goto tr40;
case 32: goto tr41;
case 34: goto st0;
case 35: goto tr42;
case 60: goto st0;
case 62: goto st0;
case 127: goto st0;
}
if ( (*p) <= 31 )
if ( 0 <= (*p) && (*p) <= 31 )
goto st0;
goto tr41;
tr41:
goto tr40;
tr40:
#line 60 "ext/puma_http11/http11_parser.rl"
{ MARK(query_start, p); }
goto st26;
@ -629,14 +629,14 @@ st26:
case 26:
#line 631 "ext/puma_http11/http11_parser.c"
switch( (*p) ) {
case 32: goto tr43;
case 32: goto tr44;
case 34: goto st0;
case 35: goto tr45;
case 60: goto st0;
case 62: goto st0;
case 127: goto st0;
}
if ( (*p) <= 31 )
if ( 0 <= (*p) && (*p) <= 31 )
goto st0;
goto st26;
st27: