changeset 662:e5d8203935d2

tests: add check_rets helper Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Sun, 10 Feb 2019 21:29:23 -0500
parents 6ba753927d3f
children 10cf546692c8
files tests/test.c
diffstat 1 files changed, 36 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/tests/test.c	Sun Feb 10 21:45:35 2019 -0500
+++ b/tests/test.c	Sun Feb 10 21:29:23 2019 -0500
@@ -56,6 +56,42 @@
 	exit(1);
 }
 
+/*
+ * Compare two return values (0s or negated errnos), and fail if they don't
+ * match.
+ */
+void check_rets(int exp, int got, const char *fmt, ...)
+{
+	va_list ap;
+
+	if (exp == got)
+		return;
+
+	fprintf(stderr, "TEST FAILED: ");
+
+	va_start(ap, fmt);
+	vfprintf(stderr, fmt, ap);
+	va_end(ap);
+
+	fprintf(stderr, " ");
+
+	if (got && !exp)
+		fprintf(stderr, "returned %s (%d), expected success",
+			xstrerror(got), got);
+
+	if (got && exp)
+		fprintf(stderr, "returned %s (%d), expected %s (%d)",
+			xstrerror(got), got, xstrerror(exp), exp);
+
+	if (!got && exp)
+		fprintf(stderr, "succeded, expected %s (%d)",
+			xstrerror(exp), exp);
+
+	fprintf(stderr, "\n");
+
+	exit(1);
+}
+
 void test_set_panic_string(const char *str)
 {
 	expected_panic_string = str;