Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
FuzzRegionSetPath.cpp
Go to the documentation of this file.
1/*
2 * Copyright 2018 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#include "fuzz/Fuzz.h"
9#include "fuzz/FuzzCommon.h"
10#include "include/core/SkPath.h"
12
13
15 SkPath p;
16 FuzzNicePath(fuzz, &p, 1000);
17 SkRegion r1;
18 bool initR1;
19 fuzz->next(&initR1);
20 if (initR1) {
21 fuzz->next(&r1);
22 }
23 SkRegion r2;
24 fuzz->next(&r2);
25
26 r1.setPath(p, r2);
27
28 // Do some follow on computations to make sure region is well-formed.
30 r1.isComplex();
31 if (r1 == r2) {
32 r1.contains(0,0);
33 } else {
34 r1.contains(1,1);
35 }
36}
37
38#if defined(SK_BUILD_FOR_LIBFUZZER)
39extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
40 if (size > 512) {
41 return 0;
42 }
43 Fuzz fuzz(data, size);
44 FuzzRegionSetPath(&fuzz);
45 return 0;
46}
47#endif
void FuzzNicePath(Fuzz *fuzz, SkPath *path, int maxOps)
void FuzzRegionSetPath(Fuzz *fuzz)
Definition Fuzz.h:24
void next(T *t)
Definition Fuzz.h:64
bool contains(int32_t x, int32_t y) const
Definition SkRegion.cpp:364
bool isComplex() const
Definition SkRegion.h:158
int computeRegionComplexity() const
Definition SkRegion.cpp:176
bool setPath(const SkPath &path, const SkRegion &clip)
int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)