1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- // 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_MUTATOR_H_
- #define TOOLS_IPC_FUZZER_MUTATE_MUTATOR_H_
- #include <stddef.h>
- #include <stdint.h>
- #include <string>
- #include "tools/ipc_fuzzer/fuzzer/fuzzer.h"
- namespace ipc_fuzzer {
- class Mutator : public Fuzzer {
- public:
- explicit Mutator(unsigned int frequency) : frequency_(frequency) {}
- virtual ~Mutator() {}
- 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;
- private:
- // TODO(mbarbella): Use double frequencies.
- unsigned int frequency_;
- };
- } // namespace ipc_fuzzer
- #endif // TOOLS_IPC_FUZZER_MUTATE_MUTATOR_H_
|