From 50fb2ef45d906776f4857995123d56acf39d4fd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Sat, 5 Jun 2021 00:35:52 +0300 Subject: [PATCH] test: Add tests for printf formatting of %+u (and %+[doux]) --- test/crt-test.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/crt-test.c b/test/crt-test.c index 09d38aa..1b15815 100644 --- a/test/crt-test.c +++ b/test/crt-test.c @@ -168,6 +168,18 @@ int main(int argc, char* argv[]) { #endif snprintf(buf, sizeof(buf), "%"PRIx64" %"PRIx64" %"PRIx64" %"PRIx64" %"PRIx64" %"PRIx64" %"PRIx64" %"PRIx64" %"PRIx64" %"PRIx64, myconst + 0, myconst + 1, myconst + 2, myconst + 3, myconst + 4, myconst + 5, myconst + 6, myconst + 7, myconst + 8, myconst + 9); TEST_STR(buf, "baadf00dcafe baadf00dcaff baadf00dcb00 baadf00dcb01 baadf00dcb02 baadf00dcb03 baadf00dcb04 baadf00dcb05 baadf00dcb06 baadf00dcb07"); + char fmt[10] = { '%', '+', '0', '5', 'd', '\0' }; + snprintf(buf, sizeof(buf), fmt, 42); + TEST_STR(buf, "+0042"); + fmt[4] = 'u'; + snprintf(buf, sizeof(buf), fmt, 42); + TEST_STR(buf, "00042"); + fmt[4] = 'o'; + snprintf(buf, sizeof(buf), fmt, 42); + TEST_STR(buf, "00052"); + fmt[4] = 'x'; + snprintf(buf, sizeof(buf), fmt, 42); + TEST_STR(buf, "0002a"); uint64_t val0, val1, val2, val3, val4, val5, val6, val7, val8, val9; if (sscanf("baadf00dcafe baadf00dcaff baadf00dcb00 baadf00dcb01 baadf00dcb02 baadf00dcb03 baadf00dcb04 baadf00dcb05 baadf00dcb06 baadf00dcb07", "%"SCNx64" %"SCNx64" %"SCNx64" %"SCNx64" %"SCNx64" %"SCNx64" %"SCNx64" %"SCNx64" %"SCNx64" %"SCNx64, &val0, &val1, &val2, &val3, &val4, &val5, &val6, &val7, &val8, &val9) != 10) {