Rev 11847: Improve the replace testsuite a bit. in	file:///home/jelmer/bzr.samba/SAMBA_4_0/ At file:///home/jelmer/bzr.samba/SAMBA_4_0/

------------------------------------------------------------
revno: 11847
revision-id: jelmer@samba.org-20070412205222-l2jw71qwj1c59o5z
parent: svn-v2:22201@0c0555d6-39d7-0310-84fc-f1cc0bd64818-branches%2fSAMBA_4_0
committer: Jelmer Vernooij 
branch nick: SAMBA_4_0
timestamp: Thu 2007-04-12 22:52:22 +0200
message:
  Improve the replace testsuite a bit.
modified:
  source/lib/replace/test/testsuite.c svn-v2:18031@0c0555d6-39d7-0310-84fc-f1cc0bd64818-branches%2fSAMBA_4_0-source%2flib%2freplace%2ftest%2ftestsuite.c
=== modified file 'source/lib/replace/test/testsuite.c'
--- a/source/lib/replace/test/testsuite.c	2007-04-10 16:00:13 +0000
+++ b/source/lib/replace/test/testsuite.c	2007-04-12 20:52:22 +0000
@@ -115,7 +115,27 @@
 
 static int test_strlcat(void)
 {
-	/* FIXME */
+	char tmp[10];
+	printf("test: strlcat\\n");
+	strcpy(tmp, "");
+	if (strlcat(tmp, "bla", 3) != 3) {
+		printf("failure: strlcat [\\ninvalid return code\\n]\\n");
+		return false;
+	}
+	if (strcmp(tmp, "bl") != 0) {
+		printf("failure: strlcat [\\nexpected \\"bl\\", got \\"%s\\"\\n]\\n", 
+			   tmp);
+		return false;
+	}
+
+	strcpy(tmp, "da");
+	if (strlcat(tmp, "me", 4) != 4) {
+		printf("failure: strlcat [\\nexpected \\"dam\\", got \\"%s\\"\\n]\\n",
+			   tmp);
+		return false;
+	}
+
+	printf("success: strlcat\\n");
 	return true;
 }
 
@@ -139,7 +159,16 @@
 
 static int test_strdup(void)
 {
-	/* FIXME */
+	char *x;
+	printf("test: strdup\\n");
+	x = strdup("bla");
+	if (strcmp("bla", x) != 0) {
+		printf("failure: strdup [\\nfailed: expected \\"bla\\", got \\"%s\\"\\n]\\n",
+			   x);
+		return false;
+	}
+	free(x);
+	printf("success: strdup\\n");
 	return true;
 }	
 
@@ -225,13 +254,49 @@
 
 static int test_strndup(void)
 {
-	/* FIXME */
+	char *x;
+	printf("test: strndup\\n");
+	x = strndup("bla", 0);
+	if (strcmp(x, "") != 0) {
+		printf("failure: strndup [\\ninvalid\\n]\\n");
+		return false;
+	}
+	free(x);
+	x = strndup("bla", 2);
+	if (strcmp(x, "bl") != 0) {
+		printf("failure: strndup [\\ninvalid\\n]\\n");
+		return false;
+	}
+	free(x);
+	x = strndup("bla", 10);
+	if (strcmp(x, "bla") != 0) {
+		printf("failure: strndup [\\ninvalid\\n]\\n");
+		return false;
+	}
+	free(x);
+	printf("success: strndup\\n");
 	return true;
 }
 
 static int test_strnlen(void)
 {
-	/* FIXME */
+	printf("test: strnlen\\n");
+	if (strnlen("bla", 2) != 2) {
+		printf("failure: strnlen [\\nunexpected length\\n]\\n");
+		return false;
+	}
+
+	if (strnlen("some text\\n", 0) != 0) {
+		printf("failure: strnlen [\\nunexpected length\\n]\\n");
+		return false;
+	}
+
+	if (strnlen("some text", 20) != 9) {
+		printf("failure: strnlen [\\nunexpected length\\n]\\n");
+		return false;
+	}
+
+	printf("success: strnlen\\n");
 	return true;
 }
 
@@ -255,13 +320,43 @@
 
 static int test_asprintf(void)
 {
-	/* FIXME */
+	char *x;
+	printf("test: asprintf\\n");
+	if (asprintf(&x, "%d", 9) != 1) {
+		printf("failure: asprintf [\\ngenerate asprintf\\n]\\n");
+		return false;
+	}
+	if (strcmp(x, "9") != 0) {
+		printf("failure: asprintf [\\ngenerate asprintf\\n]\\n");
+		return false;
+	}
+	if (asprintf(&x, "dat%s", "a") != 4) {
+		printf("failure: asprintf [\\ngenerate asprintf\\n]\\n");
+		return false;
+	}
+	if (strcmp(x, "data") != 0) {
+		printf("failure: asprintf [\\ngenerate asprintf\\n]\\n");
+		return false;
+	}
+	printf("success: asprintf\\n");
 	return true;
 }
 
 static int test_snprintf(void)
 {
-	/* FIXME */
+	char tmp[10];
+	printf("test: snprintf\\n");
+	if (snprintf(tmp, 3, "foo%d", 9) != 4) {
+		printf("failure: snprintf [\\nsnprintf return code failed\\n]\\n");
+		return false;
+	}
+
+	if (strcmp(tmp, "fo") != 0) {
+		printf("failure: snprintf [\\nsnprintf failed\\n]\\n");
+		return false;
+	}
+
+	printf("success: snprintf\\n");
 	return true;
 }
 
@@ -328,13 +423,22 @@
 
 static int test_strerror(void)
 {
+	printf("test: strerror\\n");
 	/* FIXME */
+	printf("failure: sterror\\n");
 	return true;
 }
 
 static int test_errno(void)
 {
-	/* FIXME */
+	printf("test: errno\\n");
+	errno = 3;
+	if (errno != 3) {
+		printf("failure: errno [\\nerrno failed\\n]\\n");
+		return false;
+	}
+
+	printf("success: errno\\n");
 	return true;
 }
 
@@ -376,7 +480,20 @@
 
 static int test_strtoll(void)
 {
-	/* FIXME */
+	printf("test: strtoll\\n");
+	if (strtoll("15", NULL, 10) != 15) {
+		printf("failure: strtoll [\\nstrtoll failed\\n]\\n");
+		return false;
+	}
+	if (strtoll("10", NULL, 16) != 16) {
+		printf("failure: strtoll [\\nstrtoll hex failed\\n]\\n");
+		return false;
+	}
+	if (strtoll("11", NULL, 2) != 3) {
+		printf("failure: strtoll [\\nstrtoll binary failed\\n]\\n");
+		return false;
+	}
+	printf("success: strtoll\\n");
 	return true;
 }
 
@@ -410,19 +527,42 @@
 
 static int test_FUNCTION(void)
 {
-	/* FIXME: test __FUNCTION__ macro */
+	printf("test: FUNCTION\\n");
+	if (strcmp(__FUNCTION__, "test_FUNCTION") != 0) {
+		printf("failure: FAILURE [\\nFAILURE invalid\\n]\\n");
+		return false;
+	}
+	printf("success: FUNCTION\\n");
 	return true;
 }
 
 static int test_MIN(void)
 {
-	/* FIXME */
+	printf("test: MIN\\n");
+	if (MIN(20, 1) != 1) {
+		printf("failure: MIN [\\nMIN invalid\\n]\\n");
+		return false;
+	}
+	if (MIN(1, 20) != 1) {
+		printf("failure: MIN [\\nMIN invalid\\n]\\n");
+		return false;
+	}
+	printf("success: MIN\\n");
 	return true;
 }
 
 static int test_MAX(void)
 {
-	/* FIXME */
+	printf("test: MAX\\n");
+	if (MAX(20, 1) != 20) {
+		printf("failure: MAX [\\nMAX invalid\\n]\\n");
+		return false;
+	}
+	if (MAX(1, 20) != 20) {
+		printf("failure: MAX [\\nMAX invalid\\n]\\n");
+		return false;
+	}
+	printf("success: MAX\\n");
 	return true;
 }
 

