Commit Graph

40 Commits

Author SHA1 Message Date
Michael Achenbach
74a2a8f611 [foozzie] Add flag experiments for gc fuzzing
This will add three gc fuzzing flags with 5% likelihood each to the second
correctness fuzzing config. The random checks are determined by the
top-level random-seed passed to the script.

This change depends on setting the fuzzer random seed as default to the
standard random seed, since the former isn't explicitly passed by
clusterfuzz.

NOTRY=true
TBR=hpayer@chromium.org

Bug: v8:7012
Change-Id: I794dc48bb953b6a95bbc4fc4305ad561bc13b6ee
Reviewed-on: https://chromium-review.googlesource.com/865912
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50577}
2018-01-15 13:03:54 +00:00
Michael Achenbach
0ac7a48ae8 [foozzie] Add slow-path correctness fuzzing variants
TBR=jgruber@chromium.org
NOTRY=true

Bug: v8:7120
Change-Id: Ib8375e6ad811d9299c9a477ed39c6bc76c0c90dd
Reviewed-on: https://chromium-review.googlesource.com/852232
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50382}
2018-01-05 12:20:04 +00:00
Michael Achenbach
a43af00861 [foozzie] Add "trusted" correctness fuzzing variants
NOTRY=true

Bug: chromium:798982
Change-Id: I0aa2bee5bf33884fa9bfc15da3053d817e1a1b49
Reviewed-on: https://chromium-review.googlesource.com/852212
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50381}
2018-01-05 12:12:04 +00:00
Michael Achenbach
98e26799ec [foozzie] Fix architecture auto-detect with multi-arch builds
The current_cpu value was erroneously removed from the build config json.
In multi-arch builds, each toolchain subdirectory in the build-product
output emits its own build-config json, where current_cpu determines
the architecture type of the sub-build.

Correctness-fuzzer runs could wrongly determined x86 sub-builds as x64.

Bug: chromium:777285
Change-Id: I5104630cd8ebbd263d557fb29771a31a2a1d78c2
Reviewed-on: https://chromium-review.googlesource.com/737797
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48950}
2017-10-26 06:50:08 +00:00
Michael Achenbach
de4463bb19 [foozzie] Fix fuzzer arguments and test case
NOTRY=true

Bug: chromium:777285
Change-Id: I89a0da2d524a84efdcdcb3df45bef11703340cde
Reviewed-on: https://chromium-review.googlesource.com/735152
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48880}
2017-10-24 13:25:09 +00:00
Michael Achenbach
d40756f829 [foozzie] Fix infering architecture
Broke in:
https://chromium-review.googlesource.com/c/v8/v8/+/725706

TBR=sergiyb@chromium.org
NOTRY=true

Bug: v8:6917
Change-Id: Ieb91c06a6bc1447acbe68c9ce881478c9a4a6149
Reviewed-on: https://chromium-review.googlesource.com/727800
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48719}
2017-10-19 07:39:59 +00:00
Peter Marshall
1a087f027f [test] Crash on InvalidStringLength for correctness fuzzer.
Now that the maximum string length varies between platforms, the
correctness fuzzer is unhappy. It will ignore crashes, so when we know
we have reached platform-dependant behavior just crash if
--abort_on_stack_overflow is enabled.

Also rename abort_on_stack_overflow to
abort_on_stack_or_string_length_overflow.

Bug: chromium:748137
Change-Id: Ie4e96709b90029b5ce3c8408064d928f841b3b9f
Reviewed-on: https://chromium-review.googlesource.com/589269
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#47007}
2017-07-31 12:59:50 +00:00
Michael Achenbach
0cda6ffed7 [foozzie] Suppress asm messages in all comparison configurations
TBR=mstarzinger@chromium.org
NOTRY=true

Bug: chromium:748981
Change-Id: I2043d283bd4eb6d98082f202d88638b3ca96a7c8
Reviewed-on: https://chromium-review.googlesource.com/586687
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46897}
2017-07-26 11:51:44 +00:00
Michael Achenbach
f014676112 [foozzie] Update test configurations to status quo
NOTRY=true

Bug: v8:6408
Change-Id: I9e70131158d837b735d398436a1da4b2e85daa67
Reviewed-on: https://chromium-review.googlesource.com/565398
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46512}
2017-07-10 12:32:22 +00:00
Michael Starzinger
3a47312226 [asm.js] Remove deprecated --fast-validate-asm flag.
R=clemensh@chromium.org
BUG=v8:6127

Change-Id: I104bf807d3da6a9f269e4f729b254bc6a0d2f0df
Reviewed-on: https://chromium-review.googlesource.com/496206
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45098}
2017-05-04 13:52:39 +00:00
Mythri
7371c34b6b Use --opt instead of --crankshaft in tests.
1. Replaces --crankshaft with --opt in tests.
2. Also fixes presubmit to check for --opt flag when
assertOptimized is used.
3. Updates testrunner/local/variants.py and 
v8_foozie.py to use --opt flag.
This would mean, nooptimize variant means there are
no optimizations. Not even with %OptimizeFunctionOnNextCall.

Bug:v8:6325

Change-Id: I638e743d0773a6729c6b9749e2ca1e2537f12ce6
Reviewed-on: https://chromium-review.googlesource.com/490206
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44985}
2017-04-28 14:20:39 +00:00
Michael Starzinger
81a0104540 [foozie] Add asm.js parser+validator configuration.
This adds a new "ignition_asm" configuration for the correctness fuzzer.
It is intended to compare execution behavior of asm.js modules (either
valid or invalid) that are translated to WASM, against baseline Ignition
execution. There should be no observable difference between these two
configurations.

R=machenbach@chromium.org
BUG=v8:6127
NOTRY=true

Change-Id: Id3bf8ef8251bf60391876d560f35ddd89818898f
Reviewed-on: https://chromium-review.googlesource.com/479653
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44686}
2017-04-18 14:02:10 +00:00
Ross McIlroy
b7648be7ec [Flags] Remove --ignition-staging flag.
Removes the --ignition-staging flag since it is no longer used
by anything and won't be a shipping configuration. Also removes
ignition_turbo variant from testrunner, since it is now 
the same as the turbofan variant.

BUG=v8:4280

Change-Id: I3b96e986879fc70b8e202fe9496334828acdd0ba
Reviewed-on: https://chromium-review.googlesource.com/452621
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43806}
2017-03-14 23:07:09 +00:00
Michael Achenbach
146c9e5406 [foozzie] Consistently drop validate-asm flag
Also format flags in single lines to make configs easier to read and modify.

BUG=chromium:673246
NOTRY=true
R=mstarzinger@chromium.org,titzer@chromium.org,rmcilroy@chromium.org

Change-Id: If37486c98af161467b639271b035207c3ae1077a
Reviewed-on: https://chromium-review.googlesource.com/452579
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43719}
2017-03-10 11:03:08 +00:00
Michael Achenbach
70965025ca [foozzie] Add config to run turbo_opt and no-lazy
BUG=chromium:673246
NOTRY=true
TBR=marja@chromium.org

Change-Id: I87faa32ae602a10b68a22fce46ee3bb39a7aa171
Reviewed-on: https://chromium-review.googlesource.com/449754
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43592}
2017-03-03 15:08:44 +00:00
Michael Achenbach
a49ff6abb7 [foozzie] Add better default configs for correctness fuzzing
This should make http://crbug.com/694535 quiet.

BUG=chromium:694535
NOTRY=true
TBR=mstarzinger@chromium.org,jarin@chromium.org

Change-Id: I268c810662b274b45842aa22d840330b5c984277
Reviewed-on: https://chromium-review.googlesource.com/445645
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43349}
2017-02-21 17:01:01 +00:00
Michael Achenbach
310f921377 [foozzize] Properly encode/decode captured output
BUG=chromium:691954
NOTRY=true
R=​​tandrii@chromium.org
TBR=jarin@chromium.org

Change-Id: Id57ed8206a19abb09a7e9835c876d3a932405658
Reviewed-on: https://chromium-review.googlesource.com/442424
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43190}
2017-02-14 15:00:19 +00:00
Michael Achenbach
163ff9943e [foozzie] Ignore OOM
BUG=chromium:691458
NOTRY=true
TBR=tandrii@chromium.org

Change-Id: I252f8624e18d54e0ba60800a2c4f3bf50c30c661
Reviewed-on: https://chromium-review.googlesource.com/441704
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43155}
2017-02-13 13:00:40 +00:00
Michael Achenbach
c495421cc2 [foozzie] Add configuration for comparing lazy/non-lazy parsing
BUG=chromium:673246
NOTRY=true
TBR=marja@chromium.org

Change-Id: If1fe4e886f03b3d6df57fb55df4db7efe7c625fa
Reviewed-on: https://chromium-review.googlesource.com/441764
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43145}
2017-02-13 09:55:14 +00:00
Michael Achenbach
851d2001fc [foozzie] Mock out large typed arrays
BUG=chromium:688856,chromium:664068
NOTRY=true

Change-Id: Icf0e7a51693b6d399c8395eb0bbed9a3c373eb0a
Reviewed-on: https://chromium-review.googlesource.com/439164
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43052}
2017-02-09 08:33:16 +00:00
Michael Achenbach
325b87ba06 [foozzie] Only apply output-bail-out on differences
With the old logic, a suppression shows up in the statistics independent if the test cases caused a difference or not. This doesn't give a signal if a suppression is useful. The new logic will help cleaning up suppressions that never apply.

BUG=chromium:673246
NOTRY=true
R=tandrii@chromium.org
TBR=mstarzinger@chromium.org,jarin@chromium.org

Change-Id: Iaebdac475f408f7d2649a34ccaa580c8d91e34a5
Reviewed-on: https://chromium-review.googlesource.com/437264
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#42932}
2017-02-03 15:42:38 +00:00
Michael Achenbach
f1f7050173 [foozzie] Don't use utf-8 encoding for console output.
BUG=chromium:673246,chromium:688307
NOTRY=true
R=tandrii@chromium.org
TBR=mstarzinger@chromium.org

Change-Id: I269032497cf574cf5180762e37b0fee1002a6c76
Reviewed-on: https://chromium-review.googlesource.com/437244
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#42931}
2017-02-03 15:32:20 +00:00
machenbach
13de00c0be [foozzie] Support multi-architecture builds
This adds optional multi-architecture builds, allowing to compile
x86 and x64 in one build. The correctness fuzzer can be configured to
compare the two executables, e.g. to compare x86 to x64 run the
launcher with: --second-d8=clang_x86/d8 in an x64 build.

Configuring the executable's architecture is now simplified and
inferred from the gn build configuration.

Building for clusterfuzz has now a new canonical target that can be
used by the infrastructure (defaults to d8).

The clusterfuzz release builder is now defined to compile
multi-arch builds, which will have an effect as soon as the
infrastructure refers to the new clusterfuzz target.

BUG=chromium:673246
NOTRY=true
TBR=mstarzinger,jarin

Review-Url: https://codereview.chromium.org/2649133010
Cr-Commit-Position: refs/heads/master@{#42884}
2017-02-02 11:32:52 +00:00
Michael Achenbach
8b597e291b Reland "[test] Add back lsan leak detection"
Reland of:
https://codereview.chromium.org/2592663004/

BUG=chromium:656900
TBR=yangguo@chromium.org, glider@chromium.org, titzer@chromium.org

Change-Id: I89b5c6b7a4214e25b4fea6d2ee33cd31b47320cc
Reviewed-on: https://chromium-review.googlesource.com/435319
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#42846}
2017-02-01 10:39:28 +00:00
machenbach
24b9fc3a9a [foozzie] Use correct ignition baseline
Also switch on validate asm in all configuration to zero out any
comparisons.

BUG=chromium:673246
NOTRY=true
TBR=mstarzinger@chromium.org, rmcilroy@chromium.org

Review-Url: https://codereview.chromium.org/2647493004
Cr-Commit-Position: refs/heads/master@{#42569}
2017-01-20 15:35:07 +00:00
machenbach
dd789d87f9 [foozzie] Stop using asm validator until results are more stable
The results are too noisy ATM. This switches off validate-asm for
default comparisons. We can add back dedicated jobs later that switch
it on.

BUG=chromium:663714
NOTRY=true
TBR=bradnelson@chromium.org,titzer@chromium.org

Review-Url: https://codereview.chromium.org/2640743004
Cr-Commit-Position: refs/heads/master@{#42467}
2017-01-18 15:54:20 +00:00
machenbach
c69a40fc57 [foozzie] Add ignition as baseline comparison
The new ignition config will be used as baseline comparison in new
jobs, e.g. against ignition_turbo. We'll keep --validate-asm off
in ignition_turbo for now as it is very chatty.

BUG=chromium:673246
NOTRY=true

Review-Url: https://codereview.chromium.org/2640043002
Cr-Commit-Position: refs/heads/master@{#42464}
2017-01-18 15:23:53 +00:00
machenbach
310a899773 [foozzie] Refactoring - move source hashing to main script
BUG=chromium:673246
NOTRY=true

Review-Url: https://codereview.chromium.org/2635923002
Cr-Commit-Position: refs/heads/master@{#42386}
2017-01-16 19:53:35 +00:00
machenbach
69465f73f8 [foozzie] Stop using extra metadata files.
Continuation of:
https://codereview.chromium.org/2620343005/

This removes usage of metadata files entirely. Instead we extract
the instrumentation about source files from the test cases.

This also adds extra output of the original source file in the
detailed failure text for easier debugging. The hashes alone
made it hard to reason.

BUG=chromium:673246
NOTRY=true
TBR=tandrii@chromium.org,mbarbella@chromium.org

Review-Url: https://codereview.chromium.org/2634743004
Cr-Commit-Position: refs/heads/master@{#42371}
2017-01-16 13:00:50 +00:00
machenbach
936f79d924 [foozzie] Fix comparison baseline after asm switch
Now that validate asm is on by default, the comparison fullcode with
ignition_staging does nothing in regards to validate_asm.

BUG=chromium:673246
NOTRY=true
TBR=bradnelson@chromium.org, titzer@chromium.org

Review-Url: https://codereview.chromium.org/2634573002
Cr-Commit-Position: refs/heads/master@{#42335}
2017-01-13 15:04:24 +00:00
machenbach
baf5a21751 [foozzie] Fix failure state for non-existing source output
BUG=chromium:673246
NOTRY=true
TBR=tandrii@chromium.org,mbarbella@chromium.org

Review-Url: https://codereview.chromium.org/2632623002
Cr-Commit-Position: refs/heads/master@{#42306}
2017-01-13 08:15:32 +00:00
machenbach
00e98a39e3 [foozzie] Improve failure state deduplication
The fuzz test cases now print the original test paths during execution.
This exploits this extra information and reports a hash of only one
original source file from the section that caused a difference.

The hash size is now limited to 3 to avoid possible duplicate
explosion, in case this doesn't work out as expected.

This prepares for patch 3 of:
https://chromereviews.googleplex.com/550337016/

BUG=chromium:673246
NOTRY=true
TBR=tandrii@chromium.org,mbarbella@chromium.org

Review-Url: https://codereview.chromium.org/2620343005
Cr-Commit-Position: refs/heads/master@{#42305}
2017-01-13 06:31:54 +00:00
machenbach
8024d8f42e [foozzie] Add suppressions based on metadata.
Also suppress a testcase using f.arguments.

BUG=chromium:662424
TBR=jarin@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2625983002
Cr-Commit-Position: refs/heads/master@{#42215}
2017-01-11 10:49:09 +00:00
machenbach
e88e668e81 Revert of [foozzie] Pass startup test (patchset #1 id:1 of https://codereview.chromium.org/2623743004/ )
Reason for revert:
Setting the BAD_BUILDS_CHECK env variable should
be enough. Lets revert this as the code doesn't
look particularly good. There must be another
problem still that needs investigation.

Original issue's description:
> [foozzie] Pass startup test
>
> This makes sure the harness passes when called without test case.
>
> BUG=chromium:673246
> NOTRY=true
> TBR=tandrii@chromium.org,mbarbella@chromium.org
>
> Review-Url: https://codereview.chromium.org/2623743004
> Cr-Commit-Position: refs/heads/master@{#42183}
> Committed: ede2fc1ff0

TBR=tandrii@chromium.org,mbarbella@chromium.org,mmoroz@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:673246

Review-Url: https://codereview.chromium.org/2628493003
Cr-Commit-Position: refs/heads/master@{#42189}
2017-01-10 17:18:59 +00:00
machenbach
ede2fc1ff0 [foozzie] Pass startup test
This makes sure the harness passes when called without test case.

BUG=chromium:673246
NOTRY=true
TBR=tandrii@chromium.org,mbarbella@chromium.org

Review-Url: https://codereview.chromium.org/2623743004
Cr-Commit-Position: refs/heads/master@{#42183}
2017-01-10 15:34:58 +00:00
machenbach
6d82e6182b [foozzie] Fix path to metadata
This makes sure the metadata is found during minimization. Also renames
the test files to fit the naming pattern.

BUG=chromium:673246
NOTRY=true
TBR=tandrii@chromium.org,mbarbella@chromium.org

Review-Url: https://codereview.chromium.org/2622653002
Cr-Commit-Position: refs/heads/master@{#42150}
2017-01-09 18:19:40 +00:00
machenbach
905d72befe [foozzie] Fix paths and resources
BUG=chromium:673246
NOTRY=true
TBR=tandrii@chromium.org

Review-Url: https://codereview.chromium.org/2598323002
Cr-Commit-Position: refs/heads/master@{#41954}
2016-12-26 16:55:24 +00:00
machenbach
5173b0fb78 [foozzie] Add sources metadata to failure output.
BUG=chromium:673246
NOTRY=true

Review-Url: https://codereview.chromium.org/2589683003
Cr-Commit-Position: refs/heads/master@{#41844}
2016-12-20 10:09:23 +00:00
machenbach
7e8bd39a49 [foozzie] Add some system tests.
BUG=chromium:673246
NOTRY=true

Review-Url: https://codereview.chromium.org/2585193003
Cr-Commit-Position: refs/heads/master@{#41836}
2016-12-20 09:33:55 +00:00
machenbach
e669816e1f [foozzie] Initial correctness fuzzer harness.
Initial version of the correctness fuzzer harness for manual testing
and experiments.

For automated usage, some outstanding TODOs are left in the code. E.g.
- Hash source file names in error case
- Bundle script in out directory with executables
- Some suppressions are tied to already fixed bugs. We'll keep it like that for now to test
removing those suppressions in production later.

BUG=chromium:673246
NOTRY=true

Review-Url: https://codereview.chromium.org/2578503003
Cr-Commit-Position: refs/heads/master@{#41789}
2016-12-19 10:13:48 +00:00