41#define DATA(...) { __VA_ARGS__ }
52static void datauri_okx (
const char *uristring,
const void *expected,
53 size_t expected_len,
const char *file,
72 okx (
len >= 0, file, line );
73 okx ( ( (
size_t )
len ) == expected_len, file, line );
74 okx (
memcmp ( actual, expected, expected_len ) == 0, file, line );
79#define datauri_ok( uristring, EXPECTED ) do { \
80 static const uint8_t expected[] = EXPECTED; \
81 datauri_okx ( uristring, expected, sizeof ( expected ), \
82 __FILE__, __LINE__ ); \
110 okx (
len < 0, file, line );
115#define datauri_fail_ok( uristring ) \
116 datauri_fail_okx ( uristring, __FILE__, __LINE__ )
131 DATA (
'h',
'e',
'l',
'l',
'o',
' ',
'w',
'o',
'r',
'l',
134 DATA (
's',
'i',
'm',
'p',
'l',
'e' ) );
135 datauri_ok (
"data:text/plain;charset=US-ASCII;base64,ZW5jb2RlZA==",
136 DATA (
'e',
'n',
'c',
'o',
'd',
'e',
'd' ) );
137 datauri_ok (
"data:application/octet-string;base64,d2l0aABudWw=",
138 DATA (
'w',
'i',
't',
'h', 0x00,
'n',
'u',
'l' ) );
#define NULL
NULL pointer (VOID *).
#define DATA(...)
Define inline data.
int datauri_parse(struct uri *uri, void *buf)
Parse data URI.
static size_t datauri_max_len(struct uri *uri)
Get maximum length of parsed data URI.
static void datauri_test_exec(void)
Perform data URI self-test.
static void datauri_okx(const char *uristring, const void *expected, size_t expected_len, const char *file, unsigned int line)
Report result of data URI test.
static void datauri_fail_okx(const char *uristring, const char *file, unsigned int line)
Report result of data URI failure test.
#define DATA(...)
Define inline data.
#define datauri_ok(uristring, EXPECTED)
#define datauri_fail_ok(uristring)
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
int strcmp(const char *first, const char *second)
Compare strings.
int memcmp(const void *first, const void *second, size_t len)
Compare memory regions.
size_t strlen(const char *src)
Get length of string.
A Uniform Resource Identifier.
const char * scheme
Scheme.
const char * opaque
Opaque part.
Self-test infrastructure.
#define okx(success, file, line)
Report test result.
#define __self_test
Declare a self-test.
struct uri * parse_uri(const char *uri_string)
Parse URI.
Uniform Resource Identifiers.
static void uri_put(struct uri *uri)
Decrement URI reference count.