List for cgit developers and users
 help / color / mirror / Atom feed
* [PATCH 1/2] tests: introduce strip_header() helper function
@ 2013-05-18 17:46 john
  2013-05-18 17:46 ` [PATCH 2/2] cache.c: cache ls_cache output properly john
  2013-05-18 17:47 ` [PATCH 1/2] tests: introduce strip_header() helper function john
  0 siblings, 2 replies; 5+ messages in thread
From: john @ 2013-05-18 17:46 UTC (permalink / raw)


This means that we can avoid hardcoding the number of headers we expect
CGit to generate in test cases and simply remove whatever headers happen
to by there when we are checking body content.

Signed-off-by: John Keeping <john at keeping.me.uk>
---
This was previously sent with a different command message and
justification[1] but wasn't picked up.  I still think this is a useful
function to have in the test suite and it's used by patch 2/2 here.

 tests/setup.sh          | 8 ++++++++
 tests/t0107-snapshot.sh | 4 ++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/tests/setup.sh b/tests/setup.sh
index a573444..1d8677a 100755
--- a/tests/setup.sh
+++ b/tests/setup.sh
@@ -98,4 +98,12 @@ cgit_url()
 	CGIT_CONFIG="$PWD/cgitrc" QUERY_STRING="url=$1" cgit
 }
 
+strip_headers () {
+	while read -r line
+	do
+		test -z "$line" && break
+	done
+	cat
+}
+
 test -z "$CGIT_TEST_NO_CREATE_REPOS" && setup_repos
diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh
index 053062c..6cf7aaa 100755
--- a/tests/t0107-snapshot.sh
+++ b/tests/t0107-snapshot.sh
@@ -16,7 +16,7 @@ test_expect_success 'check html headers' '
 '
 
 test_expect_success 'strip off the header lines' '
-	tail -n +6 tmp > master.tar.gz
+	strip_headers <tmp >master.tar.gz
 '
 
 test_expect_success 'verify gzip format' '
@@ -51,7 +51,7 @@ test_expect_success 'check HTML headers (zip)' '
 '
 
 test_expect_success 'strip off the header lines (zip)' '
-	tail -n +6 tmp >master.zip
+	strip_headers <tmp >master.zip
 '
 
 if test -n "$(which unzip 2>/dev/null)"; then
-- 
1.8.3.rc2.285.gfc18c2c



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/2] cache.c: cache ls_cache output properly
  2013-05-18 17:46 [PATCH 1/2] tests: introduce strip_header() helper function john
@ 2013-05-18 17:46 ` john
  2013-05-22 10:50   ` Jason
  2013-05-18 17:47 ` [PATCH 1/2] tests: introduce strip_header() helper function john
  1 sibling, 1 reply; 5+ messages in thread
From: john @ 2013-05-18 17:46 UTC (permalink / raw)


By using the standard library's printf, cache_ls does not redirect its
output to the cache when we change the process' stdout file descriptor
to point to the cache file.  Fix this by using "htmlf" in the same way
that we do for writing HTTP headers.

Signed-off-by: John Keeping <john at keeping.me.uk>
---
 cache.c                       | 13 +++++++------
 tests/t0020-validate-cache.sh |  8 +++++++-
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/cache.c b/cache.c
index c1d777b..265d392 100644
--- a/cache.c
+++ b/cache.c
@@ -15,6 +15,7 @@
 
 #include "cgit.h"
 #include "cache.h"
+#include "html.h"
 
 #define CACHE_BUFSIZE (1024 * 4)
 
@@ -398,12 +399,12 @@ int cache_ls(const char *path)
 				  fullname.buf, strerror(err), err);
 			continue;
 		}
-		printf("%s %s %10"PRIuMAX" %s\n",
-		       fullname.buf,
-		       sprintftime("%Y-%m-%d %H:%M:%S",
-				   slot.cache_st.st_mtime),
-		       (uintmax_t)slot.cache_st.st_size,
-		       slot.buf);
+		htmlf("%s %s %10"PRIuMAX" %s\n",
+		      fullname.buf,
+		      sprintftime("%Y-%m-%d %H:%M:%S",
+				  slot.cache_st.st_mtime),
+		      (uintmax_t)slot.cache_st.st_size,
+		      slot.buf);
 		close_slot(&slot);
 	}
 	slot.cache_name = strbuf_detach(&fullname, NULL);
diff --git a/tests/t0020-validate-cache.sh b/tests/t0020-validate-cache.sh
index 7e7379a..657765d 100755
--- a/tests/t0020-validate-cache.sh
+++ b/tests/t0020-validate-cache.sh
@@ -66,7 +66,13 @@ test_expect_success 'verify cache-size=1021' '
 	cgit_url "bar/diff" &&
 	cgit_url "bar/patch" &&
 	ls cache >output &&
-	test_line_count = 13 output
+	test_line_count = 13 output &&
+	cgit_url "foo/ls_cache" >output.full &&
+	strip_headers <output.full >output &&
+	test_line_count = 13 output &&
+	# Check that ls_cache output is cached correctly
+	cgit_url "foo/ls_cache" >output.second &&
+	test_cmp output.full output.second
 '
 
 test_done
-- 
1.8.3.rc2.285.gfc18c2c



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] tests: introduce strip_header() helper function
  2013-05-18 17:46 [PATCH 1/2] tests: introduce strip_header() helper function john
  2013-05-18 17:46 ` [PATCH 2/2] cache.c: cache ls_cache output properly john
@ 2013-05-18 17:47 ` john
  2013-05-22 10:49   ` Jason
  1 sibling, 1 reply; 5+ messages in thread
From: john @ 2013-05-18 17:47 UTC (permalink / raw)


On Sat, May 18, 2013 at 06:46:38PM +0100, John Keeping wrote:
> This means that we can avoid hardcoding the number of headers we expect
> CGit to generate in test cases and simply remove whatever headers happen
> to by there when we are checking body content.
> 
> Signed-off-by: John Keeping <john at keeping.me.uk>
> ---
> This was previously sent with a different command message and
> justification[1] but wasn't picked up.  I still think this is a useful
> function to have in the test suite and it's used by patch 2/2 here.

Should have included the reference here...

[1] http://article.gmane.org/gmane.comp.version-control.cgit/1349

>  tests/setup.sh          | 8 ++++++++
>  tests/t0107-snapshot.sh | 4 ++--
>  2 files changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/setup.sh b/tests/setup.sh
> index a573444..1d8677a 100755
> --- a/tests/setup.sh
> +++ b/tests/setup.sh
> @@ -98,4 +98,12 @@ cgit_url()
>  	CGIT_CONFIG="$PWD/cgitrc" QUERY_STRING="url=$1" cgit
>  }
>  
> +strip_headers () {
> +	while read -r line
> +	do
> +		test -z "$line" && break
> +	done
> +	cat
> +}
> +
>  test -z "$CGIT_TEST_NO_CREATE_REPOS" && setup_repos
> diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh
> index 053062c..6cf7aaa 100755
> --- a/tests/t0107-snapshot.sh
> +++ b/tests/t0107-snapshot.sh
> @@ -16,7 +16,7 @@ test_expect_success 'check html headers' '
>  '
>  
>  test_expect_success 'strip off the header lines' '
> -	tail -n +6 tmp > master.tar.gz
> +	strip_headers <tmp >master.tar.gz
>  '
>  
>  test_expect_success 'verify gzip format' '
> @@ -51,7 +51,7 @@ test_expect_success 'check HTML headers (zip)' '
>  '
>  
>  test_expect_success 'strip off the header lines (zip)' '
> -	tail -n +6 tmp >master.zip
> +	strip_headers <tmp >master.zip
>  '
>  
>  if test -n "$(which unzip 2>/dev/null)"; then
> -- 
> 1.8.3.rc2.285.gfc18c2c
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] tests: introduce strip_header() helper function
  2013-05-18 17:47 ` [PATCH 1/2] tests: introduce strip_header() helper function john
@ 2013-05-22 10:49   ` Jason
  0 siblings, 0 replies; 5+ messages in thread
From: Jason @ 2013-05-22 10:49 UTC (permalink / raw)


This is indeed very helpful. Merged to wip.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/2] cache.c: cache ls_cache output properly
  2013-05-18 17:46 ` [PATCH 2/2] cache.c: cache ls_cache output properly john
@ 2013-05-22 10:50   ` Jason
  0 siblings, 0 replies; 5+ messages in thread
From: Jason @ 2013-05-22 10:50 UTC (permalink / raw)


Good catch, and thanks for amending the test case. Merged to wip.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-05-22 10:50 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-05-18 17:46 [PATCH 1/2] tests: introduce strip_header() helper function john
2013-05-18 17:46 ` [PATCH 2/2] cache.c: cache ls_cache output properly john
2013-05-22 10:50   ` Jason
2013-05-18 17:47 ` [PATCH 1/2] tests: introduce strip_header() helper function john
2013-05-22 10:49   ` Jason

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).