blob: 3b4b8c7d4585393d84bb8b9a3ca878111f975db9 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <stddef.h>
#include <stdint.h>
#include <string>
#include <vector>
#include "gtest/gtest.h"
#include "src/lib/files/directory.h"
#include "src/lib/files/file.h"
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
TEST(FuzzerTest, EmptyInput) {
EXPECT_EQ(0, LLVMFuzzerTestOneInput(nullptr, 0));
}
// TODO(aarongreen): Placeholder for now, until we figure out how we want to
// plumb the corpora from CIPD through to images built for test in CQ.
const char *kCorpusDir = "data/corpus";
TEST(FuzzerTest, WithCorpus) {
if (!files::IsDirectory(kCorpusDir)) {
return;
}
std::vector<std::string> inputs;
std::vector<uint8_t> data;
ASSERT_TRUE(files::ReadDirContents(kCorpusDir, &inputs));
for (auto input : inputs) {
ASSERT_TRUE(files::ReadFileToVector(input, &data));
EXPECT_EQ(0, LLVMFuzzerTestOneInput(&data[0], data.size()));
}
}