mirror of
https://github.com/ossrs/srs.git
synced 2025-02-13 03:41:55 +00:00
Add kernel utility utest
This commit is contained in:
parent
6e44aa4a4f
commit
a2d6566019
2 changed files with 270 additions and 0 deletions
|
@ -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…
Reference in a new issue