1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

Cover Kbps statistic

This commit is contained in:
winlin 2019-01-01 18:22:11 +08:00
parent 6e9c7dd11e
commit 6e44aa4a4f
2 changed files with 46 additions and 2 deletions

View file

@ -181,7 +181,7 @@ private:
SrsKbpsSlice os; SrsKbpsSlice os;
SrsWallClock* clk; SrsWallClock* clk;
public: public:
// We will free the clock c. // We won't free the clock c.
SrsKbps(SrsWallClock* c); SrsKbps(SrsWallClock* c);
virtual ~SrsKbps(); virtual ~SrsKbps();
public: public:

View file

@ -5929,7 +5929,6 @@ VOID TEST(ProtocolKbpsTest, RAWStatistic)
SrsAutoFree(SrsKbps, conn); SrsAutoFree(SrsKbps, conn);
conn->set_io(io, io); conn->set_io(io, io);
// Kbps without io, gather delta.
SrsKbps* kbps = new SrsKbps(clock->set_clock(0)); SrsKbps* kbps = new SrsKbps(clock->set_clock(0));
SrsAutoFree(SrsKbps, kbps); SrsAutoFree(SrsKbps, kbps);
kbps->set_io(conn, conn); kbps->set_io(conn, conn);
@ -5958,6 +5957,51 @@ VOID TEST(ProtocolKbpsTest, RAWStatistic)
EXPECT_EQ(800, kbps->get_send_kbps_30s()); EXPECT_EQ(800, kbps->get_send_kbps_30s());
EXPECT_EQ(0, kbps->get_send_kbps_5m()); EXPECT_EQ(0, kbps->get_send_kbps_5m());
} }
if (true) {
MockWallClock* clock = new MockWallClock();
SrsAutoFree(MockWallClock, clock);
SrsKbps* kbps = new SrsKbps(clock->set_clock(0));
SrsAutoFree(SrsKbps, kbps);
// No io, no data.
kbps->set_io(NULL, NULL);
EXPECT_EQ(0, kbps->get_recv_bytes());
EXPECT_EQ(0, kbps->get_send_bytes());
// With io, zero data.
MockStatistic* io = new MockStatistic();
SrsAutoFree(MockStatistic, io);
kbps->set_io(io, io);
EXPECT_EQ(0, kbps->get_recv_bytes());
EXPECT_EQ(0, kbps->get_send_bytes());
// With io with data.
io->set_in(100 * 1000)->set_out(100 * 1000);
EXPECT_EQ(100 * 1000, kbps->get_recv_bytes());
EXPECT_EQ(100 * 1000, kbps->get_send_bytes());
// No io, cached data.
kbps->set_io(NULL, NULL);
EXPECT_EQ(100 * 1000, kbps->get_recv_bytes());
EXPECT_EQ(100 * 1000, kbps->get_send_bytes());
// Use the same IO, but as a fresh io.
kbps->set_io(io, io);
EXPECT_EQ(100 * 1000, kbps->get_recv_bytes());
EXPECT_EQ(100 * 1000, kbps->get_send_bytes());
io->set_in(150 * 1000)->set_out(150 * 1000);
EXPECT_EQ(150 * 1000, kbps->get_recv_bytes());
EXPECT_EQ(150 * 1000, kbps->get_send_bytes());
// No io, cached data.
kbps->set_io(NULL, NULL);
EXPECT_EQ(150 * 1000, kbps->get_recv_bytes());
EXPECT_EQ(150 * 1000, kbps->get_send_bytes());
}
} }
#endif #endif