📄 metadata_object.cpp
字号:
return die_("copy is not identical to original"); printf("OK\n"); } printf("testing Application::operator=(const ::FLAC__StreamMetadata *)... +\n"); printf(" Application::operator==(const ::FLAC__StreamMetadata *)... "); { FLAC::Metadata::Application blockcopy = &application_; if(!blockcopy.is_valid()) return die_("!block.is_valid()"); if(!(blockcopy == application_)) return die_("copy is not identical to original"); printf("OK\n"); } printf("testing Application::set_id()... "); block.set_id(application_.data.application.id); printf("OK\n"); printf("testing Application::set_data()... "); block.set_data(application_.data.application.data, application_.length - sizeof(application_.data.application.id), /*copy=*/true); printf("OK\n"); printf("testing Application::get_id()... "); if(0 != memcmp(block.get_id(), application_.data.application.id, sizeof(application_.data.application.id))) return die_("value mismatch, doesn't match previously set value"); printf("OK\n"); printf("testing Application::get_data()... "); if(0 != memcmp(block.get_data(), application_.data.application.data, application_.length - sizeof(application_.data.application.id))) return die_("value mismatch, doesn't match previously set value"); printf("OK\n"); printf("testing FLAC::Metadata::clone(const FLAC::Metadata::Prototype *)... "); FLAC::Metadata::Prototype *clone_ = FLAC::Metadata::clone(&block); if(0 == clone_) return die_("returned NULL"); if(0 == dynamic_cast<FLAC::Metadata::Application *>(clone_)) return die_("downcast is NULL"); if(*dynamic_cast<FLAC::Metadata::Application *>(clone_) != block) return die_("clone is not identical"); printf("OK\n"); printf("testing Application::~Application()... "); delete clone_; printf("OK\n"); printf("PASSED\n\n"); return true;}bool test_metadata_object_seektable(){ unsigned expected_length; printf("testing class FLAC::Metadata::SeekTable\n"); printf("testing SeekTable::SeekTable()... "); FLAC::Metadata::SeekTable block; if(!block.is_valid()) return die_("!block.is_valid()"); expected_length = 0; if(block.get_length() != expected_length) { printf("FAILED, bad length, expected %u, got %u\n", expected_length, block.get_length()); return false; } printf("OK\n"); printf("testing SeekTable::SeekTable(const SeekTable &)... +\n"); printf(" SeekTable::operator!=(const SeekTable &)... "); { FLAC::Metadata::SeekTable blockcopy(block); if(!blockcopy.is_valid()) return die_("!block.is_valid()"); if(blockcopy != block) return die_("copy is not identical to original"); printf("OK\n"); printf("testing SeekTable::~SeekTable()... "); } printf("OK\n"); printf("testing SeekTable::SeekTable(const ::FLAC__StreamMetadata &)... +\n"); printf(" SeekTable::operator!=(const ::FLAC__StreamMetadata &)... "); { FLAC::Metadata::SeekTable blockcopy(seektable_); if(!blockcopy.is_valid()) return die_("!block.is_valid()"); if(blockcopy != seektable_) return die_("copy is not identical to original"); printf("OK\n"); } printf("testing SeekTable::SeekTable(const ::FLAC__StreamMetadata *)... +\n"); printf(" SeekTable::operator!=(const ::FLAC__StreamMetadata *)... "); { FLAC::Metadata::SeekTable blockcopy(&seektable_); if(!blockcopy.is_valid()) return die_("!block.is_valid()"); if(blockcopy != seektable_) return die_("copy is not identical to original"); printf("OK\n"); } printf("testing SeekTable::SeekTable(const ::FLAC__StreamMetadata *, copy=true)... +\n"); printf(" SeekTable::operator!=(const ::FLAC__StreamMetadata *)... "); { FLAC::Metadata::SeekTable blockcopy(&seektable_, /*copy=*/true); if(!blockcopy.is_valid()) return die_("!block.is_valid()"); if(blockcopy != seektable_) return die_("copy is not identical to original"); printf("OK\n"); } printf("testing SeekTable::SeekTable(const ::FLAC__StreamMetadata *, copy=false)... +\n"); printf(" SeekTable::operator!=(const ::FLAC__StreamMetadata *)... "); { ::FLAC__StreamMetadata *copy = ::FLAC__metadata_object_clone(&seektable_); FLAC::Metadata::SeekTable blockcopy(copy, /*copy=*/false); if(!blockcopy.is_valid()) return die_("!block.is_valid()"); if(blockcopy != seektable_) return die_("copy is not identical to original"); printf("OK\n"); } printf("testing SeekTable::assign(const ::FLAC__StreamMetadata *, copy=true)... +\n"); printf(" SeekTable::operator!=(const ::FLAC__StreamMetadata *)... "); { FLAC::Metadata::SeekTable blockcopy; blockcopy.assign(&seektable_, /*copy=*/true); if(!blockcopy.is_valid()) return die_("!block.is_valid()"); if(blockcopy != seektable_) return die_("copy is not identical to original"); printf("OK\n"); } printf("testing SeekTable::assign(const ::FLAC__StreamMetadata *, copy=false)... +\n"); printf(" SeekTable::operator!=(const ::FLAC__StreamMetadata *)... "); { ::FLAC__StreamMetadata *copy = ::FLAC__metadata_object_clone(&seektable_); FLAC::Metadata::SeekTable blockcopy; blockcopy.assign(copy, /*copy=*/false); if(!blockcopy.is_valid()) return die_("!block.is_valid()"); if(blockcopy != seektable_) return die_("copy is not identical to original"); printf("OK\n"); } printf("testing SeekTable::operator=(const SeekTable &)... +\n"); printf(" SeekTable::operator==(const SeekTable &)... "); { FLAC::Metadata::SeekTable blockcopy = block; if(!blockcopy.is_valid()) return die_("!block.is_valid()"); if(!(blockcopy == block)) return die_("copy is not identical to original"); printf("OK\n"); } printf("testing SeekTable::operator=(const ::FLAC__StreamMetadata &)... +\n"); printf(" SeekTable::operator==(const ::FLAC__StreamMetadata &)... "); { FLAC::Metadata::SeekTable blockcopy = seektable_; if(!blockcopy.is_valid()) return die_("!block.is_valid()"); if(!(blockcopy == seektable_)) return die_("copy is not identical to original"); printf("OK\n"); } printf("testing SeekTable::operator=(const ::FLAC__StreamMetadata *)... +\n"); printf(" SeekTable::operator==(const ::FLAC__StreamMetadata *)... "); { FLAC::Metadata::SeekTable blockcopy = &seektable_; if(!blockcopy.is_valid()) return die_("!block.is_valid()"); if(!(blockcopy == seektable_)) return die_("copy is not identical to original"); printf("OK\n"); } printf("testing SeekTable::insert_point() x 3... "); if(!block.insert_point(0, seektable_.data.seek_table.points[1])) return die_("returned false"); if(!block.insert_point(0, seektable_.data.seek_table.points[1])) return die_("returned false"); if(!block.insert_point(1, seektable_.data.seek_table.points[0])) return die_("returned false"); printf("OK\n"); printf("testing SeekTable::is_legal()... "); if(block.is_legal()) return die_("returned true"); printf("OK\n"); printf("testing SeekTable::set_point()... "); block.set_point(0, seektable_.data.seek_table.points[0]); printf("OK\n"); printf("testing SeekTable::delete_point()... "); if(!block.delete_point(0)) return die_("returned false"); printf("OK\n"); printf("testing SeekTable::is_legal()... "); if(!block.is_legal()) return die_("returned false"); printf("OK\n"); printf("testing SeekTable::get_num_points()... "); if(block.get_num_points() != seektable_.data.seek_table.num_points) return die_("number mismatch"); printf("OK\n"); printf("testing SeekTable::operator!=(const ::FLAC__StreamMetadata &)... "); if(block != seektable_) return die_("data mismatch"); printf("OK\n"); printf("testing SeekTable::get_point()... "); if( block.get_point(1).sample_number != seektable_.data.seek_table.points[1].sample_number || block.get_point(1).stream_offset != seektable_.data.seek_table.points[1].stream_offset || block.get_point(1).frame_samples != seektable_.data.seek_table.points[1].frame_samples ) return die_("point mismatch"); printf("OK\n"); printf("testing FLAC::Metadata::clone(const FLAC::Metadata::Prototype *)... "); FLAC::Metadata::Prototype *clone_ = FLAC::Metadata::clone(&block); if(0 == clone_) return die_("returned NULL"); if(0 == dynamic_cast<FLAC::Metadata::SeekTable *>(clone_)) return die_("downcast is NULL"); if(*dynamic_cast<FLAC::Metadata::SeekTable *>(clone_) != block) return die_("clone is not identical"); printf("OK\n"); printf("testing SeekTable::~SeekTable()... "); delete clone_; printf("OK\n"); printf("PASSED\n\n"); return true;}bool test_metadata_object_vorbiscomment(){ unsigned expected_length; printf("testing class FLAC::Metadata::VorbisComment::Entry\n"); printf("testing Entry::Entry()... "); { FLAC::Metadata::VorbisComment::Entry entry1; if(!entry1.is_valid()) return die_("!is_valid()"); printf("OK\n"); printf("testing Entry::~Entry()... "); } printf("OK\n"); printf("testing Entry::Entry(const char *field, unsigned field_length)... "); FLAC::Metadata::VorbisComment::Entry entry2("name2=value2", strlen("name2=value2")); if(!entry2.is_valid()) return die_("!is_valid()"); printf("OK\n"); { printf("testing Entry::Entry(const char *field)... "); FLAC::Metadata::VorbisComment::Entry entry2z("name2=value2"); if(!entry2z.is_valid()) return die_("!is_valid()"); if(strcmp(entry2.get_field(), entry2z.get_field())) return die_("bad value"); printf("OK\n"); } printf("testing Entry::Entry(const char *field_name, const char *field_value, unsigned field_value_length)... "); FLAC::Metadata::VorbisComment::Entry entry3("name3", "value3", strlen("value3")); if(!entry3.is_valid()) return die_("!is_valid()"); printf("OK\n"); { printf("testing Entry::Entry(const char *field_name, const char *field_value)... "); FLAC::Metadata::VorbisComment::Entry entry3z("name3", "value3"); if(!entry3z.is_valid()) return die_("!is_valid()"); if(strcmp(entry3.get_field(), entry3z.get_field())) return die_("bad value"); printf("OK\n"); } printf("testing Entry::Entry(const Entry &entry)... "); { FLAC::Metadata::VorbisComment::Entry entry2copy(entry2); if(!entry2copy.is_valid()) return die_("!is_valid()"); printf("OK\n"); printf("testing Entry::~Entry()... "); } printf("OK\n"); printf("testing Entry::operator=(const Entry &entry)... "); FLAC::Metadata::VorbisComment::Entry entry1 = entry2; if(!entry2.is_valid()) return die_("!is_valid()"); printf("OK\n"); printf("testing Entry::get_field_length()... "); if(entry1.get_field_length() != strlen("name2=value2")) return die_("value mismatch"); printf("OK\n"); printf("testing Entry::get_field_name_length()... "); if(entry1.get_field_name_length() != strlen("name2")) return die_("value mismatch"); printf("OK\n"); printf("testing Entry::get_field_value_length()... "); if(entry1.get_field_value_length() != strlen("value2")) return die_("value mismatch"); printf("OK\n"); printf("testing Entry::get_entry()... "); { ::FLAC__StreamMetadata_VorbisComment_Entry entry = entry1.get_entry(); if(entry.length != strlen("name2=value2")) return die_("entry length mismatch"); if(0 != memcmp(entry.entry, "name2=value2", entry.length)) return die_("entry value mismatch"); } printf("OK\n"); printf("testing Entry::get_field()... "); if(0 != memcmp(entry1.get_field(), "name2=value2", strlen("name2=value2"))) return die_("value mismatch"); printf("OK\n"); printf("testing Entry::get_field_name()... "); if(0 != memcmp(entry1.get_field_name(), "name2", strlen("name2"))) return die_("value mismatch"); printf("OK\n"); printf("testing Entry::get_field_value()... "); if(0 != memcmp(entry1.get_field_value(), "value2", strlen("value2"))) return die_("value mismatch"); printf("OK\n"); printf("testing Entry::set_field_name()... "); if(!entry1.set_field_name("name1"))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -