mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2024-12-28 13:57:22 +00:00
79 lines
1.8 KiB
C++
79 lines
1.8 KiB
C++
/*
|
|
mkvmerge -- utility for splicing together matroska files
|
|
from component media subtypes
|
|
|
|
Distributed under the GPL
|
|
see the file COPYING for details
|
|
or visit http://www.gnu.org/copyleft/gpl.html
|
|
|
|
definitions for helper functions for unit tests
|
|
|
|
Written by Moritz Bunkus <moritz@bunkus.org>.
|
|
*/
|
|
|
|
#ifndef MTX_TESTS_UNIT_UTIL_H
|
|
#define MTX_TESTS_UNIT_UTIL_H
|
|
|
|
#include "common/common_pch.h"
|
|
|
|
#include <ebml/EbmlElement.h>
|
|
|
|
#include "gtest/gtest.h"
|
|
#include "common/strings/formatting.h"
|
|
|
|
#define ASSERT_EBML_EQ(a, b) ASSERT_PRED_FORMAT2(EbmlEquals, (a), (b))
|
|
#define EXPECT_EBML_EQ(a, b) EXPECT_PRED_FORMAT2(EbmlEquals, (a), (b))
|
|
|
|
namespace mtxut {
|
|
|
|
using namespace libebml;
|
|
|
|
void dump(EbmlElement *element, bool with_values = false, unsigned int level = 0);
|
|
|
|
::testing::AssertionResult EbmlEquals(char const *a_expr, char const *b_expr, EbmlElement &a, EbmlElement &b);
|
|
|
|
class ebml_equals_c {
|
|
private:
|
|
std::vector<std::string> m_path;
|
|
std::string m_error;
|
|
|
|
public:
|
|
ebml_equals_c();
|
|
|
|
bool compare_impl(EbmlElement &a, EbmlElement &b);
|
|
std::string get_error() const;
|
|
bool set_error(std::string const &error, EbmlElement *cmp = nullptr);
|
|
bool set_error(boost::format const &error, EbmlElement *cmp = nullptr);
|
|
|
|
public:
|
|
static bool check(EbmlElement &a, EbmlElement &b, std::string &error);
|
|
};
|
|
|
|
}
|
|
|
|
inline bool
|
|
operator ==(memory_c const &a,
|
|
std::string const &b) {
|
|
return (a.get_size() == b.length()) && !memcmp(a.get_buffer(), b.c_str(), b.length());
|
|
}
|
|
|
|
inline bool
|
|
operator ==(std::string const &a,
|
|
memory_c const &b) {
|
|
return b == a;
|
|
}
|
|
|
|
inline bool
|
|
operator ==(memory_cptr const &a,
|
|
std::string const &b) {
|
|
return *a == b;
|
|
}
|
|
|
|
inline bool
|
|
operator ==(std::string const &a,
|
|
memory_cptr const &b) {
|
|
return *b == a;
|
|
}
|
|
|
|
#endif // MTX_TESTS_UNIT_UTIL_H
|