nradov / abnffuzzer Goto Github PK
View Code? Open in Web Editor NEWJava fuzz testing library for implementations of ABNF rules such as IETF RFCs
License: GNU Lesser General Public License v2.1
Java fuzz testing library for implementations of ABNF rules such as IETF RFCs
License: GNU Lesser General Public License v2.1
Seeing the following issue with https://tools.ietf.org/html/rfc7950
public class YangTest {
/**
* Test the {@link UUID#fromString(String)} method.
*
* @throws IOException
* if an error occurs while reading a resource
*/
@Test
public void testFromFile() throws IOException {
final Fuzzer f = new Fuzzer(
YangTest.class.getResourceAsStream("/rfc7950.yang"));
}
}
Results in
Results :
Tests in error:
testFromFile(com.github.nradov.abnffuzzer.YangTest): No enum constant com.github.nradov.abnffuzzer.Terminal.Radix.s
Tests run: 11, Failures: 0, Errors: 1, Skipped: 0
Could you clarify why its failing please? Included the abnf in attached zip.
Fuzzer only recognizes rules with 3 children (rule = elements). But RFC 5234 allows in paragraph 3.3 Incremental Alternatives (rule =/ elements).
The Fuzzer class can currently only parse ABNF rules from files that contain only those rules as per the ANTLR grammar. So users who want to test implementations of IETF RFCs first have to manually copy and paste the rules into a separate file.
It would improve usability if this library could take the URI for an RFC as an argument and automatically extract the ABNF rules out of the entire document. However this appears to be a difficult problem in pattern recognition; it's hard to tell whether a particular line contains an ABNF rule, narrative text, or part of the header / footer. The bap aex tool may offer a starting point, however it doesn't appear to produce correct output for some RFCs.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.