--- a/contrib/fuzz/manifest.cc Tue Jan 22 11:41:09 2019 -0500
+++ b/contrib/fuzz/manifest.cc Tue Jan 22 11:41:22 2019 -0500
@@ -20,11 +20,19 @@
lm = lazymanifest(mdata)
# iterate the whole thing, which causes the code to fully parse
# every line in the manifest
- list(lm.iterentries())
+ for e, _, _ in lm.iterentries():
+ # also exercise __getitem__ et al
+ lm[e]
+ e in lm
+ (e + 'nope') in lm
lm[b'xyzzy'] = (b'\0' * 20, 'x')
# do an insert, text should change
assert lm.text() != mdata, "insert should change text and didn't: %r %r" % (lm.text(), mdata)
+ cloned = lm.filtercopy(lambda x: x != 'xyzzy')
+ assert cloned.text() == mdata, 'cloned text should equal mdata'
+ cloned.diff(lm)
del lm[b'xyzzy']
+ cloned.diff(lm)
# should be back to the same
assert lm.text() == mdata, "delete should have restored text but didn't: %r %r" % (lm.text(), mdata)
except Exception as e: