# [PATCH] Do not ignore errors during make check

4 messages from 2005-12-14 to 2005-12-14. Participants: Amos Waterland, Junio C Hamano, Linus Torvalds.
Thread: https://gitlist.dev/t/2837

## Amos Waterland, 2005-12-14 21:09

Subject: [PATCH] Do not ignore errors during make check
Message-ID: <20051214210932.GA2642@kvasir.watson.ibm.com>
URL: https://gitlist.dev/e/20051214210932.GA2642%40kvasir.watson.ibm.com

```
Do not let errors pass by unnoticed when running `make check'.

Signed-off-by: Amos Waterland <apw@us.ibm.com>

---

 Makefile |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

20898ba8a3c6f78bb136626fddc34221df427116
diff --git a/Makefile b/Makefile
index 01b6643..3f62bcb 100644
--- a/Makefile
+++ b/Makefile
@@ -449,7 +449,7 @@ test-delta$X: test-delta.c diff-delta.o 
 	$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $^
 
 check:
-	for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i; done
+	for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i || break; done
 
 
 
-- 
0.99.9.GIT

```

## Junio C Hamano, 2005-12-14 21:30

Subject: Re: [PATCH] Do not ignore errors during make check
Message-ID: <7v1x0fxt7b.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v1x0fxt7b.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <20051214210932.GA2642@kvasir.watson.ibm.com>

```
Amos Waterland <apw@us.ibm.com> writes:

> Do not let errors pass by unnoticed when running `make check'.
> ...
>  check:
> -	for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i; done
> +	for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i || break; done

Good point but "|| exit" would be more appropriate.  With the
above patch, I suspect "make check" merely stops at the first
error but resulting return code would still be zero, wouldn't
it?

$ cat Makefile
check1:
	for i in 1 2 3 4; do echo testing $$i; test $$i -le 2 || break; done

check2:
	for i in 1 2 3 4; do echo testing $$i; test $$i -le 2 || exit; done
$ make check1
for i in 1 2 3 4; do echo testing $i; test $i -le 2 || break; done
testing 1
testing 2
testing 3
$ make check2
for i in 1 2 3 4; do echo testing $i; test $i -le 2 || exit; done
testing 1
testing 2
testing 3
make: *** [check2] Error 1
$ exit

```

## Amos Waterland, 2005-12-14 21:44

Subject: Re: [PATCH] Do not ignore errors during make check
Message-ID: <20051214214424.GA3730@kvasir.watson.ibm.com>
URL: https://gitlist.dev/e/20051214214424.GA3730%40kvasir.watson.ibm.com
In-Reply-To: <7v1x0fxt7b.fsf@assigned-by-dhcp.cox.net>

```
On Wed, Dec 14, 2005 at 01:30:16PM -0800, Junio C Hamano wrote:
> Good point but "|| exit" would be more appropriate.  With the
> above patch, I suspect "make check" merely stops at the first
> error but resulting return code would still be zero, wouldn't
> it?

Yes, here is a patch that uses exit instead of break.

---

Do not let errors pass by unnoticed when running `make check'.

Signed-off-by: Amos Waterland <apw@us.ibm.com>

---

 Makefile |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

bc721e2d99487c0240514a848ac1cb84c086e008
diff --git a/Makefile b/Makefile
index 01b6643..d494ad4 100644
--- a/Makefile
+++ b/Makefile
@@ -449,7 +449,7 @@ test-delta$X: test-delta.c diff-delta.o 
 	$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $^
 
 check:
-	for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i; done
+	for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i || exit; done
 
 
 
-- 
0.99.9.GIT

```

## Linus Torvalds, 2005-12-14 23:38

Subject: Re: [PATCH] Do not ignore errors during make check
Message-ID: <Pine.LNX.4.64.0512141535130.3292@g5.osdl.org>
URL: https://gitlist.dev/e/Pine.LNX.4.64.0512141535130.3292%40g5.osdl.org
In-Reply-To: <20051214210932.GA2642@kvasir.watson.ibm.com>

```


On Wed, 14 Dec 2005, Amos Waterland wrote:
>
>  check:
> -	for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i; done
> +	for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i || break; done

Actually, you might be better off with just

	sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) *.c

these days. It will cause some interesting warnings (it actually 
cross-checks things, and is unhappy about multiple "main()" declarations 
with different types ;), but especially with eventual libification it 
might even be a good idea to try to avoid global functions with the same 
names in different programs ("main", of course, is special, sparse is 
just too stupid to know).

		Linus

```
