blob: 2e1e6a0e556f61017a6a5f114ec5298822102e14 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef TOOLS_IPC_FUZZER_MUTATE_GENERATOR_H_
#define TOOLS_IPC_FUZZER_MUTATE_GENERATOR_H_
#include <stddef.h>
#include <stdint.h>
#include <string>
#include "tools/ipc_fuzzer/fuzzer/fuzzer.h"
namespace ipc_fuzzer {
class Generator : public Fuzzer {
public:
Generator() {}
virtual ~Generator() {}
void FuzzBool(bool* value) override;
void FuzzInt(int* value) override;
void FuzzLong(long* value) override;
void FuzzSize(size_t* value) override;
void FuzzUChar(unsigned char* value) override;
void FuzzWChar(wchar_t* value) override;
void FuzzUInt16(uint16_t* value) override;
void FuzzUInt32(uint32_t* value) override;
void FuzzInt64(int64_t* value) override;
void FuzzUInt64(uint64_t* value) override;
void FuzzFloat(float* value) override;
void FuzzDouble(double* value) override;
void FuzzString(std::string* value) override;
void FuzzString16(base::string16* value) override;
void FuzzData(char* data, int length) override;
void FuzzBytes(void* data, int data_len) override;
bool ShouldGenerate() override;
};
} // namespace ipc_fuzzer
#endif // TOOLS_IPC_FUZZER_MUTATE_GENERATOR_H_