Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Aug 2013 18:19:22 GMT
From:      dpl@FreeBSD.org
To:        svn-soc-all@FreeBSD.org
Subject:   socsvn commit: r256630 - soc2013/dpl/head/lib/libzcap/test
Message-ID:  <201308271819.r7RIJM9J051665@socsvn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dpl
Date: Tue Aug 27 18:19:22 2013
New Revision: 256630
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=256630

Log:
  Test is work in progress, but I managed to test most of the gzip related code.
  Now I have to smashed that dam*** bug.
  

Modified:
  soc2013/dpl/head/lib/libzcap/test/zcaplibtest.c

Modified: soc2013/dpl/head/lib/libzcap/test/zcaplibtest.c
==============================================================================
--- soc2013/dpl/head/lib/libzcap/test/zcaplibtest.c	Tue Aug 27 16:50:48 2013	(r256629)
+++ soc2013/dpl/head/lib/libzcap/test/zcaplibtest.c	Tue Aug 27 18:19:22 2013	(r256630)
@@ -2,6 +2,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <err.h>
 
 void testzlibVersion(void);
@@ -12,6 +13,14 @@
 void testinflate(z_streamp strm);
 void testinflateEnd(z_streamp strm);
 
+gzFile testgzopen(void);
+void testgzbuffer(gzFile file);
+void testgzsetparams(gzFile file);
+gzFile testgzio(gzFile file);
+void testgzdirect(gzFile file);
+void testgzerror(gzFile file);
+void testgzclearerr(gzFile file);
+
 void testzlibCompileFlags(void);
 
 void testCompressBound(void);
@@ -19,21 +28,21 @@
 void testchecksums(void);
 
 #define SIZEOFDATA 10*1024
-int i;
 char *data;
-z_streamp strmdef;
-z_streamp strminf;
+int i;
+
 
 int
 main() {
+	z_streamp strmdef;
+	z_streamp strminf;
+
 	if ( (data = malloc(SIZEOFDATA)) == NULL) 
 		err(1, "zcaplibtest: malloc()");
 
 	for (i=0; i < SIZEOFDATA; i+=sizeof(long))
 		data[i] = i;
 
-	printf("This is a zcaplib program tester.\n");
-
 	if ( (strmdef = calloc(1, sizeof (z_stream))) == NULL) 
 		err(1, "zcaplibtest: malloc()");
 	testdeflateInit(strmdef);
@@ -46,7 +55,17 @@
 	testinflate(strminf);
 	testinflateEnd(strminf);
 
+	gzFile gz = testgzopen();
+	testgzbuffer(gz);
+	testgzsetparams(gz);
+	gz = testgzio(gz);
+	testgzdirect(gz);
+	testgzerror(gz);
+	testgzclearerr(gz);
+	// XXX Delete foo.gz here
+
 	testzlibCompileFlags();
+
 	testCompressBound();
 
 	free(strmdef);
@@ -56,16 +75,15 @@
 	return 0;
 }
 
+/* Basic functions */
 void
 testdeflateInit(z_streamp strm)
 {
 	printf("deflateInit(): ");
 	int ret = deflateInit(strm, Z_DEFAULT_COMPRESSION);
 	if (strm->state != NULL || ret == 0)
-		printf("OK\n");
+		printf(" %d\n", ret);
 	else printf("Error");
-	printf("deflateInit %d\n", ret);
-	return;
 }
 
 void
@@ -80,11 +98,9 @@
 	printf("deflateEnd(): ");
 	int ret = deflateEnd(strm);
 	if (strm->state == Z_NULL || ret == 0)
-		printf("OK\n");
+		printf("%d\n", ret);
 	else
 		printf("Error\n");
-	printf("deflateEnd %d\n", ret);
-	return;
 }
 
 void
@@ -93,10 +109,8 @@
 	printf("inflateInit(): ");
 	int ret = inflateInit(strm);
 	if (strm->state != NULL || ret == 0)
-		printf("OK\n");
+		printf(" %d\n", ret);
 	else printf("Error");
-	printf("inflateInit %d\n", ret);
-	return;
 }
 
 void
@@ -112,27 +126,24 @@
 	printf("inflateEnd(): ");
 	int ret = inflateEnd(strm);
 	if (strm->state == Z_NULL || ret == 0)
-		printf("OK\n");
+		printf("%d\n", ret);
 	else
 		printf("Error\n");
-	printf("deflateEnd %d\n", ret);
-	return;
 }
 
+/* Advanced functions */
 void
 testzlibCompileFlags(void)
 {
 	printf("zlibCompileFlags(): ");
 	uLong ret = zlibCompileFlags();
 	if ( ret > 0)
-		printf("OK\n");
+		printf(" %lu\n", ret);
 	else 
 		err(1, "Error\n");
-	printf("zlibCompileFlags %lu\n", ret);
-
-	return;
 }
 
+/* Utility functions */
 void
 testCompressBound(void)
 {
@@ -140,15 +151,220 @@
 	uLong ret = compressBound(10L);
 	if (ret) printf("%lu\n", ret);
 	else printf("-1\n");
-	return;
+}
+
+/* Gzip Functions */
+gzFile
+testgzopen(void)
+{
+	gzFile file;
+	printf("gzopen(): ");
+	file = gzopen("foo.gz", "wb");
+	if (file != NULL)
+		printf("0\n");
+	else
+		printf("Error\n");
+	return file;
+}
+
+void
+testgzbuffer(gzFile file)
+{
+	printf("gzbuffer(): ");
+	int ret = gzbuffer(file, 8192);
+	if (ret == Z_OK)
+		printf("%d\n", ret);
+	else
+		printf("Error\n");
 }
 
 void
+testgzsetparams(gzFile file)
+{
+	printf("gzsetparams(): ");
+	int ret = gzsetparams(file, 9, Z_HUFFMAN_ONLY);
+	if (ret == Z_OK)
+		printf("%d\n", ret);
+	else
+		printf("Error\n");
+}
+
+/* This function will test all the related IO functions of gzip files */
+/* It is separated in writing functions (first), and reading functions */
+gzFile
+testgzio(gzFile file)
+{
+	char *buf = "hello";
+	int len = strlen(buf)+1;
+	int ret;
+	
+	void *d = calloc(50, 1);
+	if (d == NULL)
+		err(1, "zcaplibtest: calloc()");
+	
+
+	/* Writing functions */
+	printf("gzwrite(): ");
+	ret = gzwrite(file, (void *)buf, len);
+	if (ret != 0)
+		printf("%d\n", ret);
+	else
+		printf("Error\n");
+
+	printf("gzprintf(): ");
+	ret = gzprintf(file, ",hello %d", len);
+	if (ret != 0)
+		printf("%d\n", ret);
+	else
+		printf("Error\n");
+
+	printf("gztell(): ");
+	ret = gztell(file);
+	if (ret >= 0)
+		printf("%d\n", ret);
+	else
+		printf("Error\n");
+
+	printf("gzputs(): ");
+	ret = gzputs(file, "\nhello lin");
+	if (ret > 0)
+		printf("%d\n", ret);
+	else
+		printf("Error\n");
+
+	printf("gzputc(): ");
+	ret = gzputc(file, (int)'e');
+	if (ret >= 0)
+		printf("%d\n", ret);
+	else
+		printf("Error\n");
+
+	printf("gzflush(): ");
+	ret = gzflush(file, Z_FINISH);
+	if (ret >= 0)
+		printf("%d\n", ret);
+	else
+		printf("Error\n");
+
+	printf("gzclose(): ");
+	ret = gzclose(file);
+	if (ret == Z_OK)
+		printf("%d\n", ret);
+	else
+		printf("Error\n");
+
+	/* Reading functions */
+	file = gzopen("foo.gz", "rb");
+	printf("gzseek(): ");
+	ret = gzseek(file, 0 , SEEK_SET);
+	if (ret >= 0)
+		printf("%d\n", ret);
+	else
+		printf("Error\n");
+
+	printf("gzread(): ");
+	ret = gzread(file, d, 50);
+	if (ret > 0)
+		printf("%d\n", ret);
+	else
+		printf("Error\n");
+
+	printf("\nContents of file:\n'");
+	printf("%s'\n\n", d);
+
+	printf("gzeof(): ");
+	ret = gzeof(file);
+	if (ret > 0)
+		printf("%d\n", ret);
+	else
+		printf("Error\n");
+
+	printf("gzrewind(): ");
+	ret = gzrewind(file);
+	if (ret >= 0)
+		printf("%d\n", ret);
+	else
+		printf("Error\n");
+
+	printf("gzoffset(): ");
+	ret = gzoffset(file);
+	if (ret >= 0)
+		printf("%d\n", ret);
+	else
+		printf("Error\n");
+
+	printf("gzgets(): ");
+	const char *str = gzgets(file, d, 50);
+	if (str != NULL)
+		printf("%s\n", str);
+	else
+		printf("Error\n");
+
+	//XXX
+	printf("gzgetc(): ");
+	ret = gzgetc(file);
+	if (ret >= 0)
+		printf("%c\n", ret);
+	else
+		printf("Error\n");
+	printf("gzungetc(): ");
+	ret = gzungetc(1, file);
+	if (ret >= 0)
+		printf("%d\n", ret);
+	else
+		printf("Error:%d\n", ret);
+	printf("%c\n",gzgetc(file));
+
+	return file;
+}
+
+
+void
+testgzdirect(gzFile file)
+{
+	printf("gzdirect(): ");
+	int ret = gzdirect(file);
+	if (ret >= 0)
+		printf("%d\n", ret);
+	else
+		printf("Error\n");
+}
+
+void
+testgzerror(gzFile file)
+{
+	int errn;
+	// XXX How can we test this?
+	printf("gzerror(): ");
+	const char *error = gzerror(file, &errn);
+	if (errn == 0)
+		printf("%d\n", errn);
+	else
+		printf("%d:%s\n", errn, error);
+}
+
+void
+testgzclearerr(gzFile file)
+{
+	int errn;
+	printf("gzclearerr(): ");
+	gzclearerr(file);
+	// XXX How can we test this?
+	const char *error = gzerror(file, &errn);
+	if (errn == 0)
+		printf("%d\n", errn);
+	else
+		printf("%d:%s\n", errn, error);
+}
+
+
+/* Checksum functions */
+void
 testchecksums(void)
 {
 	/*
-	 * first, second: checksum of the first,second half of the data buffer.
-	 * allone, alltwo: checksum of the whole buffer in one,two call(s).
+	 * first, second: checksum of the first/second half of the data buffer.
+	 * allone, alltwo: checksum of the whole buffer in one/two call(s).
 	 */
 	uLong first, second, combined, allone, alltwo;
 	first = second = combined = allone = alltwo = 0L;
@@ -166,13 +382,13 @@
 	if (alltwo == allone)
 		printf("%lu\n", alltwo);
 	else
-		printf("-1\n");
+		printf("Error\n");
 
 	printf("adler32_combine(): ");
 	if (allone == combined)
 		printf("%lu\n", combined);
 	else
-		printf("-1\n");
+		printf("Error\n");
 
 	/* crc32 */
 	first = second = combined = allone = alltwo = 0L;
@@ -189,11 +405,11 @@
 	if (alltwo == allone)
 		printf("%lu\n", alltwo);
 	else
-		printf("-1\n");
+		printf("Error\n");
 
 	printf("crc32_combine(): ");
 	if (allone == combined)
 		printf("%lu\n", combined);
 	else
-		printf("-1\n");
+		printf("Error\n");
 }
\ No newline at end of file



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308271819.r7RIJM9J051665>