Skip to content

Regression testing #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
Open

Conversation

polgreen
Copy link

Adding regression tests for the shortest path search heuristic.

Note, some of these tests fail, because the master symex repository also fails those tests.

polgreen and others added 12 commits February 20, 2018 16:02
Randomized DFS shuffles the queue of successor states
Also fixes indentation and whitespace in the output function, and replaces unsigned with std::size_t, based on feedback from tautschn
Builds CFG of all program locations and computes the shortest distance from all locations in the graph to a single property.
WARNING: if more than one property is given, we use the first one only.

Writes these distances to the corresponding node in a locs structure passed as argument to the constructor, in order for this to be used to guide the symex search
Builds a CFG for every goto_program in goto_functions, and computes the distance for every location in the CFGs to the property, if one exists in taht CFG, or to the end of the function

Writes these numbers to locst passed as argument to the constructor, in order to use numbers to guide symex search
Shortest path search heuristic computes the shortest path from all program locations to a single property. This metric is used to guide the symex search.

We also introduce randomized shortest path based search, which makes a random choice when picking the next state every 1000 choices in order to avoid local minima
Computes the shortest path per function on the shortest path graph and uses this heuristic to guide the symex search
This is all the regression tests from regression/symex that only have one property, and all the regression tests from regression/symex-infeasibility that the default symex search heuristic (dfs) can complete in a reasonable amount of time.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant