sapling/tests/test-hgsql-lfs-sync.t
Thomas Jacob 0e6b93a0e0 Add support for RocksDB
Summary:
- Add support for RocksDB engine (developed as a drop in replacement for innodb) to hgsql to allow new xdb.hgsql.1-10 shards to host hg repos
- Prefer MySQL test DBs in same region
- Run all hgsql unit tests also for RocksDB engine
- Allow for nested ifs to make that possible (downside if you switch off rockdb tests, innodb tests are run twice)

Reviewed By: quark-zju

Differential Revision: D7014064

fbshipit-source-id: 073c36176aa7eaf74252ef33c3f47da594920b28
2018-04-13 21:51:13 -07:00

90 lines
1.8 KiB
Perl

#testcases case-innodb case-rocksdb
#if case-rocksdb
$ DBENGINE=rocksdb
#else
$ DBENGINE=innodb
#endif
Inital setup
$ . $TESTDIR/require-ext.sh lfs
$ . "$TESTDIR/hgsql/library.sh"
$ initclient client
$ initserver server lfsrepo
$ mkdir -p $TESTTMP/lfs-remote
$ cat >> $HGRCPATH << EOF
> [extensions]
> lfs=
> [lfs]
> url=file://$TESTTMP/lfs-remote
> EOF
$ cd client
$ cat >> .hg/hgrc << EOF
> [lfs]
> threshold=10B
> chunksize=10B
> EOF
Commit some large file stuff
$ echo LONGER-THAN-TEN-BYTES-WILL-TRIGGER-LFS > large
$ echo SHORTER > small
$ hg add . -q
$ hg commit -m 'commit with lfs content'
$ hg mv large l
$ hg mv small s
$ hg commit -m 'renames'
$ echo SHORT > l
$ echo BECOME-LARGER-FROM-SHORTER > s
$ hg commit -m 'large to small, small to large'
$ echo 1 >> l
$ echo 2 >> s
$ hg commit -m 'random modifications'
$ echo RESTORE-TO-BE-LARGE > l
$ echo SHORTER > s
$ hg commit -m 'switch large and small again'
$ hg bookmark @
$ hg push ../server/ -q --trace
lfs: * (glob) (?)
lfs: * (glob) (?)
$ cd ..
Clone the repo from SQL
$ initserver server2 lfsrepo
Verify all repos
$ for r in client server server2; do
> echo repo: $r
> hg --cwd $TESTTMP/$r verify
> done
repo: client
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
4 files, 5 changesets, 10 total revisions
repo: server
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
4 files, 5 changesets, 10 total revisions
repo: server2
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
4 files, 5 changesets, 10 total revisions