67 lines
1.8 KiB
C
67 lines
1.8 KiB
C
#include <ccan/str/str.h>
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <ccan/tap/tap.h>
|
|
#include <stdint.h>
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
char *str = (char*)malloc(sizeof(char)*1000);
|
|
struct {
|
|
uint8_t u1byte;
|
|
int8_t s1byte;
|
|
uint16_t u2byte;
|
|
int16_t s2byte;
|
|
uint32_t u4byte;
|
|
int32_t s4byte;
|
|
uint64_t u8byte;
|
|
int64_t s8byte;
|
|
void *ptr;
|
|
} types;
|
|
|
|
(void)argc;
|
|
(void)argv;
|
|
|
|
assert(str);
|
|
|
|
plan_tests(13);
|
|
|
|
memset(&types, 0xFF, sizeof(types));
|
|
|
|
/* Hex versions */
|
|
sprintf(str, "0x%llx", (unsigned long long)types.u1byte);
|
|
ok1(strlen(str) < STR_MAX_CHARS(types.u1byte));
|
|
sprintf(str, "0x%llx", (unsigned long long)types.u2byte);
|
|
ok1(strlen(str) < STR_MAX_CHARS(types.u2byte));
|
|
sprintf(str, "0x%llx", (unsigned long long)types.u4byte);
|
|
ok1(strlen(str) < STR_MAX_CHARS(types.u4byte));
|
|
sprintf(str, "0x%llx", (unsigned long long)types.u8byte);
|
|
ok1(strlen(str) < STR_MAX_CHARS(types.u8byte));
|
|
|
|
/* Decimal versions */
|
|
sprintf(str, "%u", types.u1byte);
|
|
ok1(strlen(str) < STR_MAX_CHARS(types.u1byte));
|
|
sprintf(str, "%d", types.s1byte);
|
|
ok1(strlen(str) < STR_MAX_CHARS(types.s1byte));
|
|
sprintf(str, "%u", types.u2byte);
|
|
ok1(strlen(str) < STR_MAX_CHARS(types.u2byte));
|
|
sprintf(str, "%d", types.s2byte);
|
|
ok1(strlen(str) < STR_MAX_CHARS(types.s2byte));
|
|
sprintf(str, "%u", types.u4byte);
|
|
ok1(strlen(str) < STR_MAX_CHARS(types.u4byte));
|
|
sprintf(str, "%d", types.s4byte);
|
|
ok1(strlen(str) < STR_MAX_CHARS(types.s4byte));
|
|
sprintf(str, "%llu", (unsigned long long)types.u8byte);
|
|
ok1(strlen(str) < STR_MAX_CHARS(types.u8byte));
|
|
sprintf(str, "%lld", (long long)types.s8byte);
|
|
ok1(strlen(str) < STR_MAX_CHARS(types.s8byte));
|
|
|
|
/* Pointer version. */
|
|
sprintf(str, "%p", types.ptr);
|
|
ok1(strlen(str) < STR_MAX_CHARS(types.ptr));
|
|
|
|
free(str);
|
|
|
|
return exit_status();
|
|
}
|