greg4cr / labelsearch Goto Github PK
View Code? Open in Web Editor NEWSearch-Based Generation of Label-Covering Test Cases for C Programs
License: Mozilla Public License 2.0
Search-Based Generation of Label-Covering Test Cases for C Programs
License: Mozilla Public License 2.0
Structs often contain pointers to other structs. Those may contain further pointers. When do we stop generating? We need some form of depth control.
For generation - do a coin flip - do we go another level down?
Maybe keep a counter, have a max gen depth? Adjust probability as we go down.
During mutation, we could add another layer, null out an existing layer, or mutate an existing layer.
Check is a popular unit testing framework for C programs: https://libcheck.github.io/check/
Should LabelSearch tests be compatible with Check?
Traced down to the fact that structs return in the form:
//structInput69107: struct tagEntry structInput69107 = {.key = 221, .value = 99};
However, the struct generator also dislikes returns with "//" in them. Easy to fix, but can't get to it today. Making a note to remember.
Currently, char* results in a single character. We should support generation of full strings.
We should make it easier to mutate test cases by isolating mutatable elements. Also consider how to identify those when importing a file.
File "LabelSearch/generation/DependencyGraph.py", line 114, in visit_FuncDef
function.append(node.decl.type.type.type.names)
AttributeError: 'TypeDecl' object has no attribute 'names'
Obligations that do not compiled when instrumentation is performed are currently replaced with constants. Instead, they should be replaced with flags (met/not met instead of continuous score).
AttributeError: 'Struct' object has no attribute 'names'
The C parser, pycparser, does not correctly parse functions marked as extern or __inline. However, the C filtering done by frama-c often leaves these in the file. This is obviously not ideal.
Options:
Functions of the type (*PrintFunc)(...)
The arguments matter for the simple def/use analysis. However, right now, they cause the parser to crash.
LabelSearch does not currently support the enum type. This should change.
Ideally with requirements too.
Currently, the generator just states that it can't handle the type for, i.e., const char.
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.