Skip to content

Releases: zimmski/tavor

v0.6

08 Oct 17:39
Compare
Choose a tag to compare

Tavor v0.6 changelog

  • Add a simple keyword-driven executor to make model-based testing usage clearer
  • Add support for negative values in integer ranges
  • Add support for negative values in the positive boundary filter
  • Add token attribute "Reference" to variable tokens
  • Add token attribute "Item" to list tokens
  • Allow list tokens for the "no in" operator
  • Add "path" operator as first experimental graph operator
  • Allow tokens in expressions
  • Allow token attributes in expressions
  • Allow variable forward usage
  • Accepting states in the DOT format are now double ellipses
  • Make the whole Tavor installation easier
  • Write temporary files for fuzzing with the "argument" exec type
  • Double escape escaped characters for the DOT format
  • Fix missing --list-exec-argument-types argument for the "fuzz" command
  • Fix typed token were not correctly used in early-usage list and variable scopes
  • Fix do not remove temporary files if there is an result folder
  • Fix wrong range for data-left error message in the internal parser
  • Fix endless loop in "Sequence.existing"
  • Fix internal/external mix-up in LoopExists
  • Fix "graph" command did not handle scopes
  • Fix the "random" fuzzing strategy should check for a nil random generator
  • Fix if multiple fuzzing filters can be applied only the first one is applied
  • Fix variables should be usable as normal tokens
  • Make it clear that the Tavor format is not final
  • Typed tokens can now be defined outside the Tavor parser
  • Introduce the term "expression list"
  • Add new token interfaces "Follow", InternalReplace", "Resolve" and "Scoping"
  • Do not make Go-generate mandatory
  • Permutations are now 0-based in Tavor
  • Refine all strategy and filter interfaces so that they can be directly applied to a token

v0.5

25 Jan 09:57
Compare
Choose a tag to compare

Tavor v0.5 changelog

  • Complete documentation
  • Require Go 1.4
  • Do not allow empty strings
  • Remove Least, Many and Most token
  • Remove Fuzz and FuzzAll
  • Rename special token to typed token
  • Rename the reduce strategy BinarySearch to Linear
  • Replace RandomInt with RangeInt
  • Fix reducing by making it work in general
  • Fix another unrolling bug by regenerating the whole structure
  • Fix resets of sequences and scopes
  • Fix combinations of Repeat
  • Workaround for zero repeat parsing
  • Fix UniqueItem permutation which fixes some resets
  • Fix release of Unique
  • Fix EOF in character classes

v0.4

14 Nov 23:33
Compare
Choose a tag to compare

Tavor v0.4 changelog

  • (Almost) complete documentation
  • Passing gofmt, golint, go vet and errcheck is now required by all code
  • 32bit on Linux is now supported
  • Added ranges, hex and some other escapes for character classes
  • Added permutations groups to the Tavor format
  • Allow infinite loops in the Tavor format
  • Allow "if" in Tavor format to have no "else" branch
  • Added token attribute "Count" to variables
  • Make "to" and "from" optional for special token "Int"
  • Switched default exec-argument-types to STDIN
  • Fixed goroutine leak in repeat reduction
  • Converted a lot of the API from int to uint
  • Setup TravisCI and Coveralls
  • Only write temporary files if they are needed
  • Fixed some permutation cornercases
  • Fixed corner case of unrolling
  • Replaced test.Rand with rand.IncrementRand
  • Make minimizing phase independent
  • Cleanup the tavor package
  • Even more small things and of course even more tests

v0.3

15 Aug 13:55
Compare
Choose a tag to compare

Tavor v0.3 changelog

  • Added Reduction of repeats
  • Forward usage of attributes
  • Arguments to automate delta debugging by executing external binaries
  • Arguments to automate fuzzing by executing external binaries
  • Added "Variables" with scopes
  • Added conditions "if", "if else" and "else"
  • Added operator "defined"
  • Added operator "not in"
  • Added "character class"
  • Added "Index" and "Unique" attributes
  • Added fuzzing filter for Negative boundary value analysis
  • Redone pointer unrolling (fixed a lot of cases)
  • Argument to define maximum repeats
  • Argument to print AST
  • Argument to not remove tmp files on error
  • Added IncrementRand and use it everywhere instead of ConstantRand this leads to more divers results
  • First draft to fix the mess that is the fuzzing of ExistingSequenceItems
  • Lots of old outstanding test cases and many many new ones

v0.2

27 Jul 10:57
Compare
Choose a tag to compare

Tavor v0.2 changelog

  • refactored binary to have commands
  • able to read in files validated through a format file (fuzzing output -> read back into tavor is now possible!)
  • basic delta debugging (reduction)
  • fuzzing filters
  • graphing of internal representation
  • bash completion support
  • logger
  • fixed special tokens
  • more verbose and debugging logs
  • additional API for tokens (like InternalGet and InternalLen)
  • Go 1.3 is required
  • even more tests

v0.1

26 Jun 10:42
Compare
Choose a tag to compare
v0.1 Pre-release
Pre-release

Tavor v0.1 provides

  • a working framework to create fuzzers and additional fuzzer heuristics
  • import Tavor format files into the internal token structure
  • fuzzer heuristics
    • Random - fuzz once at random
    • AllPermutations - generate all possibilities for the given format
    • PermuteOptionals - generate all possibilities for optional tokens (enable/disable them)
  • a working binary to validate and fuzz Tavor format files
  • automated tests for all major functionality