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

Re: [PATCH 0/5] test-lib: filesystem prerequisites

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 26, 2012, 18:16 UTC
Message-ID
<7vtxwu75gy.fsf@alter.siamese.dyndns.org>
In-Reply-To
<cover.1343309173.git.git@drmicha.warpmail.net>
Michael J Gruber <git@drmicha.warpmail.net> writes:
Show 9 quoted lines
> This mini series provides and makes use of test prerequisites for
> case insensitivity, symlinks and unicode conversion.
>
> SYMLINKS existed before but was not used in t0050.
> CASE_INSENSITIVE_FS was defined in t0003 rather than test-lib (and redone in
> t0050).
> UTF8_NFD_TO_NFC did not exist but was redone in two ways in two tests.
>
> After this series, all 3 are defined in test-lib and used in the various tests.

Consolidating the logic to set necessary prerequisites used in various scripts is very good, but I am not sure adding them to test-lib and run them unconditionally is a good idea. SYMLINKS is used by 47 among 595 tests, which is common enough, but the new ones are not common enough. I do not think we want to create a temporary "junk" dir, two temporary "camelcase" files, read and compare them, when nobody in the script cares.

We do not have to split them into separate include files, though, in order to avoid such waste. Instead, you can make the logic to set prerequisite conditional inside test-lib.sh and update the users.

Something like:
	(in t/test-lib.sh)
	case ",$TEST_WANT_PREREQ," in
	*,CASE_INSENSITIVE_FS,*)
		mkdir junk &&
                echo good >junk/CamelCase &&
                echo bad >junk/camelcase &&
                test "$(cat junk/CamelCase)" == good ||
                test_set_prereq CASE_INSENSITIVE_FS
		rm -fr junk
	esac
	(at the beginning of t/t0003-attributes.sh)
	#!/bin/sh
        test_description=gitattributes
        TEST_WANT_PREREQ=CASE_INSENSITIVE_FS,SYMLINKS
	. ./test-lib.sh
Thanks.
Previous: Michael J GruberNext: Jeff King
Message 4 of 19 in “t3910: give reason for skipping the test”
  1. t3910: give reason for skipping the testMichael J Gruber, Jul 14, 2012
  2. Torsten BögershausenJul 14, 2012
  3. 0/5 test-lib: filesystem prerequisitesMichael J Gruber, Jul 26, 2012
  4. Junio C HamanoJul 26, 2012
  5. Jeff KingJul 26, 2012
  6. Junio C HamanoJul 26, 2012
  7. Michael J GruberJul 27, 2012
  8. Junio C HamanoJul 27, 2012
  9. Michael J GruberJul 30, 2012
  10. 5/5 t3910: use the UTF8_NFD_TO_NFC test prereqMichael J Gruber, Jul 30, 2012
  11. Junio C HamanoJul 30, 2012
  12. Torsten BögershausenAug 4, 2012
  13. Junio C HamanoAug 4, 2012
  14. Michael J GruberAug 6, 2012
  15. 1/5 test-lib: provide case insensitivity as a prerequisiteMichael J Gruber, Jul 26, 2012
  16. 2/5 t0050: use the CASE_INSENSITIVE_FS test prereqMichael J Gruber, Jul 26, 2012
  17. 3/5 t0050: use the SYMLINKS test prereqMichael J Gruber, Jul 26, 2012
  18. 4/5 test-lib: provide UTF8 behaviour as a prerequisiteMichael J Gruber, Jul 26, 2012
  19. 5/5 t3910: use the SYMLINKS test prereqMichael J Gruber, Jul 26, 2012

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.