mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
Cover AMF0 codec. 3.0.61
This commit is contained in:
parent
f8943f8f7d
commit
99ca2b9567
1 changed files with 115 additions and 3 deletions
|
@ -32,6 +32,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include <srs_core_autofree.hpp>
|
||||
#include <srs_protocol_json.hpp>
|
||||
#include <srs_kernel_buffer.hpp>
|
||||
using namespace _srs_internal;
|
||||
|
||||
#include <string>
|
||||
using namespace std;
|
||||
|
@ -477,6 +478,62 @@ VOID TEST(ProtocolAMF0Test, InterfacesObject)
|
|||
SrsAmf0Any* cp = p->copy();
|
||||
EXPECT_TRUE(NULL != cp->to_object());
|
||||
}
|
||||
|
||||
if (true) {
|
||||
SrsBuffer b;
|
||||
SrsAmf0Object* o = SrsAmf0Any::object();
|
||||
HELPER_EXPECT_FAILED(o->read(&b));
|
||||
srs_freep(o);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
SrsBuffer b;
|
||||
SrsAmf0Object* o = SrsAmf0Any::object();
|
||||
HELPER_EXPECT_FAILED(o->write(&b));
|
||||
srs_freep(o);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
uint8_t data[] = {0x01};
|
||||
SrsBuffer b((char*)data, sizeof(data));
|
||||
SrsAmf0Object* o = SrsAmf0Any::object();
|
||||
HELPER_EXPECT_FAILED(o->read(&b));
|
||||
srs_freep(o);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
uint8_t data[] = {0x00};
|
||||
SrsBuffer b((char*)data, sizeof(data));
|
||||
SrsAmf0Object* o = SrsAmf0Any::object();
|
||||
o->set("id", SrsAmf0Any::number(3.0));
|
||||
HELPER_EXPECT_FAILED(o->write(&b));
|
||||
srs_freep(o);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
uint8_t data[] = {0x03, 0x00, 0x01};
|
||||
SrsBuffer b((char*)data, sizeof(data));
|
||||
SrsAmf0Object* o = SrsAmf0Any::object();
|
||||
HELPER_EXPECT_FAILED(o->read(&b));
|
||||
srs_freep(o);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
uint8_t data[] = {0x00, 0x00, 0x02, 'i', 'd', 0x02, 0x00, 0x03, 's', 'r', 's'};
|
||||
SrsBuffer b((char*)data, sizeof(data));
|
||||
SrsAmf0Object* o = SrsAmf0Any::object();
|
||||
o->set("id", SrsAmf0Any::str("srs"));
|
||||
HELPER_EXPECT_FAILED(o->write(&b));
|
||||
srs_freep(o);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
uint8_t data[] = {0x03, 0x00, 0x01, 'a'};
|
||||
SrsBuffer b((char*)data, sizeof(data));
|
||||
SrsAmf0Object* o = SrsAmf0Any::object();
|
||||
HELPER_EXPECT_FAILED(o->read(&b));
|
||||
srs_freep(o);
|
||||
}
|
||||
}
|
||||
|
||||
VOID TEST(ProtocolAMF0Test, InterfacesObject2)
|
||||
|
@ -490,6 +547,7 @@ VOID TEST(ProtocolAMF0Test, InterfacesObject2)
|
|||
|
||||
o->set("version", SrsAmf0Any::number(3.0));
|
||||
o->set("name", SrsAmf0Any::str("srs"));
|
||||
EXPECT_STREQ("version", o->key_raw_at(0));
|
||||
|
||||
SrsAmf0Any* prop = o->get_property("version");
|
||||
EXPECT_TRUE(prop->is_number());
|
||||
|
@ -507,6 +565,10 @@ VOID TEST(ProtocolAMF0Test, InterfacesObject2)
|
|||
char* s = p->human_print(NULL, NULL);
|
||||
EXPECT_TRUE(s != NULL);
|
||||
srs_freepa(s);
|
||||
|
||||
SrsJsonAny* j = o->to_json();
|
||||
EXPECT_TRUE(j != NULL);
|
||||
srs_freep(j);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
|
@ -605,6 +667,56 @@ VOID TEST(ProtocolAMF0Test, InterfacesObjectEOF)
|
|||
|
||||
b.skip(-1 * b.pos());
|
||||
HELPER_EXPECT_SUCCESS(pp->read(&b));
|
||||
|
||||
// For copy.
|
||||
SrsAmf0Any* cp = p->copy();
|
||||
EXPECT_TRUE(cp->is_object_eof());
|
||||
}
|
||||
|
||||
if (true) {
|
||||
SrsBuffer b;
|
||||
SrsAmf0ObjectEOF* o = new SrsAmf0ObjectEOF();
|
||||
HELPER_EXPECT_FAILED(o->read(&b));
|
||||
srs_freep(o);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
SrsBuffer b;
|
||||
SrsAmf0ObjectEOF* o = new SrsAmf0ObjectEOF();
|
||||
HELPER_EXPECT_FAILED(o->write(&b));
|
||||
srs_freep(o);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
uint8_t data[] = {0x00, 0x01};
|
||||
SrsBuffer b((char*)data, sizeof(data));
|
||||
SrsAmf0ObjectEOF* o = new SrsAmf0ObjectEOF();
|
||||
HELPER_EXPECT_FAILED(o->read(&b));
|
||||
srs_freep(o);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
uint8_t data[] = {0x00, 0x01};
|
||||
SrsBuffer b((char*)data, sizeof(data));
|
||||
SrsAmf0ObjectEOF* o = new SrsAmf0ObjectEOF();
|
||||
HELPER_EXPECT_FAILED(o->write(&b));
|
||||
srs_freep(o);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
uint8_t data[] = {0x00, 0x00};
|
||||
SrsBuffer b((char*)data, sizeof(data));
|
||||
SrsAmf0ObjectEOF* o = new SrsAmf0ObjectEOF();
|
||||
HELPER_EXPECT_FAILED(o->read(&b));
|
||||
srs_freep(o);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
uint8_t data[] = {0x00, 0x00, 0x01};
|
||||
SrsBuffer b((char*)data, sizeof(data));
|
||||
SrsAmf0ObjectEOF* o = new SrsAmf0ObjectEOF();
|
||||
HELPER_EXPECT_FAILED(o->read(&b));
|
||||
srs_freep(o);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -784,14 +896,14 @@ VOID TEST(ProtocolAMF0Test, InterfacesError)
|
|||
SrsAmf0Object* src = SrsAmf0Any::object();
|
||||
SrsAutoFree(SrsAmf0Object, src);
|
||||
|
||||
src->set("name", SrsAmf0Any::str("srs"));
|
||||
src->set("name", SrsAmf0Any::number(3.0));
|
||||
|
||||
SrsAmf0Any* cp = src->copy();
|
||||
SrsAutoFree(SrsAmf0Any, cp);
|
||||
|
||||
SrsAmf0Object* o = cp->to_object();
|
||||
|
||||
o->set("name", SrsAmf0Any::str("srs"));
|
||||
o->set("name", SrsAmf0Any::number(3.0));
|
||||
|
||||
SrsAmf0Any* prop;
|
||||
prop = o->ensure_property_number("id");
|
||||
EXPECT_TRUE(prop == NULL);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue