Skip to content
  • Jeff King's avatar
    t5313: make extended-table test more deterministic · 7c2115aa
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    Commit a1283866
    
     (t5313: test bounds-checks of
    corrupted/malicious pack/idx files, 2016-02-25) added a test
    that requires our corrupted pack index to have two objects.
    The entry for the first one remains untouched, but we
    corrupt the entry for second one. Since the index stores the
    entries in sha1-sorted order, this means that the test must
    make sure that the sha1 of the object we expect to be
    corrupted ("$object") sorts after the other placeholder
    object.
    
    That commit used the HEAD commit as the placeholder, but the
    script never calls test_tick. That means that the commit
    object (and thus its sha1) depends on the timestamp when the
    test script is run. This usually works in practice, because
    the sha1 of $object starts with "fff". The commit object
    will sort after that only 1 in 4096 times, but when it does
    the test will fail.
    
    One obvious solution is to add the test_tick call to get a
    deterministic commit sha1. But since we're relying on the
    sort order for the test to function, let's make that very
    explicit by just generating a second blob with a known sha1.
    
    Reported-by: default avatarLars Schneider <larsxschneider@gmail.com>
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    7c2115aa