Commit Graph

166 Commits

Author SHA1 Message Date
Aart Bik ece4f273ea [vm/fuzzer] Randomly add deterministic flag
https://github.com/dart-lang/sdk/issues/37821

Change-Id: I852cab925443c70dea62a17960ae29be8814abc5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/114480
Reviewed-by: Felicitas Hetzelt <felih@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-08-26 18:37:39 +00:00
Aart Bik c91da3fa26 [vm/fuzzer] renable stacktrace stress test on FFI
https://github.com/dart-lang/sdk/issues/37606
https://github.com/dart-lang/sdk/issues/37910

Change-Id: Ie7704aba796943aa010281d7094f4d8125c82287
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/114544
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-08-26 18:18:09 +00:00
Felicitas Hetzelt 2bd46ba1cf [vm/fuzzer] Add dart option --use-slow-path
Change-Id: Iebdc50938024144387bdf1c5098e30e6dcea9afe
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/114300
Reviewed-by: Aart Bik <ajcbik@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Felicitas Hetzelt <felih@google.com>
2019-08-23 22:22:59 +00:00
Aart Bik 9ce9b437cb [vm/fuzzer] Advocate use of new collection features
Rationale:
We should advocate use of spread and control flow collections
Change-Id: I5e6e86b7f0506e4b44c70105ff574058a5910ecf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/114440
Reviewed-by: Felicitas Hetzelt <felih@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-08-23 19:46:51 +00:00
Aart Bik ef07c76302 [vm/fuzzer] Fix issue with passing extra flags to AOT
Rationale:
We were using an OPTIONS environment that no longer
worked (if it ever worked?). We can just pass the
right compiler flags to precompiler2.
Change-Id: Ifb86c377eab4cc11bd2e9dc2996654e707fadc4f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/114420
Reviewed-by: Felicitas Hetzelt <felih@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-08-23 18:31:41 +00:00
Felicitas Hetzelt 8b2deca4fa [vm/fuzzer] Add more ffi types
Rationale:
So far only variables of type ffi.Int32 were created. This patch
adds the remaining primitive types.
Change-Id: I3ded3c4c50d6867a879dfc95a72d2284cafa6875
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/114260
Commit-Queue: Felicitas Hetzelt <felih@google.com>
Reviewed-by: Aart Bik <ajcbik@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2019-08-23 01:18:43 +00:00
Felicitas Hetzelt 96a3aa6378 [vm/fuzzer] Extend special fuzzing values
Rationale:
Extend the list of special values to always include boundary values +-1
Change-Id: I008967b306ed5891369f1669ee11c9e634e0f6f0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/114186
Reviewed-by: Aart Bik <ajcbik@google.com>
Commit-Queue: Felicitas Hetzelt <felih@google.com>
2019-08-22 23:25:02 +00:00
Felicitas Hetzelt a35f4ec412 [vm/fuzzer] Add forEach loops
Rationale:
Extend the capabilities of the fuzzing program generator to include
forEach loop.
Change-Id: I9acb8d9a8cd3f566c53d0d591ccc17d856e6de0d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/114047
Commit-Queue: Felicitas Hetzelt <felih@google.com>
Reviewed-by: Aart Bik <ajcbik@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2019-08-22 20:08:44 +00:00
Felicitas Hetzelt f632df018a [vm/fuzzer] Add interesting fuzzing values
Rationale:
AFL provides a list of integer values likely to trigger bugs in the
target program. I added the afl list to the local list of interesting
values.
Change-Id: I4f5a29b395ab3bd16a9389a3c381d73eb1ad8fc4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/114051
Reviewed-by: Aart Bik <ajcbik@google.com>
Commit-Queue: Felicitas Hetzelt <felih@google.com>
2019-08-22 18:38:18 +00:00
Aart Bik 782e018630 [vm/fuzzer] change file attribute of fuzzing files
Rationale:
+x on python so it can run stand alone
-x on dart files
Change-Id: Iea6ac2f4fbfb1d919f705ac25fcf070446437199
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/114121
Reviewed-by: Felicitas Hetzelt <felih@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-08-22 18:12:08 +00:00
Felicitas Hetzelt 861cae4853 [vm/fuzzer] Disable stacktrace option on FFI runs
Rationale:
Until the related bug is fixed we
disable the option '--stacktrace_every=100' for tests.

Bug:
https://github.com/dart-lang/sdk/issues/37910

Change-Id: I257579f49ab15f9cae8c1480ae02824e0484c531
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/113863
Commit-Queue: Felicitas Hetzelt <felih@google.com>
Reviewed-by: Aart Bik <ajcbik@google.com>
2019-08-21 00:42:44 +00:00
Felicitas Hetzelt 2a41a800fe [vm/fuzzer] Add FFI methods
Rationale:
To test the dart FFI we add method calls which are tunnelled through the
FFI.

https://github.com/dart-lang/sdk/issues/37606

Change-Id: I3852ea48cab3e542dcc48520df279ec6ac850b51
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/113260
Reviewed-by: Aart Bik <ajcbik@google.com>
Commit-Queue: Felicitas Hetzelt <felih@google.com>
2019-08-16 23:10:30 +00:00
Felicitas Hetzelt 3707f39530 [vm/fuzzer] Track variables to avoid inf. loops
Rationale:
Many cases of the the loop iteration variable being modified within the
loop body, leading to infinite loops and timeouts. This patch tracks
currently active iteration variables and avoids emitting them on the lhs
of an assignment or within a pre/post operation.
Change-Id: I5e7c84f0de72410dc98d115d75b1f09e6631ece2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112843
Reviewed-by: Aart Bik <ajcbik@google.com>
Commit-Queue: Felicitas Hetzelt <felih@google.com>
2019-08-13 19:39:12 +00:00
Felicitas Hetzelt 62aa02e716 [dart/vm] Fix type of loop variable to int
Rationale:
Some programs generated by dartfuzz.dart cause failures when executed
due to the type of a loop variable being inferred as 'num'.
By setting the type of such variables explicitly to 'int' we avoid such cases.
Change-Id: Ibdfd06ece28914ee26fd38f2b3efa20cd93ba9ca
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112754
Commit-Queue: Felicitas Hetzelt <felih@google.com>
Reviewed-by: Aart Bik <ajcbik@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2019-08-12 23:26:52 +00:00
Aart Bik 4080ea787d [vm/fuzzer] Add ia32,arm32,arm64 modes to KBC
Rationale:
Bytecode implementation is ready for some
more exhaustive testing. Fuzz on!

Change-Id: I648cc447ebb830bda56ae6659ca5bc65d13c76b6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112405
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-08-08 22:11:32 +00:00
Aart Bik 1f4d251aa4 [vm/fuzzer] Added mode where kbc x64 goes directly "from source"
Change-Id: I88902a83d701033ab7cc47b0e0cd78bc48069478
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112400
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-08-08 19:13:14 +00:00
Aart Bik 77f50c0910 [vm/fuzzer] Added links to Dust
Change-Id: I8845d0c5a90eaffca36da58f1884d2dc090361ff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112271
Reviewed-by: Mike Fairhurst <mfairhurst@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-08-08 00:47:55 +00:00
Felicitas Hetzelt b6df9fb9d1 [dart/vm] Only re-run if exit code outside |255|
Rationale:
A test should only be reported if the exit code indicates an error
outside of the Dart VM. Which is most likely the case for exit Code
values outside of the interval [-255,255]

https://github.com/dart-lang/sdk/issues/37632

Change-Id: I35e3352e85e1af5f5a06753d8f43e6606902c80d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111989
Reviewed-by: Aart Bik <ajcbik@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Felicitas Hetzelt <felih@google.com>
2019-08-05 22:50:22 +00:00
Felicitas Hetzelt ddc09607c6 [dart/vm] Webscraper for make_a_fuzz cluster runs
Given the uri of a make_a_fuzz run, this script will first
extract the links pointng to each of the individual shards
and then parse the output generated by that shard for
divergences reported by the dartfuzz_test.dart program.

Change-Id: Ieb328737f940bf736c803ec58ac88e54e30e59b1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111666
Reviewed-by: Aart Bik <ajcbik@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Felicitas Hetzelt <felih@google.com>
2019-08-05 22:46:09 +00:00
Felicitas Hetzelt 52ce6273f3 [dart/vm] Rerun test on return code divergence
Rationale:
Some of the reported divergences could not be reproduced locally.
This patch adds the option to re-run tests on empty divergences
in order to triage such bugs.
Further, it adds an option to specify an existing dart program instead
of generating one randomly for testing purposes.

https://github.com/dart-lang/sdk/issues/37632
https://github.com/dart-lang/sdk/issues/37646

Change-Id: I85760dc52bfb4f3f9fa45931f94df8fa4c3c2a89
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111240
Reviewed-by: Aart Bik <ajcbik@google.com>
Commit-Queue: Felicitas Hetzelt <felih@google.com>
2019-07-31 21:04:01 +00:00
Aart Bik bb34cfeb25 [dart/fuzzer] Extend list of forbidden classes/methods
Rationale:
Avoid touching file system or exit codes just to avoid
possible false divergences.

https://github.com/dart-lang/sdk/issues/37632

Change-Id: I603ef19fa2919f0f26839c4f42bfc51a3fb96979
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111360
Reviewed-by: Felicitas Hetzelt <felih@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-07-30 20:49:56 +00:00
Aart Bik 25f91383a7 [dart/fuzzer] show exit/stdout/stderr on fail
https://github.com/dart-lang/sdk/issues/37632

Change-Id: I38b996eca7f12b2f4e4d0412f1c922dd3999d60b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/110584
Reviewed-by: Felicitas Hetzelt <felih@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-07-25 23:06:37 +00:00
Felicitas Hetzelt c9c0f56f48 [dart/vm] Add 'small string' parameter specifier
Rationale: Forces the fuzzer to generate a string literal
as the parameter of selected string functions (i.e. padLeft/Right)
in order to avoid recursion of the form x = "".padLeft/Right(x).

https://github.com/dart-lang/sdk/issues/37573

Change-Id: Icd9f5da07ccdd44e81c88a450c3d2cdd7c8e8f95
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/109893
Commit-Queue: Felicitas Hetzelt <felih@google.com>
Reviewed-by: Aart Bik <ajcbik@google.com>
2019-07-23 00:19:48 +00:00
Aart Bik c2af59f1ea [dart/fuzzer] Add flag to control FP operations
Rationale:
Floating-point operations have some potential for
false divergences (mostly when going through libc
methods that are compiled differently between 32-
and 64-bit. To avoid these, a --no-fp flag has
been added to dartfuzz.dart which can be used
to dartfuzz_test.dart to avoid floating-point
operations when comparing 32-/64-bit execution
modes.

https://github.com/dart-lang/sdk/issues/37335

Change-Id: Ie3c28f2a6e2d257b8e9adbba79d088b3879264ac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/109891
Reviewed-by: Felicitas Hetzelt <felih@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-07-22 20:42:30 +00:00
Felicitas Hetzelt 3999369c5f [dart/vm] Display test return code on divergence
Rationale:
A divergence can be caused by differences in test
output, timeout or crash. This patch displays the
return code of the test program, so that the latter
two cases can be distinguished.
Change-Id: Id5520a2da41aad191c0878148acfff2c98c110aa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/109682
Reviewed-by: Aart Bik <ajcbik@google.com>
Commit-Queue: Felicitas Hetzelt <felih@google.com>
2019-07-22 18:18:38 +00:00
Aart Bik 67ae4b3735 [dart/fuzzer] Deprecate DBC nightly runs in fuzzer
Rationale:
Deprecating DBC cluster runs in fuzzer since the
focus will move away from this mode. Our resources
are better spent on running all other modes.
Change-Id: I6938381fa59c5d40928d891b08725fdf7c54cece
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106921
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-06-20 18:09:21 +00:00
Aart Bik fa7fc5fb25 [dart/fuzzer] added another ignored parameter
Rationale:
Avoids rejecting extra parameter when running
on cluster for nightly testing.
Change-Id: I34a5e02638ec93f602609e32f5e460e774656f35
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105968
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-06-13 19:05:04 +00:00
Aart Bik 869cb683d8 [dart/fuzzer] rename exception parameter
Rationale:
catch (e) had a very interesting shadowing
with math's constant e, which unintentionally
allowed exeption text to enter the divergence
mechanism; here we were fuzzing the fuzzing
really :-)

https://github.com/dart-lang/sdk/issues/36916

Change-Id: Ie5cd61755ea61921b903684532d404f4dc734edd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102062
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-05-09 20:47:21 +00:00
Aart Bik e00b2b577e [dart/fuzzer] restrict length parameter in List fill
Rationale:
Easily causes out of memory. For AOT, can even break
asserts on compilation consants.

https://github.com/dart-lang/sdk/issues/36658

Change-Id: I662c1e50338db636e2b558ac3a2761659d8b2ad4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100635
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-04-27 00:00:14 +00:00
Aart Bik ec15148db2 [dart/fuzzer] no target on unsupported build targets
Rationale:
This if "hides" the dart_libfuzzer target for
build targets that do not support the fuzzer tool
(e.g. no asan, ia32, etc.). This makes "build all"
possible again, and yields "unknown target 'dart_libfuzzer'"
for unsupported case. Also updates README accordingly
and fixes some formatting.

https://github.com/dart-lang/sdk/issues/36774

Change-Id: I61d85ae00d13a0eda3818d40b992cd81f5ee0357
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100630
Commit-Queue: Aart Bik <ajcbik@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2019-04-26 20:51:15 +00:00
Aart Bik d0b236c319 [dart/fuzzer] restrict stmt depth and length
Rationale:
We have consistent failures with DBC reaching
the 64K constant limit. Although a true problem,
as this stage, it is not so useful to keep
DartFuzz nightly runs red constantly for this.
This CL reduces the length a bit, so that we
hit this restriction less often.

https://github.com/dart-lang/sdk/issues/36646
https://github.com/dart-lang/sdk/issues/36658

Change-Id: Ief2c7293b0159b798ee0426751899dc7fffd4f5d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100464
Reviewed-by: Samir Jindel <sjindel@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-04-25 17:17:20 +00:00
Aart Bik e6260f67b3 [dart/fuzzer] Remove hashCode from API table
Rationale:
Yields false dependences between 32-bit and 64-bit
implementations.

https://github.com/dart-lang/sdk/issues/36658

Change-Id: I61309628527cf859637643a943a68d8003873792
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100460
Reviewed-by: Samir Jindel <sjindel@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-04-24 18:48:25 +00:00
Aart Bik 585debbb2e [dart/fuzzer] Exclude process info from API table
Rationale:
Yields false divergences only.

https://github.com/dart-lang/sdk/issues/36560

Change-Id: I48e32e06b453bab0aeba22ee214ec201ebd34229
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99083
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Aart Bik <ajcbik@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-04-10 21:05:12 +00:00
Aart Bik dc606ef02f [dart/fuzzer] Exclude 'pid' from API table
Rationale:
Yields false divergences only.

https://github.com/dart-lang/sdk/issues/36560

Change-Id: I68133e2b076e1da1b094d79512a281093b093a91
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99080
Reviewed-by: Aart Bik <ajcbik@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-04-10 19:04:59 +00:00
Aart Bik b76694386a [dart/fuzzer] Exclude Platform from API table
Rationale:
Using Platform strings and other features is
too subject to divergences between the different
execution modes. Nothing useful is tested here.
Change-Id: Icb96b0a6891d1b45b831fb17fa1d9d2cd7b77b6f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98948
Reviewed-by: Aart Bik <ajcbik@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-04-10 01:07:51 +00:00
Aart Bik fd2393d6d3 [dart/fuzzer] Re-enable optimization_counter_threshold testing
Rationale:
Underlying issues fixed by Samir.

https://github.com/dart-lang/sdk/issues/35196

Change-Id: I7baaecbe6611f9581050da09ac5375fdf70db319
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98760
Reviewed-by: Samir Jindel <sjindel@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-04-05 22:56:34 +00:00
Aart Bik 5e8b0b7a97 [dart/fuzzer] Fuzz support for spread and control flow collections
Rationale:
Follows the documented grammar to allow for arbitary nested
spead/if/for inside collections (list, set, maps).

https://github.com/dart-lang/sdk/issues/36218
https://github.com/dart-lang/sdk/issues/36214

Change-Id: Ie5b5828a323401c4db14045e6edd0587677f2c19
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98261
Reviewed-by: Aart Bik <ajcbik@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-04-04 17:22:24 +00:00
Aart Bik f29e100f42 [dart/fuzzer] Generate DartFuzz API tables automatically
Rationale:
Rather than manually constructing the API tables for DartFuzz,
this introduces a utility to generate API tables based on
the analyzer traversal of common libraries. The utility
recognizes DartTypes that are currently understood by DartFuzz
and constructs the tables organized by return type.

TBD:
DartFuzz's type system is rather simple; as this improves,
more and more methods will be accepted by the utility,
thereby increasing fuzzing coverage of our libraries.
Change-Id: Idcc607a4a592dbbf80bd79cdfec429cb397b7f68
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98041
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-03-28 16:31:45 +00:00
Aart Bik a6a5a2b635 [dart/fuzzer] Added more Dart constructs
Rationale:
More generation-based fuzz cases to cover
more Dart constructs. Already found first
new bug.

https://github.com/dart-lang/sdk/issues/36076

Change-Id: I77a9a589d89c1fb0a57a202fb88d046cf15d058e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95303
Reviewed-by: Alexander Thomas <athom@google.com>
2019-03-07 19:08:05 +00:00
Aart Bik d136a35244 [dart/fuzzer] Add O3 as random command line switch
Also further refactors switch selection from naming.
The JIT stress execution modes don't really need
their own visible name (you cannot really control
which stress test to use anyway with --mode), so it's
cleaner to remove the idea of controlling switches
altogether.

Change-Id: I98aa71ce8653013fb45a4c482d7b4c5a02143a55
Reviewed-on: https://dart-review.googlesource.com/c/92386
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-02-08 18:04:05 +00:00
Aart Bik b05b8777d4 [dart/fuzzer] Refactor switch setup, add VFP to ARM
Rationale:
The fuzz test constructors were getting a bit convoluted
with mode specific setup. This CL refactors the flag
and mode name setup into the factory method, making
all constructors small again.
Change-Id: I5fd34e089315c89e674c7b28a4f298143fbeaeea
Reviewed-on: https://dart-review.googlesource.com/c/92380
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-02-07 22:41:18 +00:00
Aart Bik bc0cbac5cc [dart/fuzzer] remove obsolete reference to py file
Change-Id: I4532e425904d95d3f4883422da943bc5a9ab9c7c
Reviewed-on: https://dart-review.googlesource.com/c/90782
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-01-23 19:13:36 +00:00
Aart Bik 7078c9a69e [dart/fuzzer] Further development DartFuzz
Rationale:
Adds a few more constructs, avoid situations that go out-of-memory
too easily, prepares library method format for automatic generation
of library tables.

https://github.com/dart-lang/sdk/issues/35406

Change-Id: I24b4656ea073fbe41175aa08952588e28d4363a1
Reviewed-on: https://dart-review.googlesource.com/c/90320
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-01-23 17:21:11 +00:00
Aart Bik 80a6f4b5dd [dart/fuzzer] refactor lists into new file
Rationale:
Refactor DartFuzz so that long lists of values appear
in separate file, making the actual fuzzing code easier
to read. Also, this prepares generating some of the
lists automaticaly (such a library methods). Note that
*no* version bump is required, since this refactoring
does not change behavior.
Change-Id: Ic58eb7bc1aa63f48ec0d37e3c2399917786086bd
Reviewed-on: https://dart-review.googlesource.com/c/87266
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2018-12-14 00:22:07 +00:00
Aart Bik a16f1bd67b [dart/fuzzer] Fix js execution mode specification
Rationale:
With recent refactoring, we need to give js a tag,
which actually makes the naming more consistent
(even though path for js is computed slightly differently).
Change-Id: I5649f38ae41c9bf133629f8a0602f03be99ac523
Reviewed-on: https://dart-review.googlesource.com/c/86945
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2018-12-11 19:18:10 +00:00
Ryan Macnak f6b5f9ce2e [vm] Add --gc_every to trigger major GC every N stack overflow checks.
Add DartFuzz configurations for various stress flags.

Change-Id: I2278ffcd1ea4193067c4c9f12ec669e48a182f00
Reviewed-on: https://dart-review.googlesource.com/c/86822
Reviewed-by: Aart Bik <ajcbik@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2018-12-11 01:28:02 +00:00
Aart Bik bbe9333af5 [dart/fuzzer] Report stderr on non-output divergence
Rationale:
The output for output divergences is too lenghty to
report (and should be reproducable anyway). However,
for any other divergence, we want to have a better
clue on what went wrong, since this may indicate
an infrastructure problem that is harder to reproduce.
Change-Id: I20e14a753048406fad6cbd55a270bf6958920915
Reviewed-on: https://dart-review.googlesource.com/c/86000
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2018-12-04 19:06:26 +00:00
Aart Bik 86111b5543 [dart/fuzzer] Disable jit-opt modes
Rationale:
None of the jit-opt-xxx modes gives any useful
information while the flag is not stable.

https://github.com/dart-lang/sdk/issues/35196

Change-Id: I103931a21a1d9d8293b3044f00e9a73c0f6fe6f5
Reviewed-on: https://dart-review.googlesource.com/c/84827
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2018-11-19 22:56:33 +00:00
Aart Bik 81d899ac30 [dart/fuzzer] Add mode to stress test JIT optimization
Rationale:
We get pretty good coverage on unoptimized path for JIT,
but the optimized path depends heavily on whether functions
are called often in the fuzz generated code. This mode
adds coverage of going quicker into the optimized path.

Note:
This mode already exposed an issue with DEBUG JIT.

https://github.com/dart-lang/sdk/issues/35196

Change-Id: Ib32b4ba449cb7b2b777d669ef264742aa44a9ccc
Reviewed-on: https://dart-review.googlesource.com/c/84680
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2018-11-16 22:25:24 +00:00
Aart Bik c60cff1d33 [dart/fuzzer] Introduce time-based test runs
Rationale:
To maximize CPU utilitization during fuzzing runs,
we now use a time-out on all the individual fuzz
testing runs (rather than repeat based). This way,
the "faster" tests will cover more ground, while
the "slower" straggler tests will not break the test
with unnecessary time-outs at cluster level.
Change-Id: I5f0f9646da3fbd8b361a7ea43444b1896a45b57f
Reviewed-on: https://dart-review.googlesource.com/c/84047
Commit-Queue: Aart Bik <ajcbik@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2018-11-12 18:47:59 +00:00