diff -r b0fbd1792e2d -r fed697fa1734 tests/test-storage.py --- a/tests/test-storage.py Tue Oct 16 15:36:19 2018 +0200 +++ b/tests/test-storage.py Tue Oct 09 08:50:13 2018 -0700 @@ -17,6 +17,16 @@ storage as storagetesting, ) +from hgext import ( + sqlitestore, +) + +try: + from mercurial import zstd + zstd.__version__ +except ImportError: + zstd = None + STATE = { 'lastindex': 0, 'ui': uimod.ui(), @@ -70,5 +80,42 @@ maketransaction, addrawrevision) +def makesqlitefile(self): + path = STATE['vfs'].join(b'db-%d.db' % STATE['lastindex']) + STATE['lastindex'] += 1 + + db = sqlitestore.makedb(path) + + compression = b'zstd' if zstd else b'zlib' + + return sqlitestore.sqlitefilestore(db, b'dummy-path', compression) + +def addrawrevisionsqlite(self, fl, tr, node, p1, p2, linkrev, rawtext=None, + delta=None, censored=False, ellipsis=False, + extstored=False): + flags = 0 + + if censored: + flags |= sqlitestore.FLAG_CENSORED + + if ellipsis | extstored: + raise error.Abort(b'support for ellipsis and extstored flags not ' + b'supported') + + if rawtext is not None: + fl._addrawrevision(node, rawtext, tr, linkrev, p1, p2, flags=flags) + elif delta is not None: + fl._addrawrevision(node, rawtext, tr, linkrev, p1, p2, + storedelta=delta, flags=flags) + else: + raise error.Abort(b'must supply rawtext or delta arguments') + +sqlitefileindextests = storagetesting.makeifileindextests( + makesqlitefile, maketransaction, addrawrevisionsqlite) +sqlitefiledatatests = storagetesting.makeifiledatatests( + makesqlitefile, maketransaction, addrawrevisionsqlite) +sqlitefilemutationtests = storagetesting.makeifilemutationtests( + makesqlitefile, maketransaction, addrawrevisionsqlite) + if __name__ == '__main__': silenttestrunner.main(__name__)