##// END OF EJS Templates
fileset: rewrite andset() to not use mctx.narrow()...
fileset: rewrite andset() to not use mctx.narrow() New code is less efficient than the original, but it helps porting andset() to matcher composition. This will be cleaned up later. This effectively disables the fullmatchctx magic since mctx will never be demoted to the matchctx. The fullmatchctx class will be removed later.

File last commit:

r38191:fa0ddd5e default
r38707:80466fd8 default
Show More
bdiff.cc
44 lines | 1.0 KiB | text/x-c | CppLexer
/*
* bdiff.cc - fuzzer harness for bdiff.c
*
* Copyright 2018, Google Inc.
*
* This software may be used and distributed according to the terms of
* the GNU General Public License, incorporated herein by reference.
*/
#include <memory>
#include <stdlib.h>
#include "fuzzutil.h"
extern "C" {
#include "bdiff.h"
int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
{
auto maybe_inputs = SplitInputs(Data, Size);
if (!maybe_inputs) {
return 0;
}
auto inputs = std::move(maybe_inputs.value());
struct bdiff_line *a, *b;
int an = bdiff_splitlines(inputs.left.get(), inputs.left_size, &a);
int bn = bdiff_splitlines(inputs.right.get(), inputs.right_size, &b);
struct bdiff_hunk l;
bdiff_diff(a, an, b, bn, &l);
free(a);
free(b);
bdiff_freehunks(l.next);
return 0; // Non-zero return values are reserved for future use.
}
#ifdef HG_FUZZER_INCLUDE_MAIN
int main(int argc, char **argv)
{
const char data[] = "asdf";
return LLVMFuzzerTestOneInput((const uint8_t *)data, 4);
}
#endif
} // extern "C"