Lines Matching full:stats
11 #include "api/stats/rtc_stats.h"
20 #include "stats/test/rtc_test_stats.h"
52 WEBRTC_RTCSTATS_IMPL(RTCChildStats, RTCStats, "child-stats", &child_int)
66 "grandchild-stats",
70 RTCTestStats stats("testId", 42); in TEST() local
71 EXPECT_EQ(stats.id(), "testId"); in TEST()
72 EXPECT_EQ(stats.timestamp_us(), static_cast<int64_t>(42)); in TEST()
73 std::vector<const RTCStatsMemberInterface*> members = stats.Members(); in TEST()
78 stats.m_bool = true; in TEST()
79 stats.m_int32 = 123; in TEST()
80 stats.m_uint32 = 123; in TEST()
81 stats.m_int64 = 123; in TEST()
82 stats.m_uint64 = 123; in TEST()
83 stats.m_double = 123.0; in TEST()
84 stats.m_string = std::string("123"); in TEST()
104 stats.m_sequence_bool = sequence_bool; in TEST()
105 stats.m_sequence_int32 = sequence_int32; in TEST()
106 stats.m_sequence_uint32 = sequence_uint32; in TEST()
107 EXPECT_FALSE(stats.m_sequence_int64.is_defined()); in TEST()
108 stats.m_sequence_int64 = sequence_int64; in TEST()
109 stats.m_sequence_uint64 = sequence_uint64; in TEST()
110 stats.m_sequence_double = sequence_double; in TEST()
111 stats.m_sequence_string = sequence_string; in TEST()
112 stats.m_map_string_uint64 = map_string_uint64; in TEST()
113 stats.m_map_string_double = map_string_double; in TEST()
117 EXPECT_EQ(*stats.m_bool, true); in TEST()
118 EXPECT_EQ(*stats.m_int32, static_cast<int32_t>(123)); in TEST()
119 EXPECT_EQ(*stats.m_uint32, static_cast<uint32_t>(123)); in TEST()
120 EXPECT_EQ(*stats.m_int64, static_cast<int64_t>(123)); in TEST()
121 EXPECT_EQ(*stats.m_uint64, static_cast<uint64_t>(123)); in TEST()
122 EXPECT_EQ(*stats.m_double, 123.0); in TEST()
123 EXPECT_EQ(*stats.m_string, std::string("123")); in TEST()
124 EXPECT_EQ(*stats.m_sequence_bool, sequence_bool); in TEST()
125 EXPECT_EQ(*stats.m_sequence_int32, sequence_int32); in TEST()
126 EXPECT_EQ(*stats.m_sequence_uint32, sequence_uint32); in TEST()
127 EXPECT_EQ(*stats.m_sequence_int64, sequence_int64); in TEST()
128 EXPECT_EQ(*stats.m_sequence_uint64, sequence_uint64); in TEST()
129 EXPECT_EQ(*stats.m_sequence_double, sequence_double); in TEST()
130 EXPECT_EQ(*stats.m_sequence_string, sequence_string); in TEST()
131 EXPECT_EQ(*stats.m_map_string_uint64, map_string_uint64); in TEST()
132 EXPECT_EQ(*stats.m_map_string_double, map_string_double); in TEST()
136 stats.m_sequence_int32->clear(); in TEST()
137 stats.m_sequence_int32->insert(stats.m_sequence_int32->end(), in TEST()
140 EXPECT_EQ(*stats.m_sequence_int32, numbers_sequence); in TEST()
215 RTCGrandChildStats stats("grandchild", 0.0); in TEST() local
216 stats.child_int = 1; in TEST()
217 stats.grandchild_int = 2; in TEST()
219 for (const RTCStatsMemberInterface* member : stats.Members()) { in TEST()
224 std::unique_ptr<RTCStats> copy_ptr = stats.copy(); in TEST()
226 EXPECT_EQ(*copy.child_int, *stats.child_int); in TEST()
227 EXPECT_EQ(*copy.grandchild_int, *stats.grandchild_int); in TEST()
257 RTCTestStats stats(id, timestamp); in TEST() local
258 stats.m_bool = m_bool; in TEST()
259 stats.m_int32 = m_int32; in TEST()
260 stats.m_int64 = m_int64; in TEST()
261 stats.m_double = m_double; in TEST()
262 stats.m_string = m_string; in TEST()
263 stats.m_sequence_bool = sequence_bool; in TEST()
264 stats.m_sequence_int32 = sequence_int32; in TEST()
265 stats.m_sequence_int64 = sequence_int64; in TEST()
266 stats.m_sequence_double = sequence_double; in TEST()
267 stats.m_sequence_string = sequence_string; in TEST()
268 stats.m_map_string_uint64 = map_string_uint64; in TEST()
269 stats.m_map_string_double = map_string_double; in TEST()
270 std::string json_stats = stats.ToJson(); in TEST()
314 EXPECT_EQ(id, stats.id()); in TEST()
315 EXPECT_EQ(timestamp, stats.timestamp_us()); in TEST()
316 EXPECT_EQ(m_bool, *stats.m_bool); in TEST()
317 EXPECT_EQ(m_int32, *stats.m_int32); in TEST()
318 EXPECT_EQ(m_string, *stats.m_string); in TEST()
319 EXPECT_EQ(sequence_bool, *stats.m_sequence_bool); in TEST()
320 EXPECT_EQ(sequence_int32, *stats.m_sequence_int32); in TEST()
321 EXPECT_EQ(sequence_string, *stats.m_sequence_string); in TEST()
322 EXPECT_EQ(map_string_double, *stats.m_map_string_double); in TEST()
324 EXPECT_NEAR(m_double, *stats.m_double, GetExpectedError(*stats.m_double)); in TEST()
326 EXPECT_EQ(sequence_double.size(), stats.m_sequence_double->size()); in TEST()
327 for (size_t i = 0; i < stats.m_sequence_double->size(); ++i) { in TEST()
328 EXPECT_NEAR(sequence_double[i], stats.m_sequence_double->at(i), in TEST()
329 GetExpectedError(stats.m_sequence_double->at(i))); in TEST()
332 EXPECT_EQ(map_string_double.size(), stats.m_map_string_double->size()); in TEST()
334 auto it = stats.m_map_string_double->find(entry.first); in TEST()
335 EXPECT_NE(it, stats.m_map_string_double->end()); in TEST()
352 double stats_m_int64_as_double = static_cast<double>(*stats.m_int64); in TEST()
356 EXPECT_EQ(sequence_int64_as_double.size(), stats.m_sequence_int64->size()); in TEST()
357 for (size_t i = 0; i < stats.m_sequence_int64->size(); ++i) { in TEST()
359 static_cast<double>((*stats.m_sequence_int64)[i]); in TEST()
369 static_cast<double>((*stats.m_map_string_uint64)[entry.first]); in TEST()
377 // Neither stats.m_uint32 nor stats.m_uint64 are defined, so "mUint64" and in TEST()
381 EXPECT_FALSE(stats.m_uint32.is_defined()); in TEST()
382 EXPECT_FALSE(stats.m_uint64.is_defined()); in TEST()
386 std::cout << stats.ToJson() << std::endl; in TEST()
397 RTCTestStats stats("statsId", 42); in TEST() local
398 EXPECT_FALSE(stats.m_bool.is_sequence()); in TEST()
399 EXPECT_FALSE(stats.m_int32.is_sequence()); in TEST()
400 EXPECT_FALSE(stats.m_uint32.is_sequence()); in TEST()
401 EXPECT_FALSE(stats.m_int64.is_sequence()); in TEST()
402 EXPECT_FALSE(stats.m_uint64.is_sequence()); in TEST()
403 EXPECT_FALSE(stats.m_double.is_sequence()); in TEST()
404 EXPECT_FALSE(stats.m_string.is_sequence()); in TEST()
405 EXPECT_TRUE(stats.m_sequence_bool.is_sequence()); in TEST()
406 EXPECT_TRUE(stats.m_sequence_int32.is_sequence()); in TEST()
407 EXPECT_TRUE(stats.m_sequence_uint32.is_sequence()); in TEST()
408 EXPECT_TRUE(stats.m_sequence_int64.is_sequence()); in TEST()
409 EXPECT_TRUE(stats.m_sequence_uint64.is_sequence()); in TEST()
410 EXPECT_TRUE(stats.m_sequence_double.is_sequence()); in TEST()
411 EXPECT_TRUE(stats.m_sequence_string.is_sequence()); in TEST()
412 EXPECT_FALSE(stats.m_map_string_uint64.is_sequence()); in TEST()
413 EXPECT_FALSE(stats.m_map_string_double.is_sequence()); in TEST()
417 RTCTestStats stats("statsId", 42); in TEST() local
418 EXPECT_EQ(RTCStatsMemberInterface::kBool, stats.m_bool.type()); in TEST()
419 EXPECT_EQ(RTCStatsMemberInterface::kInt32, stats.m_int32.type()); in TEST()
420 EXPECT_EQ(RTCStatsMemberInterface::kUint32, stats.m_uint32.type()); in TEST()
421 EXPECT_EQ(RTCStatsMemberInterface::kInt64, stats.m_int64.type()); in TEST()
422 EXPECT_EQ(RTCStatsMemberInterface::kUint64, stats.m_uint64.type()); in TEST()
423 EXPECT_EQ(RTCStatsMemberInterface::kDouble, stats.m_double.type()); in TEST()
424 EXPECT_EQ(RTCStatsMemberInterface::kString, stats.m_string.type()); in TEST()
426 stats.m_sequence_bool.type()); in TEST()
428 stats.m_sequence_int32.type()); in TEST()
430 stats.m_sequence_uint32.type()); in TEST()
432 stats.m_sequence_int64.type()); in TEST()
434 stats.m_sequence_uint64.type()); in TEST()
436 stats.m_sequence_double.type()); in TEST()
438 stats.m_sequence_string.type()); in TEST()
440 stats.m_map_string_uint64.type()); in TEST()
442 stats.m_map_string_double.type()); in TEST()
446 RTCTestStats stats("statsId", 42); in TEST() local
447 EXPECT_TRUE(stats.m_string.is_string()); in TEST()
448 EXPECT_FALSE(stats.m_bool.is_string()); in TEST()
449 EXPECT_FALSE(stats.m_int32.is_string()); in TEST()
450 EXPECT_FALSE(stats.m_uint32.is_string()); in TEST()
451 EXPECT_FALSE(stats.m_int64.is_string()); in TEST()
452 EXPECT_FALSE(stats.m_uint64.is_string()); in TEST()
453 EXPECT_FALSE(stats.m_double.is_string()); in TEST()
454 EXPECT_FALSE(stats.m_sequence_bool.is_string()); in TEST()
455 EXPECT_FALSE(stats.m_sequence_int32.is_string()); in TEST()
456 EXPECT_FALSE(stats.m_sequence_uint32.is_string()); in TEST()
457 EXPECT_FALSE(stats.m_sequence_int64.is_string()); in TEST()
458 EXPECT_FALSE(stats.m_sequence_uint64.is_string()); in TEST()
459 EXPECT_FALSE(stats.m_sequence_double.is_string()); in TEST()
460 EXPECT_FALSE(stats.m_sequence_string.is_string()); in TEST()
461 EXPECT_FALSE(stats.m_map_string_uint64.is_string()); in TEST()
462 EXPECT_FALSE(stats.m_map_string_double.is_string()); in TEST()
466 RTCTestStats stats("statsId", 42); in TEST() local
467 stats.m_bool = true; in TEST()
468 EXPECT_EQ("true", stats.m_bool.ValueToString()); in TEST()
470 stats.m_string = "foo"; in TEST()
471 EXPECT_EQ("foo", stats.m_string.ValueToString()); in TEST()
472 stats.m_int32 = -32; in TEST()
473 EXPECT_EQ("-32", stats.m_int32.ValueToString()); in TEST()
474 stats.m_uint32 = 32; in TEST()
475 EXPECT_EQ("32", stats.m_uint32.ValueToString()); in TEST()
476 stats.m_int64 = -64; in TEST()
477 EXPECT_EQ("-64", stats.m_int64.ValueToString()); in TEST()
478 stats.m_uint64 = 64; in TEST()
479 EXPECT_EQ("64", stats.m_uint64.ValueToString()); in TEST()
480 stats.m_double = 0.5; in TEST()
481 EXPECT_EQ("0.5", stats.m_double.ValueToString()); in TEST()
482 stats.m_sequence_bool = {true, false}; in TEST()
483 EXPECT_EQ("[true,false]", stats.m_sequence_bool.ValueToString()); in TEST()
484 stats.m_sequence_int32 = {-32, 32}; in TEST()
485 EXPECT_EQ("[-32,32]", stats.m_sequence_int32.ValueToString()); in TEST()
486 stats.m_sequence_uint32 = {64, 32}; in TEST()
487 EXPECT_EQ("[64,32]", stats.m_sequence_uint32.ValueToString()); in TEST()
488 stats.m_sequence_int64 = {-64, 32}; in TEST()
489 EXPECT_EQ("[-64,32]", stats.m_sequence_int64.ValueToString()); in TEST()
490 stats.m_sequence_uint64 = {16, 32}; in TEST()
491 EXPECT_EQ("[16,32]", stats.m_sequence_uint64.ValueToString()); in TEST()
492 stats.m_sequence_double = {0.5, 0.25}; in TEST()
493 EXPECT_EQ("[0.5,0.25]", stats.m_sequence_double.ValueToString()); in TEST()
494 stats.m_sequence_string = {"foo", "bar"}; in TEST()
495 EXPECT_EQ("[\"foo\",\"bar\"]", stats.m_sequence_string.ValueToString()); in TEST()
496 stats.m_map_string_uint64 = std::map<std::string, uint64_t>(); in TEST()
497 stats.m_map_string_uint64->emplace("foo", 32); in TEST()
498 stats.m_map_string_uint64->emplace("bar", 64); in TEST()
499 EXPECT_EQ("{bar:64,foo:32}", stats.m_map_string_uint64.ValueToString()); in TEST()
500 stats.m_map_string_double = std::map<std::string, double>(); in TEST()
501 stats.m_map_string_double->emplace("foo", 0.5); in TEST()
502 stats.m_map_string_double->emplace("bar", 0.25); in TEST()
503 EXPECT_EQ("{bar:0.25,foo:0.5}", stats.m_map_string_double.ValueToString()); in TEST()
536 RTCTestStats stats("testId", 0.0); in TEST() local
537 EXPECT_FALSE(stats.m_int32.is_defined()); in TEST()
538 EXPECT_DEATH(*stats.m_int32, ""); in TEST()
542 RTCGrandChildStats stats("grandchild", 0.0); in TEST() local
543 EXPECT_DEATH(stats.cast_to<RTCChildStats>(), ""); in TEST()