Add kernel utility utest

pull/1304/head
winlin 6 years ago
parent 6e44aa4a4f
commit a2d6566019

@ -436,6 +436,11 @@ vector<string> srs_string_split(string str, string flag)
{
vector<string> arr;
if (flag.empty()) {
arr.push_back(str);
return arr;
}
size_t pos;
string s = str;
@ -457,6 +462,10 @@ string srs_string_min_match(string str, vector<string> flags)
{
string match;
if (flags.empty()) {
return str;
}
size_t min_pos = string::npos;
for (vector<string>::iterator it = flags.begin(); it != flags.end(); ++it) {
string flag = *it;
@ -650,6 +659,10 @@ string srs_path_filext(string path)
bool srs_avc_startswith_annexb(SrsBuffer* stream, int* pnb_start_code)
{
if (!stream) {
return false;
}
char* bytes = stream->data() + stream->pos();
char* p = bytes;
@ -679,6 +692,10 @@ bool srs_avc_startswith_annexb(SrsBuffer* stream, int* pnb_start_code)
bool srs_aac_startswith_adts(SrsBuffer* stream)
{
if (!stream) {
return false;
}
char* bytes = stream->data() + stream->pos();
char* p = bytes;

@ -1728,5 +1728,258 @@ VOID TEST(KernelUtility, StringToHex)
}
}
VOID TEST(KernelUtility, StringUtils)
{
if (true) {
EXPECT_TRUE("srs" == srs_string_replace("srsx", "x", ""));
EXPECT_TRUE("srs" == srs_string_replace("srs", "", ""));
EXPECT_TRUE("srs" == srs_string_replace("sxs", "x", "r"));
EXPECT_TRUE("srs" == srs_string_replace("xrx", "x", "s"));
EXPECT_TRUE("srs" == srs_string_replace("xyrxy", "xy", "s"));
EXPECT_TRUE("srs" == srs_string_replace("sxys", "xy", "r"));
}
if (true) {
EXPECT_TRUE("srs" == srs_string_trim_end("srs", ""));
EXPECT_TRUE("srs" == srs_string_trim_end("srsx", "x"));
EXPECT_TRUE("srs" == srs_string_trim_end("srsxx", "x"));
EXPECT_TRUE("srs" == srs_string_trim_end("srsxy", "xy"));
EXPECT_TRUE("srs" == srs_string_trim_end("srsx ", "x "));
EXPECT_TRUE("srs" == srs_string_trim_end("srsx yx", "x y"));
EXPECT_TRUE("srs" == srs_string_trim_end("srsx yxy", "x y"));
}
if (true) {
EXPECT_TRUE("srs" == srs_string_trim_start("srs", ""));
EXPECT_TRUE("srs" == srs_string_trim_start("xsrs", "x"));
EXPECT_TRUE("srs" == srs_string_trim_start("xxsrs", "x"));
EXPECT_TRUE("srs" == srs_string_trim_start("xysrs", "xy"));
EXPECT_TRUE("srs" == srs_string_trim_start("x srs", "x "));
EXPECT_TRUE("srs" == srs_string_trim_start("x yxsrs", "x y"));
EXPECT_TRUE("srs" == srs_string_trim_start("x yxysrs", "x y"));
}
if (true) {
EXPECT_TRUE("srs" == srs_string_remove("srs", ""));
EXPECT_TRUE("srs" == srs_string_remove("xsrs", "x"));
EXPECT_TRUE("srs" == srs_string_remove("xsrsx", "x"));
EXPECT_TRUE("srs" == srs_string_remove("xsxrsx", "x"));
EXPECT_TRUE("srs" == srs_string_remove("yxsxrsx", "xy"));
EXPECT_TRUE("srs" == srs_string_remove("yxsxrysx", "xy"));
}
if (true) {
EXPECT_TRUE("srs" == srs_erase_first_substr("srs", ""));
EXPECT_TRUE("srs" == srs_erase_first_substr("xsrs", "x"));
EXPECT_TRUE("srs" == srs_erase_first_substr("srssrs", "srs"));
}
if (true) {
EXPECT_TRUE("srs" == srs_erase_last_substr("srs", ""));
EXPECT_TRUE("srs" == srs_erase_last_substr("srsx", "x"));
EXPECT_TRUE("srs" == srs_erase_last_substr("srssrs", "srs"));
}
if (true) {
EXPECT_TRUE(srs_string_ends_with("srs", "s"));
EXPECT_TRUE(srs_string_ends_with("srs", "rs"));
EXPECT_TRUE(srs_string_ends_with("srs", "srs"));
EXPECT_TRUE(!srs_string_ends_with("srs", "x"));
EXPECT_TRUE(!srs_string_ends_with("srs", "srx"));
EXPECT_TRUE(srs_string_ends_with("srs", "r", "s"));
EXPECT_TRUE(srs_string_ends_with("srs", "sr", "s"));
EXPECT_TRUE(srs_string_ends_with("srs", "x", "r", "s"));
EXPECT_TRUE(srs_string_ends_with("srs", "y", "x", "r", "s"));
EXPECT_TRUE(!srs_string_ends_with("srs", "x", "y", "z", "srx"));
}
if (true) {
EXPECT_TRUE(srs_string_starts_with("srs", "s"));
EXPECT_TRUE(srs_string_starts_with("srs", "sr"));
EXPECT_TRUE(srs_string_starts_with("srs", "srs"));
EXPECT_TRUE(!srs_string_starts_with("srs", "x"));
EXPECT_TRUE(srs_string_starts_with("srs", "r", "s"));
EXPECT_TRUE(srs_string_starts_with("srs", "sr", "s"));
EXPECT_TRUE(srs_string_starts_with("srs", "x", "r", "s"));
EXPECT_TRUE(srs_string_starts_with("srs", "y", "x", "r", "s"));
EXPECT_TRUE(!srs_string_starts_with("srs", "x", "y", "z", "srx"));
}
if (true) {
EXPECT_TRUE(srs_string_contains("srs", "s"));
EXPECT_TRUE(srs_string_contains("srs", "s", "sr"));
EXPECT_TRUE(srs_string_contains("srs", "s", "sr", "srs"));
}
if (true) {
vector<string> flags;
EXPECT_TRUE("srs" == srs_string_min_match("srs", flags));
}
if (true) {
vector<string> flags;
flags.push_back("s");
EXPECT_TRUE("s" == srs_string_min_match("srs", flags));
}
if (true) {
vector<string> flags;
flags.push_back("sr");
EXPECT_TRUE("sr" == srs_string_min_match("srs", flags));
}
if (true) {
vector<string> flags;
flags.push_back("rs");
EXPECT_TRUE("rs" == srs_string_min_match("srs", flags));
}
if (true) {
vector<string> flags;
flags.push_back("x"); flags.push_back("rs");
EXPECT_TRUE("rs" == srs_string_min_match("srs", flags));
}
if (true) {
vector<string> flags;
flags.push_back("x");
EXPECT_TRUE("" == srs_string_min_match("srs", flags));
}
if (true) {
EXPECT_TRUE("srs" == srs_string_split("srs", "").at(0));
EXPECT_TRUE("s" == srs_string_split("srs", "r").at(0));
EXPECT_TRUE("s" == srs_string_split("srs", "rs").at(0));
}
}
VOID TEST(KernelUtility, BytesUtils)
{
if (true) {
EXPECT_TRUE(srs_bytes_equals(NULL, NULL, 0));
EXPECT_TRUE(srs_bytes_equals((void*)"s", (void*)"s", 0));
EXPECT_TRUE(srs_bytes_equals((void*)"s", (void*)"s", 1));
EXPECT_TRUE(srs_bytes_equals((void*)"s", (void*)"srs", 1));
EXPECT_TRUE(!srs_bytes_equals((void*)"xrs", (void*)"srs", 3));
}
}
VOID TEST(KernelUtility, PathUtils)
{
if (true) {
EXPECT_TRUE("" == srs_path_dirname(""));
EXPECT_TRUE("/" == srs_path_dirname("/"));
EXPECT_TRUE("/" == srs_path_dirname("//"));
EXPECT_TRUE("/" == srs_path_dirname("/stream"));
EXPECT_TRUE("live" == srs_path_dirname("live/stream"));
}
if (true) {
EXPECT_TRUE("" == srs_path_basename(""));
EXPECT_TRUE("/" == srs_path_basename("/"));
EXPECT_TRUE("stream" == srs_path_basename("/stream"));
EXPECT_TRUE("stream" == srs_path_basename("live/stream"));
EXPECT_TRUE("stream.flv" == srs_path_basename("live/stream.flv"));
}
if (true) {
EXPECT_TRUE("" == srs_path_filename(""));
EXPECT_TRUE("stream" == srs_path_filename("stream.flv"));
}
if (true) {
EXPECT_TRUE("" == srs_path_filext(""));
EXPECT_TRUE(".flv" == srs_path_filext("stream.flv"));
}
}
VOID TEST(KernelUtility, AnnexbUtils)
{
if (true) {
EXPECT_TRUE(!srs_avc_startswith_annexb(NULL, NULL));
SrsBuffer buf;
EXPECT_TRUE(!srs_avc_startswith_annexb(&buf, NULL));
}
if (true) {
char data[] = {0x00};
SrsBuffer buf((char*)data, sizeof(data));
EXPECT_TRUE(!srs_avc_startswith_annexb(&buf, NULL));
}
if (true) {
char data[] = {0x00, 0x00};
SrsBuffer buf((char*)data, sizeof(data));
EXPECT_TRUE(!srs_avc_startswith_annexb(&buf, NULL));
}
if (true) {
char data[] = {0x00, 0x00, 0x02};
SrsBuffer buf((char*)data, sizeof(data));
EXPECT_TRUE(!srs_avc_startswith_annexb(&buf, NULL));
}
if (true) {
char data[] = {0x00, 0x00, 0x01};
SrsBuffer buf((char*)data, sizeof(data));
EXPECT_TRUE(srs_avc_startswith_annexb(&buf, NULL));
}
if (true) {
char data[] = {0x00, 0x01, 0x00, 00};
SrsBuffer buf((char*)data, sizeof(data));
EXPECT_TRUE(!srs_avc_startswith_annexb(&buf, NULL));
}
if (true) {
char data[] = {0x00, 0x00, 0x01};
SrsBuffer buf((char*)data, sizeof(data));
int start;
EXPECT_TRUE(srs_avc_startswith_annexb(&buf, &start));
EXPECT_EQ(3, start);
}
if (true) {
char data[] = {0x00, 0x00, 0x00, 0x01};
SrsBuffer buf((char*)data, sizeof(data));
int start;
EXPECT_TRUE(srs_avc_startswith_annexb(&buf, &start));
EXPECT_EQ(4, start);
}
}
VOID TEST(KernelUtility, AdtsUtils)
{
if (true) {
EXPECT_TRUE(!srs_aac_startswith_adts(NULL));
SrsBuffer buf;
EXPECT_TRUE(!srs_aac_startswith_adts(&buf));
}
if (true) {
char data[] = {0x00};
SrsBuffer buf((char*)data, sizeof(data));
EXPECT_TRUE(!srs_aac_startswith_adts(&buf));
}
if (true) {
char data[] = {0xFF, 0x00};
SrsBuffer buf((char*)data, sizeof(data));
EXPECT_TRUE(!srs_aac_startswith_adts(&buf));
}
if (true) {
char data[] = {0xFF, 0xF0};
SrsBuffer buf((char*)data, sizeof(data));
EXPECT_TRUE(srs_aac_startswith_adts(&buf));
}
}
#endif

Loading…
Cancel
Save