-
Notifications
You must be signed in to change notification settings - Fork 10
/
CHANGELOG
116 lines (111 loc) · 4.87 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
v0.6
- 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
- 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
- (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
- 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
- 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
- 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