diff --git a/webrtc/stats/BUILD.gn b/webrtc/stats/BUILD.gn index 0f13c101e1..a9c9fb8909 100644 --- a/webrtc/stats/BUILD.gn +++ b/webrtc/stats/BUILD.gn @@ -34,8 +34,25 @@ rtc_source_set("rtc_stats") { ] } +rtc_source_set("rtc_stats_test_utils") { + cflags = [] + sources = [ + "test/rtcteststats.cc", + "test/rtcteststats.h", + ] + + if (is_clang) { + # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). + suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] + } + + deps = [ + ":rtc_stats", + "../api:rtc_stats_api", + ] +} + if (rtc_include_tests) { - # GYP version: webrtc/stats/stats.gyp:rtc_stats_unittests rtc_test("rtc_stats_unittests") { testonly = true sources = [ @@ -50,6 +67,7 @@ if (rtc_include_tests) { deps = [ ":rtc_stats", + ":rtc_stats_test_utils", "../base:rtc_base_tests_utils", "../system_wrappers:metrics_default", "//testing/gmock", diff --git a/webrtc/stats/rtcstats_unittest.cc b/webrtc/stats/rtcstats_unittest.cc index 685093a493..6cb8817969 100644 --- a/webrtc/stats/rtcstats_unittest.cc +++ b/webrtc/stats/rtcstats_unittest.cc @@ -14,58 +14,10 @@ #include "webrtc/base/checks.h" #include "webrtc/base/gunit.h" +#include "webrtc/stats/test/rtcteststats.h" namespace webrtc { -class RTCTestStats : public RTCStats { - public: - RTCTestStats(const std::string& id, int64_t timestamp_us) - : RTCStats(id, timestamp_us), - m_int32("mInt32"), - m_uint32("mUint32"), - m_int64("mInt64"), - m_uint64("mUint64"), - m_double("mDouble"), - m_string("mString"), - m_sequence_int32("mSequenceInt32"), - m_sequence_uint32("mSequenceUint32"), - m_sequence_int64("mSequenceInt64"), - m_sequence_uint64("mSequenceUint64"), - m_sequence_double("mSequenceDouble"), - m_sequence_string("mSequenceString") { - } - - WEBRTC_RTCSTATS_IMPL(RTCStats, RTCTestStats, - &m_int32, - &m_uint32, - &m_int64, - &m_uint64, - &m_double, - &m_string, - &m_sequence_int32, - &m_sequence_uint32, - &m_sequence_int64, - &m_sequence_uint64, - &m_sequence_double, - &m_sequence_string); - - RTCStatsMember m_int32; - RTCStatsMember m_uint32; - RTCStatsMember m_int64; - RTCStatsMember m_uint64; - RTCStatsMember m_double; - RTCStatsMember m_string; - - RTCStatsMember> m_sequence_int32; - RTCStatsMember> m_sequence_uint32; - RTCStatsMember> m_sequence_int64; - RTCStatsMember> m_sequence_uint64; - RTCStatsMember> m_sequence_double; - RTCStatsMember> m_sequence_string; -}; - -const char RTCTestStats::kType[] = "test-stats"; - class RTCChildStats : public RTCStats { public: RTCChildStats(const std::string& id, int64_t timestamp_us) diff --git a/webrtc/stats/test/rtcteststats.cc b/webrtc/stats/test/rtcteststats.cc new file mode 100644 index 0000000000..c317294332 --- /dev/null +++ b/webrtc/stats/test/rtcteststats.cc @@ -0,0 +1,33 @@ +/* + * Copyright 2016 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#include "webrtc/stats/test/rtcteststats.h" + +namespace webrtc { + +const char RTCTestStats::kType[] = "test-stats"; + +RTCTestStats::RTCTestStats(const std::string& id, int64_t timestamp_us) + : RTCStats(id, timestamp_us), + m_int32("mInt32"), + m_uint32("mUint32"), + m_int64("mInt64"), + m_uint64("mUint64"), + m_double("mDouble"), + m_string("mString"), + m_sequence_int32("mSequenceInt32"), + m_sequence_uint32("mSequenceUint32"), + m_sequence_int64("mSequenceInt64"), + m_sequence_uint64("mSequenceUint64"), + m_sequence_double("mSequenceDouble"), + m_sequence_string("mSequenceString") { +} + +} // namespace webrtc diff --git a/webrtc/stats/test/rtcteststats.h b/webrtc/stats/test/rtcteststats.h new file mode 100644 index 0000000000..c8191eb45b --- /dev/null +++ b/webrtc/stats/test/rtcteststats.h @@ -0,0 +1,55 @@ +/* + * Copyright 2016 The WebRTC Project Authors. All rights reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#ifndef WEBRTC_STATS_TEST_RTCTESTSTATS_H_ +#define WEBRTC_STATS_TEST_RTCTESTSTATS_H_ + +#include +#include + +#include "webrtc/api/stats/rtcstats.h" + +namespace webrtc { + +class RTCTestStats : public RTCStats { + public: + RTCTestStats(const std::string& id, int64_t timestamp_us); + + WEBRTC_RTCSTATS_IMPL(RTCStats, RTCTestStats, + &m_int32, + &m_uint32, + &m_int64, + &m_uint64, + &m_double, + &m_string, + &m_sequence_int32, + &m_sequence_uint32, + &m_sequence_int64, + &m_sequence_uint64, + &m_sequence_double, + &m_sequence_string); + + RTCStatsMember m_int32; + RTCStatsMember m_uint32; + RTCStatsMember m_int64; + RTCStatsMember m_uint64; + RTCStatsMember m_double; + RTCStatsMember m_string; + RTCStatsMember> m_sequence_int32; + RTCStatsMember> m_sequence_uint32; + RTCStatsMember> m_sequence_int64; + RTCStatsMember> m_sequence_uint64; + RTCStatsMember> m_sequence_double; + RTCStatsMember> m_sequence_string; +}; + +} // namespace webrtc + +#endif // WEBRTC_STATS_TEST_RTCTESTSTATS_H_