oss-fuzz/projects/example/my-api-repo/do_stuff_unittest.cpp

32 lines
927 B
C++

// Copyright 2017 Google Inc. All Rights Reserved.
// Licensed under the Apache License, Version 2.0 (the "License");
// Simple unit test for DoStuff().
// This unit test does not cover the existing bug in DoStuff(),
// unless you pass an extra parameter ("BUG").
#include "my_api.h"
#include <cassert>
#include <iostream>
void TestDoStuff(const std::string &str, size_t Expected) {
size_t Result = DoStuff(str);
std::cerr << str << " => " << Result << std::endl;
assert(Result == Expected);
}
int main(int argc, char **argv) {
// Test some simple inputs, verify the output.
TestDoStuff("", 0);
TestDoStuff("foo", 1);
TestDoStuff("omg", 1);
TestDoStuff("bar", 1);
TestDoStuff("ouch", 1);
TestDoStuff("foobar", 3);
TestDoStuff("foouchbar", 4);
if (argc == 2 && std::string(argv[1]) == "BUG") {
// This is the missing test that actually triggers the bug.
TestDoStuff("foouchbaromg", 4);
}
}