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

Re: [PATCH 4/6] t1419: mark test suite as files-backend specific

From
Patrick Steinhardt <ps@pks.im>
Date
Jan 10, 2024, 07:30 UTC
Message-ID
<ZZ5HrY76O1x8QABG@tanuki>
In-Reply-To
<CAPig+cTAiEFu9p1nRe9LC3mxyPmfQ9m4r7aQUj_9OC8pSbwbig@mail.gmail.com>
On Tue, Jan 09, 2024 at 02:40:50PM -0500, Eric Sunshine wrote:
Show 17 quoted lines
> On Tue, Jan 9, 2024 at 7:17 AM Patrick Steinhardt <ps@pks.im> wrote:
> > With 59c35fac54 (refs/packed-backend.c: implement jump lists to avoid
> > excluded pattern(s), 2023-07-10) we have implemented logic to handle
> > excluded refs more efficiently in the "packed" ref backend. This logic
> > allows us to skip emitting refs completely which we know to not be of
> > any interest to the caller, which can avoid quite some allocaitons and
> > object lookups.
> 
> s/allocaitons/allocations/
> 
> > This was wired up via a new `exclude_patterns` parameter passed to the
> > backend's ref iterator. The backend only needs to handle them on a best
> > effort basis though, and in fact we only handle it for the "packed-refs"
> > file, but not for loose references. Consequentially, all callers must
> > still filter emitted refs with those exclude patterns.
> 
> s/Consequentially/Consequently/

Hum. I had the last time when you mentioned the in mind while writing the commit message, but seemingly misremembered the outcome. So I now looked things up in a dictionary, and both words seem to be used in equivalent ways. As a non-native speaker, could you maybe elaborate a bit to help me out? :)

Show 8 quoted lines
> > The result is that handling exclude patterns is completely optional in
> > the ref backend, and any future backends may or may not implement it.
> > Let's thus mark the test for t1419 to depend on the REFFILES prereq.
> 
> This change seems to be abusing the meaning of the REFFILES
> prerequisite. Instead the above description argues for introduction of
> a new prerequisite which indicates whether or not the backend honors
> the exclude patterns. Or, am I misunderstanding this?

I wouldn't say that this is abuse. We know the logic is only implemented by certain backends, and for the time being the only backend that does is the "files" backend. Furthermore, no test outside of t1419 ever cares for whether the backend knows to handle exclude patterns, so introducing a separate prereq that simply maps to REFFILES doesn't really feel worth it. If we ever implement this behaviour in the "reftable" backend, then we can easily extend the prereq like follows:

```
if ! test_have_prereq REFFILES && ! test_have_prereq REFTABLE
then
       skip_all='skipping `git for-each-ref --exclude` tests; need files backend'
       test_done
fi
```

Now we could of course make the prereq clever and auto-detect whether the ref backend supports excludes. But this has the downside that it could lead to silent failures in case the exclude pattern handling ever breaks because now the prereq would potentially evaluate to "false".

Patrick
Previous: Eric SunshineNext: Junio C Hamano
Message 12 of 54 in “t: mark "files"-backend specific tests”
  1. 0/6 t: mark "files"-backend specific testsPatrick Steinhardt, Jan 9, 2024
  2. 1/6 t1300: mark tests to require default repo formatPatrick Steinhardt, Jan 9, 2024
  3. Taylor BlauJan 9, 2024
  4. Patrick SteinhardtJan 10, 2024
  5. Eric SunshineJan 9, 2024
  6. Patrick SteinhardtJan 10, 2024
  7. 2/6 t1301: mark test for `core.sharedRepository` as reffiles specificPatrick Steinhardt, Jan 9, 2024
  8. 3/6 t1302: make tests more robust with new extensionsPatrick Steinhardt, Jan 9, 2024
  9. Taylor BlauJan 9, 2024
  10. 4/6 t1419: mark test suite as files-backend specificPatrick Steinhardt, Jan 9, 2024
  11. Eric SunshineJan 9, 2024
  12. Patrick SteinhardtJan 10, 2024
  13. Junio C HamanoJan 10, 2024
  14. Patrick SteinhardtJan 11, 2024
  15. 5/6 t5526: break test submodule differentlyPatrick Steinhardt, Jan 9, 2024
  16. Eric SunshineJan 9, 2024
  17. Patrick SteinhardtJan 10, 2024
  18. 6/6 t: mark tests regarding git-pack-refs(1) to be backend specificPatrick Steinhardt, Jan 9, 2024
  19. 0/6 t: mark "files"-backend specific testsPatrick Steinhardt, Jan 10, 2024
  20. 1/6 t1300: make tests more robust with non-default ref backendsPatrick Steinhardt, Jan 10, 2024
  21. Toon ClaesJan 23, 2024
  22. Patrick SteinhardtJan 23, 2024
  23. Justin ToblerJan 23, 2024
  24. Christian CouderJan 23, 2024
  25. Patrick SteinhardtJan 24, 2024
  26. Christian CouderJan 29, 2024
  27. Patrick SteinhardtJan 29, 2024
  28. 2/6 t1301: mark test for `core.sharedRepository` as reffiles specificPatrick Steinhardt, Jan 10, 2024
  29. 3/6 t1302: make tests more robust with new extensionsPatrick Steinhardt, Jan 10, 2024
  30. Toon ClaesJan 23, 2024
  31. Patrick SteinhardtJan 23, 2024
  32. Christian CouderJan 23, 2024
  33. Patrick SteinhardtJan 24, 2024
  34. 4/6 t1419: mark test suite as files-backend specificPatrick Steinhardt, Jan 10, 2024
  35. 5/6 t5526: break test submodule differentlyPatrick Steinhardt, Jan 10, 2024
  36. 6/6 t: mark tests regarding git-pack-refs(1) to be backend specificPatrick Steinhardt, Jan 10, 2024
  37. Christian CouderJan 23, 2024
  38. 0/6 t: mark "files"-backend specific testsPatrick Steinhardt, Jan 24, 2024
  39. 1/6 t1300: make tests more robust with non-default ref backendsPatrick Steinhardt, Jan 24, 2024
  40. 2/6 t1301: mark test for `core.sharedRepository` as reffiles specificPatrick Steinhardt, Jan 24, 2024
  41. 3/6 t1302: make tests more robust with new extensionsPatrick Steinhardt, Jan 24, 2024
  42. 4/6 t1419: mark test suite as files-backend specificPatrick Steinhardt, Jan 24, 2024
  43. 5/6 t5526: break test submodule differentlyPatrick Steinhardt, Jan 24, 2024
  44. 6/6 t: mark tests regarding git-pack-refs(1) to be backend specificPatrick Steinhardt, Jan 24, 2024
  45. 0/6 t: mark "files"-backend specific testsPatrick Steinhardt, Jan 29, 2024
  46. 1/6 t1300: make tests more robust with non-default ref backendsPatrick Steinhardt, Jan 29, 2024
  47. Christian CouderJan 29, 2024
  48. 2/6 t1301: mark test for `core.sharedRepository` as reffiles specificPatrick Steinhardt, Jan 29, 2024
  49. 3/6 t1302: make tests more robust with new extensionsPatrick Steinhardt, Jan 29, 2024
  50. 4/6 t1419: mark test suite as files-backend specificPatrick Steinhardt, Jan 29, 2024
  51. 5/6 t5526: break test submodule differentlyPatrick Steinhardt, Jan 29, 2024
  52. 6/6 t: mark tests regarding git-pack-refs(1) to be backend specificPatrick Steinhardt, Jan 29, 2024
  53. Christian CouderJan 29, 2024
  54. Junio C HamanoJan 29, 2024

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.