Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/epintos/fajita

Final project for Software Engineering at ITBA. Year 2013-2014.
https://github.com/epintos/fajita

Last synced: 22 days ago
JSON representation

Final project for Software Engineering at ITBA. Year 2013-2014.

Awesome Lists containing this project

README

        

Fajita
========

Final project for Software Engineering at ITBA. Year 2013-2014.

Fajita is a SAT-based automatic tool for test input generation. Fajita is specially aimed at the generation of complex linked data structures satisfying challenging invariants.

Fajita depends on the following projects:

* AlloyCli
* DynAlloy4
* JDynAlloy
* Taco

Instructions
=============

To import the projects to `Eclipse` and include the respectives projects dependecies, some configuration files were included in the source code.

##### Parameters

* `-cp`, `--classpath` `` classpath storing source code to be verified

* `-c`, `--class_to_check` `` fully qualified class name to verify

* `-m`, `--method_to_check` ` ` method name to be verified

* `-tf`, `--properties_template_file` `` properties template file with all required Taco settings

* `-rp`, `--result_path` `` result path for Fajita output

* `-r`, `--coverage_criteria` `` selects coverage (goal, class, branch or dual). Dual does an iteration of class coverage to quickly cover easy goals
and continues with the missing goals for branch coverage (default is
goal coverage)

* `-u`, `--loop_unroll` `` number of unrolls (default is 3)

* `-s`, `--object_scope` `` size of the object pool to be used (default is 3)

* `-iu`, `--incremental_unroll` turns the unroll-scope exploration heuristic on

* `-ig`, `--ignore_goals` `` Considers the given goals as covered (separated by commas and no
whitespaces). If non-empty while using dual coverage triggers an
execution with branch coverage, otherwise it uses class coverage.

* `-rc`, `--relevant_classes` `` a comma separated list of the classes required to compile to run
the one being checked

* `-to`, `--timeout_secs` `` seconds to wait for a particular sat solution to be obtained

* `-o`, `--append_bounds_if_available` `` if a tight bound is in the repository, add it to the Alloy
model (default is true)

* `-a`, `--only_alloy` don't solve; just translate to Alloy (default is false)

* `-gu`, `--generate_junit` `` generate a junit file with the set of tests found

* `-b`, `--int_bitwidth` `` alloy integer bitwidth (default is 4)

* `-cs`, `--choose_solver` `` sets the SAT solver (default is minisat, we support sat4j)

* `-cf`, `--config_file` `` config file with all required Fajita settings

* `-v`, `--version` show version information

* `-h`, `--help` display this text

* tip: classpath and (config_file or (class_to_check and method_to_check)) are mandatory arguments.

* Examples:
* Branch Coverage: -cp roops -cf config/roops_core_objects_LinkedList/addLastTest.fajita.config -tf config/taco.properties.template -rp result -gu true -cs sat4j
* All Uses Coverage: -cp roops -cf config/roops_core_objects_OurTests/allDef.fajita.config -tf config/taco.properties.template -rp result -gu true -cs sat4j -r uses -m test2
* MCC Coverage: -cp roops -cf config/roops_core_objects_OurTests/MCC.fajita.config -tf config/taco.properties.template -rp result -gu true -cs sat4j -r mcc -m test1