scoped_av_packet_unittest.cc 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // Copyright (c) 2022 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "media/ffmpeg/scoped_av_packet.h"
  5. #include "testing/gtest/include/gtest/gtest.h"
  6. namespace media {
  7. namespace {
  8. void VerifyEmptyPacket(const ScopedAVPacket& packet) {
  9. EXPECT_EQ(packet.get(), nullptr);
  10. EXPECT_FALSE(packet);
  11. }
  12. void VerifyNonEmptyPacket(const ScopedAVPacket& packet) {
  13. EXPECT_NE(packet.get(), nullptr);
  14. EXPECT_TRUE(packet);
  15. EXPECT_EQ(&(*packet), packet.get());
  16. EXPECT_EQ(packet.operator->(), packet.get());
  17. }
  18. } // namespace
  19. TEST(ScopedAVPacketTest, DefaultConstructor) {
  20. ScopedAVPacket packet;
  21. VerifyEmptyPacket(packet);
  22. }
  23. TEST(ScopedAVPacketTest, Allocate) {
  24. auto packet = ScopedAVPacket::Allocate();
  25. VerifyNonEmptyPacket(packet);
  26. }
  27. TEST(ScopedAVPacketTest, Move) {
  28. ScopedAVPacket empty_packet;
  29. ScopedAVPacket empty_packet_copy = std::move(empty_packet);
  30. VerifyEmptyPacket(empty_packet_copy);
  31. auto packet = ScopedAVPacket::Allocate();
  32. ScopedAVPacket packet_copy = std::move(packet);
  33. VerifyNonEmptyPacket(packet_copy);
  34. }
  35. } // namespace media