# HG changeset patch # User Gregory Szorc # Date 1538157620 25200 # Node ID 215fd73cfe526c9c0ef070bcf203fd20074ee3f7 # Parent 8af835af0a8572714ce4439ca5c808871176b4f3 testing: add more testing for ifileindex.lookup() The tests demonstrate some... questionable behavior of revlog.lookup(). Differential Revision: https://phab.mercurial-scm.org/D4796 diff -r 8af835af0a85 -r 215fd73cfe52 mercurial/testing/storage.py --- a/mercurial/testing/storage.py Fri Sep 28 10:20:37 2018 -0700 +++ b/mercurial/testing/storage.py Fri Sep 28 11:00:20 2018 -0700 @@ -90,6 +90,30 @@ with self.assertRaises(error.LookupError): f.lookup(b'%d' % nullrev) + with self.assertRaises(error.LookupError): + f.lookup(b'badvalue') + + self.assertEqual(f.lookup(hex(nullid)[0:12]), nullid) + + with self.assertRaises(error.LookupError): + f.lookup(b'-2') + + # TODO this is wonky. + self.assertEqual(f.lookup(b'0'), nullid) + + with self.assertRaises(error.LookupError): + f.lookup(b'1') + + with self.assertRaises(error.LookupError): + f.lookup(b'11111111111111111111111111111111111111') + + for i in range(-5, 5): + if i == nullrev: + continue + + with self.assertRaises(LookupError): + f.lookup(i) + self.assertEqual(f.linkrev(nullrev), nullrev) for i in range(-5, 5): @@ -170,8 +194,22 @@ self.assertEqual(f.lookup(node), node) self.assertEqual(f.lookup(0), node) + self.assertEqual(f.lookup(-1), nullid) self.assertEqual(f.lookup(b'0'), node) self.assertEqual(f.lookup(hex(node)), node) + self.assertEqual(f.lookup(hex(node)[0:12]), node) + + with self.assertRaises(IndexError): + f.lookup(-2) + + with self.assertRaises(error.LookupError): + f.lookup(b'-2') + + with self.assertRaises(IndexError): + f.lookup(1) + + with self.assertRaises(error.LookupError): + f.lookup(b'1') self.assertEqual(f.linkrev(0), 0)