threads / patch / 42582

patchlib-httpd.sh: print error.log on error

Subject: [PATCH] lib-httpd.sh: print error.log on error

## tl;dr

6 messages between Jun 16, 2016 and Jun 16, 2016. Diffs are folded; open one to read it.

replies: 5people: 2as markdown or json

Nguyễn Thái Ngọc Duy· Jun 12, 2016, 10:41 UTC · lore

Failure to bring up httpd for testing is not considered an error, so the trash directory, which contains this error.log file, is removed and we don't know what made httpd fail to start. Improve the situation a bit.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 t/lib-httpd.sh | 1 +
 1 file changed, 1 insertion(+)
Show changes to t/lib-httpd.sh +1 −0
diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh
index f9f3e5f..5b8de38 100644
--- a/t/lib-httpd.sh
+++ b/t/lib-httpd.sh
@@ -180,6 +180,7 @@ start_httpd() {
 	if test $? -ne 0
 	then
 		trap 'die' EXIT
+		cat "$HTTPD_ROOT_PATH"/error.log 2>/dev/null
 		test_skip_or_die $GIT_TEST_HTTPD "web server setup failed"
 	fi
 }
-- 
2.8.2.524.g6ff3d78
Jeff King· Jun 12, 2016, 12:59 UTC · re: Nguyễn Thái Ngọc Duy · lore

Re: [PATCH] lib-httpd.sh: print error.log on error

On Sun, Jun 12, 2016 at 05:41:54PM +0700, Nguyễn Thái Ngọc Duy wrote:
Show 20 quoted lines
> Failure to bring up httpd for testing is not considered an error, so the
> trash directory, which contains this error.log file, is removed and we
> don't know what made httpd fail to start. Improve the situation a bit.
> 
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
>  t/lib-httpd.sh | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh
> index f9f3e5f..5b8de38 100644
> --- a/t/lib-httpd.sh
> +++ b/t/lib-httpd.sh
> @@ -180,6 +180,7 @@ start_httpd() {
>  	if test $? -ne 0
>  	then
>  		trap 'die' EXIT
> +		cat "$HTTPD_ROOT_PATH"/error.log 2>/dev/null
>  		test_skip_or_die $GIT_TEST_HTTPD "web server setup failed"
>  	fi

I like the idea of giving more data on error, but I think this will break the TAP output and confuse anything parsing the output of the tests, like prove (I think arbitrary output should have "#" prepended).

Also (or alternatively), it should probably only happen when we are in verbose mode (it's not taken care of for us as usual because tests call start_httpd outside of a test_expect_ block). I think this eliminates the need to deal with the TAP thing (because our usual "-v" output is not TAP-compliant).

-Peff
Duy Nguyen· Jun 13, 2016, 11:40 UTC · re: Jeff King · lore

Re: [PATCH] lib-httpd.sh: print error.log on error

On Sun, Jun 12, 2016 at 08:59:21AM -0400, Jeff King wrote:
Show 32 quoted lines
> On Sun, Jun 12, 2016 at 05:41:54PM +0700, Nguyễn Thái Ngọc Duy wrote:
> 
> > Failure to bring up httpd for testing is not considered an error, so the
> > trash directory, which contains this error.log file, is removed and we
> > don't know what made httpd fail to start. Improve the situation a bit.
> > 
> > Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> > ---
> >  t/lib-httpd.sh | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh
> > index f9f3e5f..5b8de38 100644
> > --- a/t/lib-httpd.sh
> > +++ b/t/lib-httpd.sh
> > @@ -180,6 +180,7 @@ start_httpd() {
> >  	if test $? -ne 0
> >  	then
> >  		trap 'die' EXIT
> > +		cat "$HTTPD_ROOT_PATH"/error.log 2>/dev/null
> >  		test_skip_or_die $GIT_TEST_HTTPD "web server setup failed"
> >  	fi
> 
> I like the idea of giving more data on error, but I think this will
> break the TAP output and confuse anything parsing the output of the
> tests, like prove (I think arbitrary output should have "#" prepended).
> 
> Also (or alternatively), it should probably only happen when we are in
> verbose mode (it's not taken care of for us as usual because tests call
> start_httpd outside of a test_expect_ block). I think this eliminates
> the need to deal with the TAP thing (because our usual "-v" output is
> not TAP-compliant).
I like the verbose route, so here's v2
-- 8< --
Subject: [PATCH v2] lib-httpd.sh: print error.log on error

Failure to bring up httpd for testing is not considered an error, so the trash directory, which contains this error.log file, is removed and we don't know why httpd failed. Improve the situation a bit, print error.log but only in verbose mode.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 t/lib-httpd.sh | 2 ++
 1 file changed, 2 insertions(+)
Show changes to t/lib-httpd.sh +2 −0
diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh
index f9f3e5f..67bc7ad 100644
--- a/t/lib-httpd.sh
+++ b/t/lib-httpd.sh
@@ -180,6 +180,8 @@ start_httpd() {
 	if test $? -ne 0
 	then
 		trap 'die' EXIT
+		test "$verbose" = t && \
+			cat "$HTTPD_ROOT_PATH"/error.log 2>/dev/null
 		test_skip_or_die $GIT_TEST_HTTPD "web server setup failed"
 	fi
 }
-- 
2.8.2.524.g6ff3d78
-- 8< --
Jeff King· Jun 13, 2016, 11:56 UTC · re: Duy Nguyen · lore

Re: [PATCH] lib-httpd.sh: print error.log on error

On Mon, Jun 13, 2016 at 06:40:14PM +0700, Duy Nguyen wrote:
> I like the verbose route, so here's v2
I think this is OK, though...
Show 10 quoted lines
> diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh
> index f9f3e5f..67bc7ad 100644
> --- a/t/lib-httpd.sh
> +++ b/t/lib-httpd.sh
> @@ -180,6 +180,8 @@ start_httpd() {
>  	if test $? -ne 0
>  	then
>  		trap 'die' EXIT
> +		test "$verbose" = t && \
> +			cat "$HTTPD_ROOT_PATH"/error.log 2>/dev/null
I think you can just spell this:
  cat >&4 ...

(I had originally thought that we set up those fds only inside the test_expect blocks, but it is the redirection 2>&4 that we set up there; you can always use fd 4 as necessary).

It does incur a useless "cat" when we are not verbose, but I don't think that's a big deal for the error path like this.

-Peff
Nguyễn Thái Ngọc Duy· Jun 13, 2016, 12:35 UTC · re: Jeff King · lore

[PATCH v3] lib-httpd.sh: print error.log on error

Failure to bring up httpd for testing is not considered an error, so the trash directory, which contains this error.log file, is removed and we don't know what made httpd fail to start. Improve the situation a bit, print error.log but only in verbose mode.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 Redirect stdout to "verbose stderr" instead of testing $verbose.
 t/lib-httpd.sh | 1 +
 1 file changed, 1 insertion(+)
Show changes to t/lib-httpd.sh +1 −0
diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh
index f9f3e5f..ac2cbee 100644
--- a/t/lib-httpd.sh
+++ b/t/lib-httpd.sh
@@ -180,6 +180,7 @@ start_httpd() {
 	if test $? -ne 0
 	then
 		trap 'die' EXIT
+		cat "$HTTPD_ROOT_PATH"/error.log >&4 2>/dev/null
 		test_skip_or_die $GIT_TEST_HTTPD "web server setup failed"
 	fi
 }
-- 
2.8.2.524.g6ff3d78
Jeff King· Jun 13, 2016, 17:08 UTC · re: Nguyễn Thái Ngọc Duy · lore

Re: [PATCH v3] lib-httpd.sh: print error.log on error

On Mon, Jun 13, 2016 at 07:35:09PM +0700, Nguyễn Thái Ngọc Duy wrote:
Show 6 quoted lines
> Failure to bring up httpd for testing is not considered an error, so the
> trash directory, which contains this error.log file, is removed and we
> don't know what made httpd fail to start. Improve the situation a bit,
> print error.log but only in verbose mode.
> 
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Looks good to me. Thanks.
-Peff

← back to recent threads