git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/3] t: add t0016-oidmap.sh

From
SZEDER Gábor <szeder.dev@gmail.com>
Date
Jun 13, 2019, 17:52 UTC
Message-ID
<20190613175236.GF31952@szeder.dev>
In-Reply-To
<20190613171913.GA14055@sigill.intra.peff.net>
On Thu, Jun 13, 2019 at 01:19:13PM -0400, Jeff King wrote:
Show 33 quoted lines
> On Sun, Jun 09, 2019 at 11:22:59AM +0200, SZEDER Gábor wrote:
> 
> > So, 'test oidmap' from the previous patch prints the value we want to
> > check with:
> > 
> >     printf("%u\n", sha1hash(oid.hash));
> > 
> > First, since object ids inherently make more sense as hex values, it
> > would be more appropriate to print that hash with the '%x' format
> > specifier, and then we wouldn't need Perl's hex() anymore, and thus
> > could swap the order of the first four bytes in oidmap's hash without
> > relying on Perl, e.g. with:
> > 
> >   sed -e 's/^\(..\)\(..\)\(..\)\(..\).*/\4\3\2\1/'
> > 
> > Second, and more importantly, the need for swapping the byte order
> > indicates that this test would fail on big-endian systems, I'm afraid.
> > So I think we need an additional bswap32() on the printing side, and
> > then could further simplify 'test_oidhash':
> 
> I agree with all your points about using hex and pushing the logic into
> test-oidmap.c. BUT.
> 
> At the point where we are normalizing byte order of the hashes, I have
> to wonder: why do we care about testing the hash value in the first
> place? We care that oidmap can store and retrieve values, and that it
> performs well. But as long as it does those things, I don't think
> anybody cares if it uses the first 4 bytes of the sha1 or the last 4.
> 
> I know there are testing philosophies that go to this level of
> white-box testing, but I don't think we usually do in Git. A unit
> test of oidmap's externally visible behavior seems like the right
> level to me.

That's a good point... but then why does 't0011-hashmap.sh' do it in the first place? As far as I understood this t0016 mainly follows suit of t0011.

Previous: Jeff KingNext: Jeff King
Message 10 of 14 in “Test oidmap”
  1. 0/3 Test oidmapChristian Couder, Jun 9, 2019
  2. 1/3 t/helper: add test-oidmap.cChristian Couder, Jun 9, 2019
  3. 2/3 t: add t0016-oidmap.shChristian Couder, Jun 9, 2019
  4. SZEDER GáborJun 9, 2019
  5. Christian CouderJun 9, 2019
  6. SZEDER GáborJun 9, 2019
  7. Christian CouderJun 9, 2019
  8. Junio C HamanoJun 10, 2019
  9. Jeff KingJun 13, 2019
  10. SZEDER GáborJun 13, 2019
  11. Jeff KingJun 13, 2019
  12. Junio C HamanoJun 13, 2019
  13. Christian CouderJun 14, 2019
  14. 3/3 oidmap: use sha1hash() instead of static hash() functionChristian Couder, Jun 9, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.