Add checks for api/test mocks to make sure they're complete Also unifies the mock inheritance if they inherited from a ref counted interface: - it should only inherit from the interface - it should use make_ref_counted Bug: webrtc:14594 Change-Id: I7b0514b632ccd0798028b50f19812ac0a196e13c Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262423 Commit-Queue: Florent Castelli <orphis@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/main@{#38602}
diff --git a/api/BUILD.gn b/api/BUILD.gn index de839ad..7e78edd 100644 --- a/api/BUILD.gn +++ b/api/BUILD.gn
@@ -978,6 +978,7 @@ sources = [ "test/mock_audio_mixer.h" ] deps = [ + ":make_ref_counted", "../test:test_support", "audio:audio_mixer_api", ] @@ -989,7 +990,7 @@ sources = [ "test/mock_audio_sink.h" ] deps = [ - "../api:media_stream_interface", + ":media_stream_interface", "../test:test_support", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] @@ -1002,6 +1003,7 @@ deps = [ ":libjingle_peerconnection_api", + ":make_ref_counted", "../test:test_support", ] } @@ -1013,6 +1015,7 @@ deps = [ ":libjingle_peerconnection_api", + ":make_ref_counted", "../test:test_support", ] } @@ -1032,8 +1035,7 @@ testonly = true sources = [ "test/mock_frame_encryptor.h" ] deps = [ - # For api/crypto/frame_encryptor_interface.h - ":libjingle_peerconnection_api", + ":make_ref_counted", "../test:test_support", "crypto:frame_encryptor_interface", ] @@ -1044,7 +1046,7 @@ testonly = true sources = [ "test/mock_frame_decryptor.h" ] deps = [ - ":libjingle_peerconnection_api", + ":make_ref_counted", "../test:test_support", "crypto:frame_decryptor_interface", ] @@ -1055,9 +1057,8 @@ testonly = true sources = [ "test/mock_encoder_selector.h" ] deps = [ - ":libjingle_peerconnection_api", - "../api/video_codecs:video_codecs_api", "../test:test_support", + "video_codecs:video_codecs_api", ] } @@ -1070,8 +1071,6 @@ ] deps = [ ":array_view", - ":libjingle_peerconnection_api", - ":make_ref_counted", ":rtp_parameters", "../rtc_base:checks", "../rtc_base:refcount", @@ -1088,8 +1087,6 @@ ] deps = [ ":array_view", - ":libjingle_peerconnection_api", - ":make_ref_counted", ":rtp_parameters", "../rtc_base:checks", "crypto:frame_decryptor_interface", @@ -1102,6 +1099,7 @@ sources = [ "test/mock_media_stream_interface.h" ] deps = [ + ":make_ref_counted", ":media_stream_interface", "../test:test_support", ] @@ -1125,8 +1123,8 @@ deps = [ ":libjingle_peerconnection_api", - "../api:scoped_refptr", - "../rtc_base:refcount", + ":make_ref_counted", + ":scoped_refptr", "../test:test_support", ] } @@ -1138,6 +1136,7 @@ deps = [ ":libjingle_peerconnection_api", + ":make_ref_counted", "../test:test_support", ] } @@ -1173,6 +1172,7 @@ deps = [ ":libjingle_peerconnection_api", + ":make_ref_counted", "../test:test_support", ] } @@ -1194,8 +1194,8 @@ sources = [ "test/mock_video_bitrate_allocator.h" ] deps = [ - "../api/video:video_bitrate_allocator", "../test:test_support", + "video:video_bitrate_allocator", ] } @@ -1205,8 +1205,8 @@ sources = [ "test/mock_video_bitrate_allocator_factory.h" ] deps = [ - "../api/video:video_bitrate_allocator_factory", "../test:test_support", + "video:video_bitrate_allocator_factory", ] } @@ -1219,8 +1219,8 @@ ] deps = [ - "../api/video_codecs:video_codecs_api", "../test:test_support", + "video_codecs:video_codecs_api", ] } @@ -1230,8 +1230,8 @@ sources = [ "test/mock_video_decoder.h" ] deps = [ - "../api/video_codecs:video_codecs_api", "../test:test_support", + "video_codecs:video_codecs_api", ] } @@ -1241,8 +1241,8 @@ sources = [ "test/mock_video_encoder.h" ] deps = [ - "../api/video_codecs:video_codecs_api", "../test:test_support", + "video_codecs:video_codecs_api", ] } @@ -1252,9 +1252,9 @@ sources = [ "test/mock_video_track.h" ] deps = [ - "../api:media_stream_interface", - "../api:scoped_refptr", - "../rtc_base:refcount", + ":make_ref_counted", + ":media_stream_interface", + ":scoped_refptr", "../test:test_support", ] }
diff --git a/api/DEPS b/api/DEPS index 5f01204..484588e 100644 --- a/api/DEPS +++ b/api/DEPS
@@ -250,14 +250,6 @@ "+test/gmock.h", ], - "mock_peerconnectioninterface\.h": [ - "+rtc_base/ref_counted_object.h", - ], - - "mock_video_track\.h": [ - "+rtc_base/ref_counted_object.h", - ], - "notifier\.h": [ "+rtc_base/system/no_unique_address.h", ],
diff --git a/api/task_queue/test/mock_task_queue_base.h b/api/task_queue/test/mock_task_queue_base.h index 2e99be7..4b73d8f 100644 --- a/api/task_queue/test/mock_task_queue_base.h +++ b/api/task_queue/test/mock_task_queue_base.h
@@ -32,6 +32,8 @@ (override)); }; +static_assert(!std::is_abstract_v<MockTaskQueueBase>); + } // namespace webrtc #endif // API_TASK_QUEUE_TEST_MOCK_TASK_QUEUE_BASE_H_
diff --git a/api/test/mock_async_dns_resolver.h b/api/test/mock_async_dns_resolver.h index 81132c9..c5048c8 100644 --- a/api/test/mock_async_dns_resolver.h +++ b/api/test/mock_async_dns_resolver.h
@@ -28,6 +28,8 @@ MOCK_METHOD(int, GetError, (), (const, override)); }; +static_assert(!std::is_abstract_v<MockAsyncDnsResolverResult>); + class MockAsyncDnsResolver : public AsyncDnsResolverInterface { public: MOCK_METHOD(void, @@ -41,6 +43,8 @@ MOCK_METHOD(AsyncDnsResolverResult&, result, (), (const, override)); }; +static_assert(!std::is_abstract_v<MockAsyncDnsResolver>); + class MockAsyncDnsResolverFactory : public AsyncDnsResolverFactoryInterface { public: MOCK_METHOD(std::unique_ptr<webrtc::AsyncDnsResolverInterface>, @@ -57,6 +61,8 @@ (override)); }; +static_assert(!std::is_abstract_v<MockAsyncDnsResolverFactory>); + } // namespace webrtc #endif // API_TEST_MOCK_ASYNC_DNS_RESOLVER_H_
diff --git a/api/test/mock_audio_mixer.h b/api/test/mock_audio_mixer.h index 88dc108..8747356 100644 --- a/api/test/mock_audio_mixer.h +++ b/api/test/mock_audio_mixer.h
@@ -12,6 +12,7 @@ #define API_TEST_MOCK_AUDIO_MIXER_H_ #include "api/audio/audio_mixer.h" +#include "api/make_ref_counted.h" #include "test/gmock.h" namespace webrtc { @@ -19,10 +20,20 @@ class MockAudioMixer : public AudioMixer { public: + static rtc::scoped_refptr<MockAudioMixer> Create() { + return rtc::make_ref_counted<MockAudioMixer>(); + } + MOCK_METHOD(bool, AddSource, (Source*), (override)); MOCK_METHOD(void, RemoveSource, (Source*), (override)); MOCK_METHOD(void, Mix, (size_t number_of_channels, AudioFrame*), (override)); + + protected: + MockAudioMixer() = default; }; + +static_assert(!std::is_abstract_v<rtc::RefCountedObject<MockAudioMixer>>); + } // namespace test } // namespace webrtc
diff --git a/api/test/mock_audio_sink.h b/api/test/mock_audio_sink.h index 0c17dc4..ae8c856 100644 --- a/api/test/mock_audio_sink.h +++ b/api/test/mock_audio_sink.h
@@ -39,6 +39,8 @@ (override)); }; +static_assert(!std::is_abstract_v<MockAudioSink>); + } // namespace webrtc #endif // API_TEST_MOCK_AUDIO_SINK_H_
diff --git a/api/test/mock_data_channel.h b/api/test/mock_data_channel.h index 40f7edb..afdf05b 100644 --- a/api/test/mock_data_channel.h +++ b/api/test/mock_data_channel.h
@@ -14,16 +14,15 @@ #include <string> #include "api/data_channel_interface.h" +#include "api/make_ref_counted.h" #include "test/gmock.h" namespace webrtc { -class MockDataChannelInterface final - : public rtc::RefCountedObject<webrtc::DataChannelInterface> { +class MockDataChannelInterface : public webrtc::DataChannelInterface { public: static rtc::scoped_refptr<MockDataChannelInterface> Create() { - return rtc::scoped_refptr<MockDataChannelInterface>( - new MockDataChannelInterface()); + return rtc::make_ref_counted<MockDataChannelInterface>(); } MOCK_METHOD(void, @@ -56,6 +55,9 @@ MockDataChannelInterface() = default; }; +static_assert( + !std::is_abstract_v<rtc::RefCountedObject<MockDataChannelInterface>>); + } // namespace webrtc #endif // API_TEST_MOCK_DATA_CHANNEL_H_
diff --git a/api/test/mock_dtmf_sender.h b/api/test/mock_dtmf_sender.h index 9029195..78ae475 100644 --- a/api/test/mock_dtmf_sender.h +++ b/api/test/mock_dtmf_sender.h
@@ -14,6 +14,7 @@ #include <string> #include "api/dtmf_sender_interface.h" +#include "api/make_ref_counted.h" #include "test/gmock.h" namespace webrtc { @@ -27,7 +28,7 @@ MOCK_METHOD(void, OnToneChange, (const std::string&), (override)); }; -static_assert(!std::is_abstract_v<MockDtmfSenderObserver>, ""); +static_assert(!std::is_abstract_v<MockDtmfSenderObserver>); class MockDtmfSender : public DtmfSenderInterface { public: @@ -49,7 +50,7 @@ MockDtmfSender() = default; }; -static_assert(!std::is_abstract_v<rtc::RefCountedObject<MockDtmfSender>>, ""); +static_assert(!std::is_abstract_v<rtc::RefCountedObject<MockDtmfSender>>); } // namespace webrtc
diff --git a/api/test/mock_fec_controller_override.h b/api/test/mock_fec_controller_override.h index 8f3accb..4fff228 100644 --- a/api/test/mock_fec_controller_override.h +++ b/api/test/mock_fec_controller_override.h
@@ -21,6 +21,8 @@ MOCK_METHOD(void, SetFecAllowed, (bool fec_allowed), (override)); }; +static_assert(!std::is_abstract_v<MockFecControllerOverride>); + } // namespace webrtc #endif // API_TEST_MOCK_FEC_CONTROLLER_OVERRIDE_H_
diff --git a/api/test/mock_frame_decryptor.h b/api/test/mock_frame_decryptor.h index 9604b96..c4320a4 100644 --- a/api/test/mock_frame_decryptor.h +++ b/api/test/mock_frame_decryptor.h
@@ -14,12 +14,17 @@ #include <vector> #include "api/crypto/frame_decryptor_interface.h" +#include "api/make_ref_counted.h" #include "test/gmock.h" namespace webrtc { class MockFrameDecryptor : public FrameDecryptorInterface { public: + static rtc::scoped_refptr<MockFrameDecryptor> Create() { + return rtc::make_ref_counted<MockFrameDecryptor>(); + } + MOCK_METHOD(Result, Decrypt, (cricket::MediaType, @@ -33,8 +38,13 @@ GetMaxPlaintextByteSize, (cricket::MediaType, size_t encrypted_frame_size), (override)); + + protected: + MockFrameDecryptor() = default; }; +static_assert(!std::is_abstract_v<rtc::RefCountedObject<MockFrameDecryptor>>); + } // namespace webrtc #endif // API_TEST_MOCK_FRAME_DECRYPTOR_H_
diff --git a/api/test/mock_frame_encryptor.h b/api/test/mock_frame_encryptor.h index e47321f..cb20f62f 100644 --- a/api/test/mock_frame_encryptor.h +++ b/api/test/mock_frame_encryptor.h
@@ -12,12 +12,17 @@ #define API_TEST_MOCK_FRAME_ENCRYPTOR_H_ #include "api/crypto/frame_encryptor_interface.h" +#include "api/make_ref_counted.h" #include "test/gmock.h" namespace webrtc { class MockFrameEncryptor : public FrameEncryptorInterface { public: + static rtc::scoped_refptr<MockFrameEncryptor> Create() { + return rtc::make_ref_counted<MockFrameEncryptor>(); + } + MOCK_METHOD(int, Encrypt, (cricket::MediaType, @@ -32,8 +37,13 @@ GetMaxCiphertextByteSize, (cricket::MediaType media_type, size_t frame_size), (override)); + + protected: + MockFrameEncryptor() = default; }; +static_assert(!std::is_abstract_v<rtc::RefCountedObject<MockFrameEncryptor>>); + } // namespace webrtc #endif // API_TEST_MOCK_FRAME_ENCRYPTOR_H_
diff --git a/api/test/mock_media_stream_interface.h b/api/test/mock_media_stream_interface.h index 2099623..6baf02f 100644 --- a/api/test/mock_media_stream_interface.h +++ b/api/test/mock_media_stream_interface.h
@@ -13,16 +13,16 @@ #include <string> +#include "api/make_ref_counted.h" #include "api/media_stream_interface.h" #include "test/gmock.h" namespace webrtc { -class MockAudioSource final - : public rtc::RefCountedObject<AudioSourceInterface> { +class MockAudioSource : public AudioSourceInterface { public: static rtc::scoped_refptr<MockAudioSource> Create() { - return rtc::scoped_refptr<MockAudioSource>(new MockAudioSource()); + return rtc::make_ref_counted<MockAudioSource>(); } MOCK_METHOD(void, @@ -48,14 +48,16 @@ MOCK_METHOD(void, RemoveSink, (AudioTrackSinkInterface * sink), (override)); MOCK_METHOD(const cricket::AudioOptions, options, (), (const, override)); - private: + protected: MockAudioSource() = default; }; -class MockAudioTrack final : public rtc::RefCountedObject<AudioTrackInterface> { +static_assert(!std::is_abstract_v<rtc::RefCountedObject<MockAudioSource>>); + +class MockAudioTrack : public AudioTrackInterface { public: static rtc::scoped_refptr<MockAudioTrack> Create() { - return rtc::scoped_refptr<MockAudioTrack>(new MockAudioTrack()); + return rtc::make_ref_counted<MockAudioTrack>(); } MOCK_METHOD(void, @@ -80,12 +82,18 @@ (), (override)); - private: + protected: MockAudioTrack() = default; }; +static_assert(!std::is_abstract_v<rtc::RefCountedObject<MockAudioTrack>>); + class MockMediaStream : public MediaStreamInterface { public: + static rtc::scoped_refptr<MockMediaStream> Create() { + return rtc::make_ref_counted<MockMediaStream>(); + } + MOCK_METHOD(std::string, id, (), (const override)); MOCK_METHOD(AudioTrackVector, GetAudioTracks, (), (override)); MOCK_METHOD(VideoTrackVector, GetVideoTracks, (), (override)); @@ -128,7 +136,7 @@ (override)); }; -static_assert(!std::is_abstract_v<rtc::RefCountedObject<MockMediaStream>>, ""); +static_assert(!std::is_abstract_v<rtc::RefCountedObject<MockMediaStream>>); } // namespace webrtc
diff --git a/api/test/mock_peer_connection_factory_interface.h b/api/test/mock_peer_connection_factory_interface.h index 6bab595..5ba2c83 100644 --- a/api/test/mock_peer_connection_factory_interface.h +++ b/api/test/mock_peer_connection_factory_interface.h
@@ -14,17 +14,17 @@ #include <memory> #include <string> +#include "api/make_ref_counted.h" #include "api/peer_connection_interface.h" #include "test/gmock.h" namespace webrtc { -class MockPeerConnectionFactoryInterface final - : public rtc::RefCountedObject<webrtc::PeerConnectionFactoryInterface> { +class MockPeerConnectionFactoryInterface + : public PeerConnectionFactoryInterface { public: static rtc::scoped_refptr<MockPeerConnectionFactoryInterface> Create() { - return rtc::scoped_refptr<MockPeerConnectionFactoryInterface>( - new MockPeerConnectionFactoryInterface()); + return rtc::make_ref_counted<MockPeerConnectionFactoryInterface>(); } MOCK_METHOD(void, SetOptions, (const Options&), (override)); @@ -76,6 +76,9 @@ MockPeerConnectionFactoryInterface() = default; }; +static_assert(!std::is_abstract_v< + rtc::RefCountedObject<MockPeerConnectionFactoryInterface>>); + } // namespace webrtc #endif // API_TEST_MOCK_PEER_CONNECTION_FACTORY_INTERFACE_H_
diff --git a/api/test/mock_peerconnectioninterface.h b/api/test/mock_peerconnectioninterface.h index ccc6ce4..b779f19 100644 --- a/api/test/mock_peerconnectioninterface.h +++ b/api/test/mock_peerconnectioninterface.h
@@ -17,10 +17,10 @@ #include <utility> #include <vector> +#include "api/make_ref_counted.h" #include "api/peer_connection_interface.h" #include "api/scoped_refptr.h" #include "api/sctp_transport_interface.h" -#include "rtc_base/ref_counted_object.h" #include "test/gmock.h" namespace webrtc { @@ -205,8 +205,7 @@ }; static_assert( - !std::is_abstract_v<rtc::RefCountedObject<MockPeerConnectionInterface>>, - ""); + !std::is_abstract_v<rtc::RefCountedObject<MockPeerConnectionInterface>>); } // namespace webrtc
diff --git a/api/test/mock_rtp_transceiver.h b/api/test/mock_rtp_transceiver.h index 1d21bce..39c8773 100644 --- a/api/test/mock_rtp_transceiver.h +++ b/api/test/mock_rtp_transceiver.h
@@ -14,6 +14,7 @@ #include <string> #include <vector> +#include "api/make_ref_counted.h" #include "api/rtp_transceiver_interface.h" #include "test/gmock.h" @@ -21,8 +22,6 @@ class MockRtpTransceiver : public RtpTransceiverInterface { public: - MockRtpTransceiver() = default; - static rtc::scoped_refptr<MockRtpTransceiver> Create() { return rtc::make_ref_counted<MockRtpTransceiver>(); } @@ -80,8 +79,13 @@ (rtc::ArrayView<const RtpHeaderExtensionCapability> header_extensions_to_offer), (override)); + + protected: + MockRtpTransceiver() = default; }; +static_assert(!std::is_abstract_v<rtc::RefCountedObject<MockRtpTransceiver>>); + } // namespace webrtc #endif // API_TEST_MOCK_RTP_TRANSCEIVER_H_
diff --git a/api/test/mock_rtpreceiver.h b/api/test/mock_rtpreceiver.h index 4bcf064..5adc1aa 100644 --- a/api/test/mock_rtpreceiver.h +++ b/api/test/mock_rtpreceiver.h
@@ -19,8 +19,12 @@ namespace webrtc { -class MockRtpReceiver : public rtc::RefCountedObject<RtpReceiverInterface> { +class MockRtpReceiver : public RtpReceiverInterface { public: + static rtc::scoped_refptr<MockRtpReceiver> Create() { + return rtc::make_ref_counted<MockRtpReceiver>(); + } + MOCK_METHOD(rtc::scoped_refptr<MediaStreamTrackInterface>, track, (), @@ -38,8 +42,13 @@ (absl::optional<double>), (override)); MOCK_METHOD(std::vector<RtpSource>, GetSources, (), (const, override)); + + protected: + MockRtpReceiver() = default; }; +static_assert(!std::is_abstract_v<rtc::RefCountedObject<MockRtpReceiver>>); + } // namespace webrtc #endif // API_TEST_MOCK_RTPRECEIVER_H_
diff --git a/api/test/mock_rtpsender.h b/api/test/mock_rtpsender.h index e2351f8..1a71d8b 100644 --- a/api/test/mock_rtpsender.h +++ b/api/test/mock_rtpsender.h
@@ -15,6 +15,7 @@ #include <string> #include <vector> +#include "api/make_ref_counted.h" #include "api/rtp_sender_interface.h" #include "test/gmock.h" @@ -68,7 +69,8 @@ (override)); }; -static_assert(!std::is_abstract_v<rtc::RefCountedObject<MockRtpSender>>, ""); +static_assert(!std::is_abstract_v<rtc::RefCountedObject<MockRtpSender>>); + } // namespace webrtc #endif // API_TEST_MOCK_RTPSENDER_H_
diff --git a/api/test/mock_transformable_video_frame.h b/api/test/mock_transformable_video_frame.h index 5cebcab..c85b05d 100644 --- a/api/test/mock_transformable_video_frame.h +++ b/api/test/mock_transformable_video_frame.h
@@ -18,13 +18,20 @@ namespace webrtc { -class MockTransformableVideoFrame - : public webrtc::TransformableVideoFrameInterface { +class MockTransformableVideoFrame : public TransformableVideoFrameInterface { public: + // TransformableFrameInterface MOCK_METHOD(rtc::ArrayView<const uint8_t>, GetData, (), (const, override)); MOCK_METHOD(void, SetData, (rtc::ArrayView<const uint8_t> data), (override)); - MOCK_METHOD(uint32_t, GetTimestamp, (), (const, override)); + MOCK_METHOD(uint8_t, GetPayloadType, (), (const, override)); MOCK_METHOD(uint32_t, GetSsrc, (), (const, override)); + MOCK_METHOD(uint32_t, GetTimestamp, (), (const, override)); + MOCK_METHOD(TransformableVideoFrameInterface::Direction, + GetDirection, + (), + (const, override)); + + // TransformableVideoFrameInterface MOCK_METHOD(bool, IsKeyFrame, (), (const, override)); MOCK_METHOD(std::vector<uint8_t>, GetAdditionalData, (), (const, override)); MOCK_METHOD(const webrtc::VideoFrameMetadata&, @@ -33,6 +40,8 @@ (const, override)); }; +static_assert(!std::is_abstract_v<MockTransformableVideoFrame>); + } // namespace webrtc #endif // API_TEST_MOCK_TRANSFORMABLE_VIDEO_FRAME_H_
diff --git a/api/test/mock_video_bitrate_allocator.h b/api/test/mock_video_bitrate_allocator.h index 76cf49e..8f86ba0 100644 --- a/api/test/mock_video_bitrate_allocator.h +++ b/api/test/mock_video_bitrate_allocator.h
@@ -23,6 +23,8 @@ (override)); }; +static_assert(!std::is_abstract_v<MockVideoBitrateAllocator>); + } // namespace webrtc #endif // API_TEST_MOCK_VIDEO_BITRATE_ALLOCATOR_H_
diff --git a/api/test/mock_video_bitrate_allocator_factory.h b/api/test/mock_video_bitrate_allocator_factory.h index 16af191..562efd7 100644 --- a/api/test/mock_video_bitrate_allocator_factory.h +++ b/api/test/mock_video_bitrate_allocator_factory.h
@@ -18,8 +18,7 @@ namespace webrtc { -class MockVideoBitrateAllocatorFactory - : public webrtc::VideoBitrateAllocatorFactory { +class MockVideoBitrateAllocatorFactory : public VideoBitrateAllocatorFactory { public: ~MockVideoBitrateAllocatorFactory() override { Die(); } MOCK_METHOD(std::unique_ptr<VideoBitrateAllocator>, @@ -29,6 +28,8 @@ MOCK_METHOD(void, Die, ()); }; +static_assert(!std::is_abstract_v<MockVideoBitrateAllocatorFactory>); + } // namespace webrtc #endif // API_TEST_MOCK_VIDEO_BITRATE_ALLOCATOR_FACTORY_H_
diff --git a/api/test/mock_video_decoder.h b/api/test/mock_video_decoder.h index 34f732c..ddef1b4 100644 --- a/api/test/mock_video_decoder.h +++ b/api/test/mock_video_decoder.h
@@ -37,6 +37,8 @@ (override)); }; +static_assert(!std::is_abstract_v<MockDecodedImageCallback>); + class MockVideoDecoder : public VideoDecoder { public: MockVideoDecoder() { @@ -65,6 +67,8 @@ MOCK_METHOD(void, Destruct, (), ()); }; +static_assert(!std::is_abstract_v<MockVideoDecoder>); + } // namespace webrtc #endif // API_TEST_MOCK_VIDEO_DECODER_H_
diff --git a/api/test/mock_video_decoder_factory.h b/api/test/mock_video_decoder_factory.h index 6150d9f..e61892f 100644 --- a/api/test/mock_video_decoder_factory.h +++ b/api/test/mock_video_decoder_factory.h
@@ -35,6 +35,9 @@ (override)); MOCK_METHOD(void, Die, ()); }; + +static_assert(!std::is_abstract_v<MockVideoDecoderFactory>); + } // namespace webrtc #endif // API_TEST_MOCK_VIDEO_DECODER_FACTORY_H_
diff --git a/api/test/mock_video_encoder.h b/api/test/mock_video_encoder.h index 11e0f64..c6276a5 100644 --- a/api/test/mock_video_encoder.h +++ b/api/test/mock_video_encoder.h
@@ -27,6 +27,8 @@ MOCK_METHOD(void, OnDroppedFrame, (DropReason reason), (override)); }; +static_assert(!std::is_abstract_v<MockEncodedImageCallback>); + class MockVideoEncoder : public VideoEncoder { public: MOCK_METHOD(void, @@ -68,6 +70,8 @@ MOCK_METHOD(EncoderInfo, GetEncoderInfo, (), (const, override)); }; +static_assert(!std::is_abstract_v<MockVideoEncoder>); + } // namespace webrtc #endif // API_TEST_MOCK_VIDEO_ENCODER_H_
diff --git a/api/test/mock_video_encoder_factory.h b/api/test/mock_video_encoder_factory.h index 02ee7aa..427c6a0 100644 --- a/api/test/mock_video_encoder_factory.h +++ b/api/test/mock_video_encoder_factory.h
@@ -37,6 +37,8 @@ MOCK_METHOD(void, Die, ()); }; +static_assert(!std::is_abstract_v<MockVideoEncoderFactory>); + } // namespace webrtc #endif // API_TEST_MOCK_VIDEO_ENCODER_FACTORY_H_
diff --git a/api/test/mock_video_track.h b/api/test/mock_video_track.h index 705d135..99247f1 100644 --- a/api/test/mock_video_track.h +++ b/api/test/mock_video_track.h
@@ -13,18 +13,17 @@ #include <string> +#include "api/make_ref_counted.h" #include "api/media_stream_interface.h" #include "api/scoped_refptr.h" -#include "rtc_base/ref_counted_object.h" #include "test/gmock.h" namespace webrtc { -class MockVideoTrack final - : public rtc::RefCountedObject<webrtc::VideoTrackInterface> { +class MockVideoTrack : public webrtc::VideoTrackInterface { public: static rtc::scoped_refptr<MockVideoTrack> Create() { - return rtc::scoped_refptr<MockVideoTrack>(new MockVideoTrack()); + return rtc::make_ref_counted<MockVideoTrack>(); } // NotifierInterface @@ -62,8 +61,13 @@ MOCK_METHOD(ContentHint, content_hint, (), (const, override)); MOCK_METHOD(void, set_content_hint, (ContentHint hint), (override)); + + protected: + MockVideoTrack() = default; }; +static_assert(!std::is_abstract_v<rtc::RefCountedObject<MockVideoTrack>>); + } // namespace webrtc #endif // API_TEST_MOCK_VIDEO_TRACK_H_