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

Re: [PATCH] t1410: fix breakage on case-insensitive filesystems

From
Jeff King <peff@peff.net>
Date
Nov 10, 2014, 07:04 UTC
Message-ID
<20141110070459.GC7677@peff.net>
In-Reply-To
<CAPc5daUrUZ135sbSuZn6DXmN_momR6KxNyN9cNdTbzwbD6Uu0A@mail.gmail.com>
On Sun, Nov 09, 2014 at 10:47:52PM -0800, Junio C Hamano wrote:
Show 14 quoted lines
> On Sun, Nov 9, 2014 at 10:30 PM, Jeff King <peff@peff.net> wrote:
> >
> > I know you "make test" before pushing out the results of any integration
> > you do. And I recall that for a while (and maybe still?) you even did so
> > on VMs of a few common platforms. OS X is notoriously irritating to run
> > in a VM, but would you be interested in a network-accessible install
> > that you could push to and "make test" on as part of your routine?
> >
> > If what Michael is offering cannot do that, I am sure I can get GitHub
> > to set something up.
> 
> Even if it were network-accessible, the latency for doing an integration
> cycle and pushing there and waiting for the tests to come back may
> make it impractical to use it as "part of pre-pushout test".

I had the impression you were already doing "for i in my_vms; do git push $i && ssh $i make test; done", so in theory this could be done in parallel. But yeah, I definitely wouldn't want to add latency to your workflow.

Show 5 quoted lines
> But I would think that the project certainly would benefit if a
> post-receive hook at Github did an automated test on the tip of
> 'pu' and bisected a breakage, if found, to pinpoint the patch
> that breaks. It could even send a notice to the author of the
> non-portable patch ;-).

Yeah, you're right. Testing on "pu" is probably enough. Coupled with automated bisection, the "pinpointing" part is not that important, and pu is often "early enough" to catch problems before people try to build on top of them. So I think if Michael is still willing to set up his build box, just pulling and building your "pu" automatically would be a good start.

GitHub supports trigger hooks on pushes, but I do not think that is even necessary here. Just polling once or twice a day would probably give us good enough turn-around time.

I think somebody just needs to write the auto-bisect script. I suspect the simplest form is something like:

  # fetch a new version; exit early if we already checked this one
  git fetch
  test "$(git rev-parse pu-ok)" = "$(git rev-parse origin/pu)" &&exit 0
  git reset --hard origin/pu
  # quick path: all tests succeed
  if make test; then
    git tag -f pu-ok HEAD
    exit 0
  fi
  # slow path: bisect the actual commit. We do not need worry about
  # cutting each bisection step down to the minimal size (e.g., finding
  # the actual failing test), because this should run only infrequently.
  git bisect start HEAD pu-ok
  git bisect run make test

The real work would be in wrapping it up in a cron-job or similar so that it produces no output on success, and sends an email (or whatever) with the bisect results when it fails.

-Peff
Previous: Junio C HamanoNext: Torsten Bögershausen
Message 8 of 26 in “Test failure”
  1. Michael BlumeNov 8, 2014
  2. Jeff KingNov 9, 2014
  3. t1410: fix breakage on case-insensitive filesystemsJeff King, Nov 9, 2014
  4. Michael BlumeNov 9, 2014
  5. Junio C HamanoNov 9, 2014
  6. Jeff KingNov 10, 2014
  7. Junio C HamanoNov 10, 2014
  8. Jeff KingNov 10, 2014
  9. Torsten BögershausenNov 9, 2014
  10. Michael BlumeNov 9, 2014
  11. Torsten BögershausenNov 9, 2014
  12. Michael BlumeNov 10, 2014
  13. Junio C HamanoNov 10, 2014
  14. Jeff KingNov 10, 2014
  15. Johannes SixtNov 12, 2014
  16. Jeff KingNov 12, 2014
  17. Johannes SixtNov 13, 2014
  18. Jeff KingNov 13, 2014
  19. Junio C HamanoNov 13, 2014
  20. Johannes SixtNov 14, 2014
  21. Jeff KingNov 14, 2014
  22. Junio C HamanoNov 14, 2014
  23. Andreas SchwabNov 14, 2014
  24. Johannes SixtNov 15, 2014
  25. Windows: correct detection of EISDIR in mingw_open()Johannes Sixt, Nov 16, 2014
  26. Michael BlumeNov 9, 2014

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.