git repos / blockattack-game

blame: source/misc/embedded_libs/fmt-8.1.1/test/fuzzing/main.cc

normal view · raw

f8deb5b9 Poul Sander 2022-01-15 13:55 1
#include <cassert>
f8deb5b9 Poul Sander 2022-01-15 13:55 2
#include <fstream>
f8deb5b9 Poul Sander 2022-01-15 13:55 3
#include <vector>
f8deb5b9 Poul Sander 2022-01-15 13:55 4
f8deb5b9 Poul Sander 2022-01-15 13:55 5
#include "fuzzer-common.h"
f8deb5b9 Poul Sander 2022-01-15 13:55 6
f8deb5b9 Poul Sander 2022-01-15 13:55 7
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size);
f8deb5b9 Poul Sander 2022-01-15 13:55 8
f8deb5b9 Poul Sander 2022-01-15 13:55 9
int main(int argc, char** argv) {
f8deb5b9 Poul Sander 2022-01-15 13:55 10
  for (int i = 1; i < argc; ++i) {
f8deb5b9 Poul Sander 2022-01-15 13:55 11
    std::ifstream in(argv[i]);
f8deb5b9 Poul Sander 2022-01-15 13:55 12
    assert(in);
f8deb5b9 Poul Sander 2022-01-15 13:55 13
    in.seekg(0, std::ios_base::end);
f8deb5b9 Poul Sander 2022-01-15 13:55 14
    const auto size = in.tellg();
f8deb5b9 Poul Sander 2022-01-15 13:55 15
    assert(size >= 0);
f8deb5b9 Poul Sander 2022-01-15 13:55 16
    in.seekg(0, std::ios_base::beg);
f8deb5b9 Poul Sander 2022-01-15 13:55 17
    std::vector<char> buf(static_cast<size_t>(size));
f8deb5b9 Poul Sander 2022-01-15 13:55 18
    in.read(buf.data(), size);
f8deb5b9 Poul Sander 2022-01-15 13:55 19
    assert(in.gcount() == size);
f8deb5b9 Poul Sander 2022-01-15 13:55 20
    LLVMFuzzerTestOneInput(as_bytes(buf.data()), buf.size());
f8deb5b9 Poul Sander 2022-01-15 13:55 21
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 22
}
1970-01-01 00:00 23