shared_range_ut.cpp 922 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include <library/cpp/testing/gtest/gtest.h>
  2. #include <library/cpp/yt/memory/new.h>
  3. #include <library/cpp/yt/memory/shared_range.h>
  4. namespace NYT {
  5. namespace {
  6. ////////////////////////////////////////////////////////////////////////////////
  7. DECLARE_REFCOUNTED_STRUCT(THolder);
  8. struct THolder
  9. : public TRefCounted
  10. {
  11. int Value;
  12. THolder(int value)
  13. : Value(value)
  14. { }
  15. };
  16. DEFINE_REFCOUNTED_TYPE(THolder);
  17. ////////////////////////////////////////////////////////////////////////////////
  18. TEST(TSharedRange, Move)
  19. {
  20. auto holder = New<THolder>(0);
  21. int* raw = &holder->Value;
  22. auto sharedRange = MakeSharedRange<int>({raw, 1}, std::move(holder));
  23. {
  24. auto sharedRangeMovedTo = std::move(sharedRange);
  25. }
  26. EXPECT_TRUE(sharedRange.ToVector().empty());
  27. }
  28. ////////////////////////////////////////////////////////////////////////////////
  29. } // namespace
  30. } // namespace NYT