author | Augie Fackler <augie@google.com> |
Sat, 28 Apr 2018 22:18:50 -0400 | |
changeset 38173 | fa0ddd5e8fff |
child 38174 | 36d55f90e2a3 |
permissions | -rw-r--r-- |
38173
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
1 |
#ifndef CONTRIB_FUZZ_FUZZUTIL_H |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
2 |
#define CONTRIB_FUZZ_FUZZUTIL_H |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
3 |
#include <iostream> |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
4 |
#include <memory> |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
5 |
#include <optional> |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
6 |
#include <stdint.h> |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
7 |
|
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
8 |
/* set DEBUG to 1 for a few debugging prints, or 2 for a lot */ |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
9 |
#define DEBUG 0 |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
10 |
#define LOG(level) \ |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
11 |
if (level <= DEBUG) \ |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
12 |
std::cout |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
13 |
|
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
14 |
struct two_inputs { |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
15 |
std::unique_ptr<char[]> right; |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
16 |
size_t right_size; |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
17 |
std::unique_ptr<char[]> left; |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
18 |
size_t left_size; |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
19 |
}; |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
20 |
|
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
21 |
/* Split a non-zero-length input into two inputs. */ |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
22 |
std::optional<two_inputs> SplitInputs(const uint8_t *Data, size_t Size); |
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
23 |
|
fa0ddd5e8fff
fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
24 |
#endif /* CONTRIB_FUZZ_FUZZUTIL_H */ |