Module Name:    src
Committed By:   kre
Date:           Tue May 21 03:46:45 UTC 2019

Modified Files:
        src/tests/kernel: gen_t_subr_prf

Log Message:
Make the t_subr_prf test build after changes to sys/kern/subr_prf.c
and while here add a simple test for the new kernel vasprintf().


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/tests/kernel/gen_t_subr_prf

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/kernel/gen_t_subr_prf
diff -u src/tests/kernel/gen_t_subr_prf:1.5 src/tests/kernel/gen_t_subr_prf:1.6
--- src/tests/kernel/gen_t_subr_prf:1.5	Sun Feb  3 10:48:47 2019
+++ src/tests/kernel/gen_t_subr_prf	Tue May 21 03:46:45 2019
@@ -6,6 +6,7 @@ cat << _EOF > $2
 #include <stdio.h>
 #include <stdarg.h>
 #include <stdint.h>
+#include <stdlib.h>
 #include <string.h>
 #include <sha2.h>
 
@@ -16,11 +17,14 @@ cat << _EOF > $2
 #undef vsnprintf
 #undef sprintf
 #undef vsprintf
+#undef vasprintf
 
 #define KPRINTF_BUFSIZE 1024
 #undef putchar
 #define putchar xputchar
 
+#define	kmem_alloc(n, f)	malloc(n)
+
 static int putchar(char c, int foo, void *b)
 {
 	return fputc(c, stderr);
@@ -112,12 +116,46 @@ ATF_TC_BODY(snprintf_count_overflow, tc)
 	ATF_CHECK_EQ(i, 16);
 }
 
+ATF_TC(vasprintf_print);
+ATF_TC_HEAD(vasprintf_print, tc)
+{
+        atf_tc_set_md_var(tc, "descr", "checks vasprintf works");
+}
+
+int vasp_helper(char **, const char *, ...);
+
+int
+vasp_helper(char **buf, const char *fmt, ...)
+{
+	va_list ap;
+	int ret;
+
+	va_start(ap, fmt);
+	ret = vasprintf(buf, fmt, ap);
+	va_end(ap);
+	return ret;
+}
+
+ATF_TC_BODY(vasprintf_print, tc)
+{
+	int i;
+	char *buf;
+
+	buf = NULL;
+	i =  vasp_helper(&buf, "N=%d C=%c S=%s", 7, 'x', "abc");
+	ATF_CHECK_EQ(i, 13);
+	ATF_CHECK(buf != NULL);
+	ATF_CHECK_STREQ(buf, "N=7 C=x S=abc");
+	free(buf);
+}
+
 ATF_TP_ADD_TCS(tp)
 {
         ATF_TP_ADD_TC(tp, snprintf_print);
         ATF_TP_ADD_TC(tp, snprintf_print_overflow);
         ATF_TP_ADD_TC(tp, snprintf_count);
         ATF_TP_ADD_TC(tp, snprintf_count_overflow);
+	ATF_TP_ADD_TC(tp, vasprintf_print);
 
         return atf_no_error();
 }

Reply via email to