aboutsummaryrefslogtreecommitdiff
path: root/lib/mlibc/tests/ansi/snprintf.c
blob: 82e4640d65dd5f74191ea7366b15acf81c6cb561 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <assert.h>
#include <string.h>

int main() {
	char buffer[10];
	int ret = snprintf(buffer, 10, "%d", 123456789);
	assert(strncmp("123456789", buffer, 10) == 0);
	assert(ret == 9);

	// We deliberately induce a warning here.
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-truncation"
	ret = snprintf(buffer, 10, "%d", 1234567890);
	assert(strncmp("123456789", buffer, 10) == 0);
	assert(ret == 10);
#pragma GCC diagnostic pop

	// mlibc issue #118.
	ret = snprintf(NULL, 0, "%d", 123456789);
	assert(ret == 9);
	return 0;
}