##// END OF EJS Templates
tests: finally fix up test-fuzz-targets.t...
tests: finally fix up test-fuzz-targets.t It's been failing on my workstation for a while, since I have a new enough LLVM that I had the fuzzer goo, but not so new that I actually had FuzzedDataProvider. This is a better solution all around in my opinion. I _believe_ this should let us run these tests on most systems, even those using GCC instead of clang. That said, my one attempt to test this on my macOS laptop failed miserably, and I don't feel like doing more work on this right now. Differential Revision: https://phab.mercurial-scm.org/D7566

File last commit:

r41874:e1643a04 default
r44267:19da643d default
Show More
test-sqlitestore.t
114 lines | 2.6 KiB | text/troff | Tads3Lexer
#require sqlite
$ cat >> $HGRCPATH <<EOF
> [extensions]
> sqlitestore =
> EOF
New repo should not use SQLite by default
$ hg init empty-no-sqlite
$ cat empty-no-sqlite/.hg/requires
dotencode
fncache
generaldelta
revlogv1
sparserevlog
store
storage.new-repo-backend=sqlite is recognized
$ hg --config storage.new-repo-backend=sqlite init empty-sqlite
$ cat empty-sqlite/.hg/requires
dotencode
exp-sqlite-001
exp-sqlite-comp-001=zstd (zstd !)
exp-sqlite-comp-001=$BUNDLE2_COMPRESSIONS$ (no-zstd !)
fncache
generaldelta
revlogv1
sparserevlog
store
$ cat >> $HGRCPATH << EOF
> [storage]
> new-repo-backend = sqlite
> EOF
Can force compression to zlib
$ hg --config storage.sqlite.compression=zlib init empty-zlib
$ cat empty-zlib/.hg/requires
dotencode
exp-sqlite-001
exp-sqlite-comp-001=$BUNDLE2_COMPRESSIONS$
fncache
generaldelta
revlogv1
sparserevlog
store
Can force compression to none
$ hg --config storage.sqlite.compression=none init empty-none
$ cat empty-none/.hg/requires
dotencode
exp-sqlite-001
exp-sqlite-comp-001=none
fncache
generaldelta
revlogv1
sparserevlog
store
Can make a local commit
$ hg init local-commit
$ cd local-commit
$ echo 0 > foo
$ hg commit -A -m initial
adding foo
That results in a row being inserted into various tables
$ sqlite3 .hg/store/db.sqlite -init /dev/null << EOF
> SELECT * FROM filepath;
> EOF
1|foo
$ sqlite3 .hg/store/db.sqlite -init /dev/null << EOF
> SELECT * FROM fileindex;
> EOF
1|1|0|-1|-1|0|0|1||6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe (esc)
$ sqlite3 .hg/store/db.sqlite -init /dev/null << EOF
> SELECT * FROM delta;
> EOF
1|1| \xd2\xaf\x8d\xd2"\x01\xdd\x8dH\xe5\xdc\xfc\xae\xd2\x81\xff\x94"\xc7|0 (esc)
Tracking multiple files works
$ echo 1 > bar
$ hg commit -A -m 'add bar'
adding bar
$ sqlite3 .hg/store/db.sqlite -init /dev/null << EOF
> SELECT * FROM filedata ORDER BY id ASC;
> EOF
1|1|foo|0|6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe|-1|-1|0|0|1| (esc)
2|2|bar|0|\xb8\xe0/d3s\x80!\xa0e\xf9Au\xc7\xcd#\xdb_\x05\xbe|-1|-1|1|0|2| (esc)
Multiple revisions of a file works
$ echo a >> foo
$ hg commit -m 'modify foo'
$ sqlite3 .hg/store/db.sqlite -init /dev/null << EOF
> SELECT * FROM filedata ORDER BY id ASC;
> EOF
1|1|foo|0|6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe|-1|-1|0|0|1| (esc)
2|2|bar|0|\xb8\xe0/d3s\x80!\xa0e\xf9Au\xc7\xcd#\xdb_\x05\xbe|-1|-1|1|0|2| (esc)
3|1|foo|1|\xdd\xb3V\xcd\xde1p@\xf7\x8e\x90\xb8*\x8b,\xe9\x0e\xd6j+|0|-1|2|0|3|1 (esc)
$ cd ..