Advertisement
Guest User

HahaPrikol

a guest
Nov 17th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.34 KB | None | 0 0
  1. TEST(SharedPtr_TestsByMaksimka, Release_WorkPlease) {
  2.   int* ptr = new int(3);
  3.   SharedPtr<int> shared_ptr1(ptr);
  4.   SharedPtr<int> shared_ptr2 = shared_ptr1;
  5.   shared_ptr1.Release();
  6.   SharedPtr<int> shared_ptr3 = shared_ptr1;
  7.  
  8.   ASSERT_EQ(shared_ptr3.Get(), nullptr);
  9.   ASSERT_EQ(shared_ptr2.Get(), ptr);
  10.   delete ptr;
  11. }
  12.  
  13. TEST(SharedPtr_TestsByMaksimka, Release_WhereIsMyMemory) {
  14.   // while (true)
  15.   {
  16.     int* ptr = new int(7);
  17.  
  18.     SharedPtr<int> shared_ptr(ptr);
  19.     SharedPtr<int> shared_ptr2 = shared_ptr;
  20.     SharedPtr<int> shared_ptr3 = std::move(shared_ptr);
  21.  
  22.     shared_ptr2.Release();
  23.     ASSERT_EQ(shared_ptr2.Get(), nullptr);
  24.     ASSERT_EQ(shared_ptr3.Get(), ptr);
  25.     shared_ptr3.Release();
  26.     ASSERT_EQ(shared_ptr2.Get(), nullptr);
  27.     ASSERT_EQ(shared_ptr3.Get(), nullptr);
  28.  
  29.     delete ptr;
  30.   }
  31. }
  32.  
  33. TEST(SharedPtr_TestsByMaksimka, Release_Test) {
  34.   SharedPtr<int> a;
  35.   SharedPtr<int> b = a;
  36.  
  37.   int* x = new int(-7);
  38.   b = SharedPtr<int>(x);
  39. }
  40.  
  41. TEST(SharedPtr_TestsByMaksimka, Destructor_Test) {
  42.   int var2 = 31;
  43.   int* ptr_var = new int(77);
  44.  
  45.   SharedPtr<int> shared_ptr_var(ptr_var);
  46.   ASSERT_EQ(*shared_ptr_var.Get(), *ptr_var);
  47.   ASSERT_EQ(*shared_ptr_var, *ptr_var);
  48.  
  49.   *shared_ptr_var = var2;
  50.  
  51.   ASSERT_EQ(*shared_ptr_var.Get(), var2);
  52.   ASSERT_EQ(*shared_ptr_var, var2);
  53.   ASSERT_EQ(*ptr_var, var2);
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement