##// END OF EJS Templates
cache: avoid warming the fnodetags cache after clone...
cache: avoid warming the fnodetags cache after clone That cache can quite expensive to compute on large repository as not that `hg clone` is warming all cache, this can introduces a significant slowdown for clone time[1]. As a stop gap measure introduce a quick fix for that on stable, skipping the fnodetags cache post-clone. [1] https://www.mercurial-scm.org/pipermail/mercurial/2021-April/052679.html Differential Revision: https://phab.mercurial-scm.org/D10695

File last commit:

r44255:7857bd9b default
r47985:8be95673 stable
Show More
bdiff.cc
39 lines | 969 B | 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 "FuzzedDataProvider.h"
extern "C" {
#include "bdiff.h"
extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
{
return 0;
}
int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
{
FuzzedDataProvider provider(Data, Size);
std::string left = provider.ConsumeRandomLengthString(Size);
std::string right = provider.ConsumeRemainingBytesAsString();
struct bdiff_line *a, *b;
int an = bdiff_splitlines(left.c_str(), left.size(), &a);
int bn = bdiff_splitlines(right.c_str(), 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.
}
} // extern "C"