contrib: add some basic scaffolding for some fuzz test targets
I'd like to get the majority of our C code covered by automated fuzz
testing. I've started with bdiff because it was already decoupled from
libpython and therefore was fairly quick to produce a working
fuzzer. The code here is a little odd because I've been having trouble
convincing libfuzzer to define a main and I threw in the towel.
This code will also work with github.com/google/oss-fuzz, and once it
lands in our main repo I intend to enable automated fuzzing in
oss-fuzz with reports going to our security alias.
Differential Revision: https://phab.mercurial-scm.org/D1875
$ cat >> $HGRCPATH <<EOF
> [extensions]
> convert=
> EOF
Prepare orig repo
$ hg init orig
$ cd orig
$ echo foo > foo
$ HGUSER='user name' hg ci -qAm 'foo'
$ cd ..
Explicit --authors
$ cat > authormap.txt <<EOF
> user name = Long User Name
>
> # comment
> this line is ignored
> EOF
$ hg convert --authors authormap.txt orig new
initializing destination new repository
ignoring bad line in author map file authormap.txt: this line is ignored
scanning source...
sorting...
converting...
0 foo
writing author map file $TESTTMP/new/.hg/authormap
$ cat new/.hg/authormap
user name=Long User Name
$ hg -Rnew log
changeset: 0:d89716e88087
tag: tip
user: Long User Name
date: Thu Jan 01 00:00:00 1970 +0000
summary: foo
$ rm -rf new
Implicit .hg/authormap
$ hg init new
$ mv authormap.txt new/.hg/authormap
$ hg convert orig new
ignoring bad line in author map file $TESTTMP/new/.hg/authormap: this line is ignored
scanning source...
sorting...
converting...
0 foo
$ hg -Rnew log
changeset: 0:d89716e88087
tag: tip
user: Long User Name
date: Thu Jan 01 00:00:00 1970 +0000
summary: foo