##// END OF EJS Templates
http: allow 'auth.prefix' to have a username consistent with the URI...
http: allow 'auth.prefix' to have a username consistent with the URI It may be a little weird to put a username in the prefix, but the documentation doesn't disallow it, and silently disallowing it has caused confusion[1]. The username must match what is passed in (which seems to be from the URI via a circuitous route), as well as 'auth.username' if it was specified. I thought about printing a warning for a mismatch, but we already don't print a warning if the 'auth.username' and URI username don't match. This change allows the first and second last new test cases to work as expected. It looks like this would have been a problem since at least 0593e8f81c71. [1] https://www.mercurial-scm.org/pipermail/mercurial/2018-November/051069.html

File last commit:

r38191:fa0ddd5e default
r40699:c53f0ead default
Show More
xdiff.cc
58 lines | 1.3 KiB | text/x-c | CppLexer
/*
* xdiff.cc - fuzzer harness for thirdparty/xdiff
*
* 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 "thirdparty/xdiff/xdiff.h"
#include <inttypes.h>
#include <stdlib.h>
#include "fuzzutil.h"
extern "C" {
int hunk_consumer(long a1, long a2, long b1, long b2, void *priv)
{
// TODO: probably also test returning -1 from this when things break?
return 0;
}
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());
mmfile_t a, b;
a.ptr = inputs.left.get();
a.size = inputs.left_size;
b.ptr = inputs.right.get();
b.size = inputs.right_size;
xpparam_t xpp = {
XDF_INDENT_HEURISTIC, /* flags */
};
xdemitconf_t xecfg = {
XDL_EMIT_BDIFFHUNK, /* flags */
hunk_consumer, /* hunk_consume_func */
};
xdemitcb_t ecb = {
NULL, /* priv */
};
xdl_diff(&a, &b, &xpp, &xecfg, &ecb);
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"