LCOV - code coverage report
Current view: top level - UTests - testNoCopyNoMove.cpp (source / functions) Hit Total Coverage
Test: Coverage example Lines: 16 18 88.9 %
Date: 2021-12-02 17:21:05 Functions: 5 5 100.0 %

          Line data    Source code
       1             : ///////////////////////////////////////////////////////////////////////////
       2             : // Spetabaru - Berenger Bramas MPCDF - 2017
       3             : // Under LGPL Licence, please you must read the LICENCE file.
       4             : ///////////////////////////////////////////////////////////////////////////
       5             : 
       6             : #include "UTester.hpp"
       7             : 
       8             : #include "Data/SpDataAccessMode.hpp"
       9             : #include "Utils/SpUtils.hpp"
      10             : 
      11             : #include "Task/SpTask.hpp"
      12             : #include "Legacy/SpRuntime.hpp"
      13             : 
      14             : 
      15             : class TestCopyMove : public UTester< TestCopyMove > {
      16             :     using Parent = UTester< TestCopyMove >;
      17             : 
      18           1 :     void TestBasic(){
      19             :         class NotMovableNotCopyableClass {
      20             :         public:
      21             :             NotMovableNotCopyableClass() = default;
      22             :             NotMovableNotCopyableClass(const NotMovableNotCopyableClass&) = delete;
      23             :             NotMovableNotCopyableClass(const NotMovableNotCopyableClass&&) = delete;
      24             :             NotMovableNotCopyableClass& operator=(const NotMovableNotCopyableClass&) = delete;
      25             :             NotMovableNotCopyableClass& operator=(const NotMovableNotCopyableClass&&) = delete;
      26             : 
      27             :             NotMovableNotCopyableClass* clone() const{
      28             :                 return nullptr;
      29             :             }
      30             :         };
      31             : 
      32             : 
      33           1 :         const int NumThreads = SpUtils::DefaultNumThreads();
      34           2 :         SpRuntime runtime(NumThreads);
      35             : 
      36             :         NotMovableNotCopyableClass testclass;
      37             :         {
      38           0 :             auto descriptor = runtime.task(SpRead(testclass),
      39           2 :                          [this, &testclass](const NotMovableNotCopyableClass& testclassParam){
      40           1 :                 UASSERTETRUE(&testclassParam == &testclass);
      41           3 :             });
      42             : 
      43           1 :             descriptor.wait();
      44             :         }
      45             : 
      46             :         {
      47           0 :             auto descriptor = runtime.task(SpWrite(testclass),
      48           2 :                          [this, &testclass](NotMovableNotCopyableClass& testclassParam){
      49           1 :                 UASSERTETRUE(&testclassParam == &testclass);
      50           3 :             });
      51             : 
      52           1 :             descriptor.wait();
      53             :         }
      54           1 :     }
      55             : 
      56           1 :     void SetTests() {
      57           1 :         Parent::AddTest(&TestCopyMove::TestBasic, "Basic test for vec type");
      58           1 :     }
      59             : };
      60             : 
      61             : // You must do this
      62           1 : TestClass(TestCopyMove)

Generated by: LCOV version 1.14