Skip to content

Commit 37793b4

Browse files
committed
Test commit
Signed-off-by: Bence Szépkúti <[email protected]>
1 parent 5fbffa2 commit 37793b4

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

tests/suites/test_suite_debug.function

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,17 +105,42 @@ void printf_int_expr(intmax_t smuggle_format_expr, /* TODO: teach test framework
105105

106106
/* Nominal case: buffer just large enough */
107107
TEST_CALLOC(output, n + 1);
108+
109+
int retval;
108110
if ((size_t) sizeof_x <= sizeof(int)) { // Any smaller integers would be promoted to an int due to calling a vararg function
109-
TEST_EQUAL(n, mbedtls_snprintf(output, n + 1, format, (int) x));
111+
retval = mbedtls_snprintf(output, n + 1, format, (int) x);
110112
} else if (sizeof_x == sizeof(long)) {
111-
TEST_EQUAL(n, mbedtls_snprintf(output, n + 1, format, (long) x));
113+
retval = mbedtls_snprintf(output, n + 1, format, (long) x);
112114
} else if (sizeof_x == sizeof(long long)) {
113-
TEST_EQUAL(n, mbedtls_snprintf(output, n + 1, format, (long long) x));
115+
retval = mbedtls_snprintf(output, n + 1, format, (long long) x);
114116
} else {
115117
TEST_FAIL(
116118
"sizeof_x <= sizeof(int) || sizeof_x == sizeof(long) || sizeof_x == sizeof(long long)");
117119
}
118-
TEST_MEMORY_COMPARE(result, n + 1, output, n + 1);
120+
121+
if (retval != (int) n || memcmp(output, result, n) != 0) {
122+
char test[MBEDTLS_TEST_LINE_LENGTH * 3];
123+
int written = mbedtls_snprintf(
124+
test, sizeof(test) - 1,
125+
"mbedtls_snprintf(buf, %lld, \"%s\", %lld) == %lld && strcmp(buf, \"%s\")\nmbedtls_snprint(...) = %d",
126+
(long long) n + 1, format, (long long) x, (long long) n, result, retval);
127+
if (retval >= 0) {
128+
written += mbedtls_snprintf(test + written, sizeof(test) - written - 1, "\nbuf = \"");
129+
if (retval <= (int) n) {
130+
written += mbedtls_snprintf(test + written, sizeof(test) - written - 1, "%s", output);
131+
} else {
132+
if ((size_t) sizeof_x <= sizeof(int)) {
133+
written += mbedtls_snprintf(test + written, sizeof(test) - written - 1, format, (int)x);
134+
} else if (sizeof_x == sizeof(long)) {
135+
written += mbedtls_snprintf(test + written, sizeof(test) - written - 1, format, (long)x);
136+
} else if (sizeof_x == sizeof(long long)) {
137+
written += mbedtls_snprintf(test + written, sizeof(test) - written - 1, format, (long long)x);
138+
}
139+
}
140+
written += mbedtls_snprintf(test + written, sizeof(test) - written - 1, "\"");
141+
}
142+
TEST_FAIL(test);
143+
}
119144

120145
exit:
121146
mbedtls_free(output);

0 commit comments

Comments
 (0)