459
479
cs_calc_len_(block);
463
FLAC__bool test_metadata_object()
465
FLAC__StreamMetadata *block, *blockcopy, *vorbiscomment, *cuesheet;
466
FLAC__StreamMetadata_SeekPoint seekpoint_array[8];
482
static void pi_set_mime_type(FLAC__StreamMetadata *block, const char *s)
484
if(block->data.picture.mime_type) {
485
block->length -= strlen(block->data.picture.mime_type);
486
free(block->data.picture.mime_type);
488
block->data.picture.mime_type = strdup(s);
489
FLAC__ASSERT(block->data.picture.mime_type);
490
block->length += strlen(block->data.picture.mime_type);
493
static void pi_set_description(FLAC__StreamMetadata *block, const FLAC__byte *s)
495
if(block->data.picture.description) {
496
block->length -= strlen((const char *)block->data.picture.description);
497
free(block->data.picture.description);
499
block->data.picture.description = (FLAC__byte*)strdup((const char *)s);
500
FLAC__ASSERT(block->data.picture.description);
501
block->length += strlen((const char *)block->data.picture.description);
504
static void pi_set_data(FLAC__StreamMetadata *block, const FLAC__byte *data, FLAC__uint32 len)
506
if(block->data.picture.data) {
507
block->length -= block->data.picture.data_length;
508
free(block->data.picture.data);
510
block->data.picture.data = (FLAC__byte*)strdup((const char *)data);
511
FLAC__ASSERT(block->data.picture.data);
512
block->data.picture.data_length = len;
513
block->length += len;
516
FLAC__bool test_metadata_object(void)
518
FLAC__StreamMetadata *block, *blockcopy, *vorbiscomment, *cuesheet, *picture;
519
FLAC__StreamMetadata_SeekPoint seekpoint_array[14];
467
520
FLAC__StreamMetadata_VorbisComment_Entry entry;
468
521
FLAC__StreamMetadata_CueSheet_Index index;
469
522
FLAC__StreamMetadata_CueSheet_Track track;
1970
2045
printf("OK\n");
2048
printf("testing PICTURE\n");
2050
printf("testing FLAC__metadata_object_new()... ");
2051
block = FLAC__metadata_object_new(FLAC__METADATA_TYPE_PICTURE);
2053
printf("FAILED, returned NULL\n");
2057
FLAC__STREAM_METADATA_PICTURE_TYPE_LEN +
2058
FLAC__STREAM_METADATA_PICTURE_MIME_TYPE_LENGTH_LEN +
2059
FLAC__STREAM_METADATA_PICTURE_DESCRIPTION_LENGTH_LEN +
2060
FLAC__STREAM_METADATA_PICTURE_WIDTH_LEN +
2061
FLAC__STREAM_METADATA_PICTURE_HEIGHT_LEN +
2062
FLAC__STREAM_METADATA_PICTURE_DEPTH_LEN +
2063
FLAC__STREAM_METADATA_PICTURE_COLORS_LEN +
2064
FLAC__STREAM_METADATA_PICTURE_DATA_LENGTH_LEN
2066
if(block->length != expected_length) {
2067
printf("FAILED, bad length, expected %u, got %u\n", expected_length, block->length);
2072
printf("testing FLAC__metadata_object_clone()... ");
2073
picture = FLAC__metadata_object_clone(block);
2075
printf("FAILED, returned NULL\n");
2078
if(!mutils__compare_block(picture, block))
2082
pi_set_mime_type(picture, "image/png\t");
2083
printf("testing FLAC__metadata_object_picture_set_mime_type(copy)...");
2084
if(!FLAC__metadata_object_picture_set_mime_type(block, "image/png\t", /*copy=*/true)) {
2085
printf("FAILED, returned false\n");
2088
if(!mutils__compare_block(picture, block))
2092
printf("testing FLAC__metadata_object_picture_is_legal()...");
2094
const char *violation;
2095
if(FLAC__metadata_object_picture_is_legal(block, &violation)) {
2096
printf("FAILED, returned true when expecting false\n");
2099
printf("returned false as expected, violation=\"%s\" OK\n", violation);
2102
pi_set_mime_type(picture, "image/png");
2103
printf("testing FLAC__metadata_object_picture_set_mime_type(copy)...");
2104
if(!FLAC__metadata_object_picture_set_mime_type(block, "image/png", /*copy=*/true)) {
2105
printf("FAILED, returned false\n");
2108
if(!mutils__compare_block(picture, block))
2112
printf("testing FLAC__metadata_object_picture_is_legal()...");
2114
const char *violation;
2115
if(!FLAC__metadata_object_picture_is_legal(block, &violation)) {
2116
printf("FAILED, returned false, violation=\"%s\"\n", violation);
2122
pi_set_description(picture, (const FLAC__byte *)"DESCRIPTION\xff");
2123
printf("testing FLAC__metadata_object_picture_set_description(copy)...");
2124
if(!FLAC__metadata_object_picture_set_description(block, (FLAC__byte *)"DESCRIPTION\xff", /*copy=*/true)) {
2125
printf("FAILED, returned false\n");
2128
if(!mutils__compare_block(picture, block))
2132
printf("testing FLAC__metadata_object_picture_is_legal()...");
2134
const char *violation;
2135
if(FLAC__metadata_object_picture_is_legal(block, &violation)) {
2136
printf("FAILED, returned true when expecting false\n");
2139
printf("returned false as expected, violation=\"%s\" OK\n", violation);
2142
pi_set_description(picture, (const FLAC__byte *)"DESCRIPTION");
2143
printf("testing FLAC__metadata_object_picture_set_description(copy)...");
2144
if(!FLAC__metadata_object_picture_set_description(block, (FLAC__byte *)"DESCRIPTION", /*copy=*/true)) {
2145
printf("FAILED, returned false\n");
2148
if(!mutils__compare_block(picture, block))
2152
printf("testing FLAC__metadata_object_picture_is_legal()...");
2154
const char *violation;
2155
if(!FLAC__metadata_object_picture_is_legal(block, &violation)) {
2156
printf("FAILED, returned false, violation=\"%s\"\n", violation);
2163
pi_set_data(picture, (const FLAC__byte*)"PNGDATA", strlen("PNGDATA"));
2164
printf("testing FLAC__metadata_object_picture_set_data(copy)...");
2165
if(!FLAC__metadata_object_picture_set_data(block, (FLAC__byte*)"PNGDATA", strlen("PNGDATA"), /*copy=*/true)) {
2166
printf("FAILED, returned false\n");
2169
if(!mutils__compare_block(picture, block))
2173
printf("testing FLAC__metadata_object_clone()... ");
2174
blockcopy = FLAC__metadata_object_clone(block);
2175
if(0 == blockcopy) {
2176
printf("FAILED, returned NULL\n");
2179
if(!mutils__compare_block(block, blockcopy))
2183
printf("testing FLAC__metadata_object_delete()... ");
2184
FLAC__metadata_object_delete(blockcopy);
2187
pi_set_mime_type(picture, "image/png\t");
2188
printf("testing FLAC__metadata_object_picture_set_mime_type(own)...");
2189
if(!FLAC__metadata_object_picture_set_mime_type(block, strdup("image/png\t"), /*copy=*/false)) {
2190
printf("FAILED, returned false\n");
2193
if(!mutils__compare_block(picture, block))
2197
printf("testing FLAC__metadata_object_picture_is_legal()...");
2199
const char *violation;
2200
if(FLAC__metadata_object_picture_is_legal(block, &violation)) {
2201
printf("FAILED, returned true when expecting false\n");
2204
printf("returned false as expected, violation=\"%s\" OK\n", violation);
2207
pi_set_mime_type(picture, "image/png");
2208
printf("testing FLAC__metadata_object_picture_set_mime_type(own)...");
2209
if(!FLAC__metadata_object_picture_set_mime_type(block, strdup("image/png"), /*copy=*/false)) {
2210
printf("FAILED, returned false\n");
2213
if(!mutils__compare_block(picture, block))
2217
printf("testing FLAC__metadata_object_picture_is_legal()...");
2219
const char *violation;
2220
if(!FLAC__metadata_object_picture_is_legal(block, &violation)) {
2221
printf("FAILED, returned false, violation=\"%s\"\n", violation);
2227
pi_set_description(picture, (const FLAC__byte *)"DESCRIPTION\xff");
2228
printf("testing FLAC__metadata_object_picture_set_description(own)...");
2229
if(!FLAC__metadata_object_picture_set_description(block, (FLAC__byte *)strdup("DESCRIPTION\xff"), /*copy=*/false)) {
2230
printf("FAILED, returned false\n");
2233
if(!mutils__compare_block(picture, block))
2237
printf("testing FLAC__metadata_object_picture_is_legal()...");
2239
const char *violation;
2240
if(FLAC__metadata_object_picture_is_legal(block, &violation)) {
2241
printf("FAILED, returned true when expecting false\n");
2244
printf("returned false as expected, violation=\"%s\" OK\n", violation);
2247
pi_set_description(picture, (const FLAC__byte *)"DESCRIPTION");
2248
printf("testing FLAC__metadata_object_picture_set_description(own)...");
2249
if(!FLAC__metadata_object_picture_set_description(block, (FLAC__byte *)strdup("DESCRIPTION"), /*copy=*/false)) {
2250
printf("FAILED, returned false\n");
2253
if(!mutils__compare_block(picture, block))
2257
printf("testing FLAC__metadata_object_picture_is_legal()...");
2259
const char *violation;
2260
if(!FLAC__metadata_object_picture_is_legal(block, &violation)) {
2261
printf("FAILED, returned false, violation=\"%s\"\n", violation);
2267
pi_set_data(picture, (const FLAC__byte*)"PNGDATA", strlen("PNGDATA"));
2268
printf("testing FLAC__metadata_object_picture_set_data(own)...");
2269
if(!FLAC__metadata_object_picture_set_data(block, (FLAC__byte*)strdup("PNGDATA"), strlen("PNGDATA"), /*copy=*/false)) {
2270
printf("FAILED, returned false\n");
2273
if(!mutils__compare_block(picture, block))
2277
printf("testing FLAC__metadata_object_clone()... ");
2278
blockcopy = FLAC__metadata_object_clone(block);
2279
if(0 == blockcopy) {
2280
printf("FAILED, returned NULL\n");
2283
if(!mutils__compare_block(block, blockcopy))
2287
printf("testing FLAC__metadata_object_delete()... ");
2288
FLAC__metadata_object_delete(blockcopy);
2291
printf("testing FLAC__metadata_object_delete()... ");
2292
FLAC__metadata_object_delete(picture);
2293
FLAC__metadata_object_delete(block);