Hi,
I packaged avalanche for Mandriva during the weekend, and I have
some
suggestions/comments:
Mask file contents should be in decimal, for example, scan a '-' and
if not
specified, call strtoul with base 0.
Instead of adding zeros, leave unchanged some bytes in the input/
seed file.
For example, I am testing a simple language, and specifying a mask
for a single statement, e.g. "b += a;", but it keeps padding with ^@
the
specific range, thus almost guaranteeing a syntax error on most/all
iterations; if instead of doing something like testing "b/*^@^@^@^@"
it
used "b/*= a;" I believe it would have a lot more chances of
triggering bugs,
but just a random suggestion, as I do not understand the algorithm
being
used.
I tried a somewhat equivalent test on gcc, with --trace-
children=yes, but
after a ^C in first iterations, I noticed that at least the valgrind
in
avalanche does not support the PCMPESTRI instruction:
vex amd64->IR: unhandled instruction bytes: 0x66 0xF 0x3A 0x61 0x7 0x0
$ objdump -d /usr/lib64/gcc/x86_64-mandriva-linux-gnu/4.6.1/cc1 | grep
"66 0f 3a 61 07 00"
b362c8: 66 0f 3a 61 07 00 pcmpestri $0x0,(%rdi),%xmm0
b362f4: 66 0f 3a 61 07 00 pcmpestri $0x0,(%rdi),%xmm0
b36324: 66 0f 3a 61 07 00 pcmpestri $0x0,(%rdi),%xmm0
running the same command on the system valgrind (3.6.1) appears to
work...
I just added a simple avalanche.txt, av-seed and av-mask files
to the check subdirectory of one project I have at googlecode:
https://code.google.com/p/exl/source/checkout
that should at least give a better idea of how I am using it.
Thanks,
Paulo