• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

renatahodovan / grammarinator / 19612921131
84%

Build:
DEFAULT BRANCH: master
Ran 23 Nov 2025 02:55PM UTC
Jobs 1
Files 26
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

23 Nov 2025 02:53PM UTC coverage: 84.461% (+0.4%) from 84.074%
19612921131

push

github

web-flow
Add grammar tests for the C++ code path (#345)

(Most of) the Python-based grammar tests have been adapted to C++.
A grammar can be
- processed (i.e., the C++ source of a fuzzer can be generated),
- built (i.e., the sources of the fuzzer, libgrammarinator, and
  the generate.cpp command line tool can be compiled and linked
  together), and
- used for generation of test cases.
The tests have been added under a new tox environment `cxx`.

The infrastructure of the Python-based tests has been re-used and
extended to support the C++ workflow:
- Tests can contain new test commands `TEST-PROCESS-CXX`,
  `TEST-BUILD-CXX`, `TEST-GENERATE-CXX` to support the C++
  workflow.
- Test command lines can contain `{grammar_lower}` placeholder, to
  be replaced with the name of the grammar in all lower case.

Notes:
- DispatchingModel.g4 is not adapted since the C++ runtime does not
  have a DispatchingModel.
- ImagToken.g4 is not adapted since C++ does not allow multiple
  (re-)definitions of the same method in a class.
- InitAfter.g4 and Returns.g4 are not adapted since the C++
  generator template does not correctly handle returns from rules.
- SurrogatePairs.g4 is not adapted since the C++ runtime does not
  support encodings.

- Charset.g4 is only built and used for generation, but reparsing
  is skipped because it fails on Windows for some
  yet-to-be-analysed encoding issue.
- Custom.g4 is is only partially tested because subclassing the
  generator in does not work as expected in C++ (base methods are
  not virtual).
- LifeCycle.g4 is only built and used for generation, but
  population-based test generation is skipped because of some
  crashes yet to be fixed.
- UnicodeProperties{Lexer,Parser}.g4 are only built and used for
  generation, but reparsing is skipped because of Unicode version
  differences between Grammarinator and ANTLR. This behaviour is in
  alignment with the Python variant of this grammar.

- The grammar of Custom.g4 has been altered even fo... (continued)

2185 of 2587 relevant lines covered (84.46%)

0.84 hits per line

Jobs
ID Job ID Ran Files Coverage
1 19612921131.1 23 Nov 2025 02:55PM UTC 26
84.46
GitHub Action Run
Source Files on build 19612921131
  • Tree
  • List 26
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 9c135e3e on github
  • Prev Build on master (#19608299854)
  • Next Build on master (#19615089800)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc