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

Re: [PATCH] Add test-string-list.c

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Sep 5, 2010, 05:02 UTC
Message-ID
<20100905050254.GA6134@burratino>
In-Reply-To
<4f798daaf4631e00927b455b77919d5bb8fade03.1283653854.git.tfransosi@gmail.com>
Hi Thiago,
Thiago Farina wrote:
> Add a simple test that demonstrates how to create and manipulate
> a list of strings using the string-list.h API.
Quick thoughts:
> --- /dev/null
> +++ b/test-string-list.c
> @@ -0,0 +1,29 @@
> +#include <stdio.h>
Git programs tend to start with 
 #include "cache.h"
or
 #include "git-compat-util.h"
to get all the portability niceties.
> +	print_string_list(&list, "");
> +
> +        int has_foo = string_list_has_string(&list, "foo");

Whitespace, declaration after statement... (see Documentation/CodingGuidelines).

> +	if (has_foo != 1)
> +		error("List doesn't have foo.");

This does not exit with nonzero status when it fails. You probably wanted

	if (bad things)
		return error("problems!");
> +	string_list_clear(&list, 0);
> +	if (list.nr > 0)
> +		error("List is not clear.");

To make sure this example remains valid, wouldn't you want to include a caller in the t/ directory so it can be automatically run? (See t/README.)

Thoughts separate from the code:
 * it is probably worth mentioning Documentation/technical/api-string-list.txt
   for people who do not know about it.
 * for this to be useful as a test I think one has to sort of believe
   that it can break.  That is, a test of something this basic (which
   is already demonstrated and exercised by code throughout git, after
   all) would tend to be especially devious.
 * api-string-list.txt does not mention the STRING_LIST_INIT macros
   you introduced.  Maybe that would be worth improving.

Regards, Jonathan

Previous: Thiago FarinaNext: Junio C Hamano
Message 2 of 6 in “Add test-string-list.c”
  1. Add test-string-list.cThiago Farina, Sep 5, 2010
  2. Jonathan NiederSep 5, 2010
  3. Junio C HamanoSep 6, 2010
  4. Thiago FarinaSep 6, 2010
  5. Jonathan NiederSep 7, 2010
  6. Thiago FarinaSep 7, 2010

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.