This week I worked a lot on loops, making the edits required to the loop interface.
These changes forced me to refractor the previous code. Also some problem occurred.
The main problem is about the serialization of loops. The test I made for serialization passed because they consisted on the serialization of a single Loop. This kind of test was not good, because it didn't consider the loop inside a Script. In fact the serialization of a Script containing a Loop didn't work properly.
This problem is caused by the usage of generics and a bad design of the structure of loops.
This week I noticed this problem and fixed it making some changes at the design:
- The set of token is now declared in the subtype (LoopInteger, LoopFile & LoopString);
- The step is declared only for LoopInteger;
- The loop phase now considers the index of the current token, and no more the value of the token.
After these changes I worked also at the Loop UI, changing the previous dialogs, here some snapshots:
This is the dialog for String Loops:
This is the dialog for Integer Loops:
This is the dialog for File (only fuzzers files)
Thes interfaces are much more easy.
As you can see, I inserted a new field: "Variable Name". This is a change I had to made to loops because it helps a lot in the usage of the tokens iside the loops.
This week I planned to clear the code and make a, hopefully, definitive push for Loops.