LCOV - code coverage report
Current view: top level - UTests - test-memo.cpp (source / functions) Hit Total Coverage
Test: Coverage inastemp Lines: 27 27 100.0 %
Date: 2022-03-17 09:48:28 Functions: 9 11 81.8 %

          Line data    Source code
       1             : ///////////////////////////////////////////////////////////////////////////
       2             : // Inastemp - Berenger Bramas MPCDF - 2016
       3             : // Under MIT Licence, please you must read the LICENCE file.
       4             : ///////////////////////////////////////////////////////////////////////////
       5             : 
       6             : #include "InastempGlobal.h"
       7             : 
       8             : #include "Common/InaMemory.hpp"
       9             : 
      10             : #include "UTester.hpp"
      11             : 
      12             : #include <cmath>
      13             : #include <cstring>
      14             : #include <vector>
      15             : 
      16           4 : class TestMemo : public UTester< TestMemo > {
      17             :     using Parent = UTester< TestMemo >;
      18             : 
      19             :     template <long int alignement>
      20           6 :     void TestBasic() {
      21             :         {
      22             :         
      23             :         }
      24          60 :         for(size_t size = 1 ; size < 10 ; ++size){
      25             :             {
      26          54 :                 char* vecChar = InaMemory::_new<alignement, char>(size);
      27         324 :                 UASSERTETRUE(vecChar != nullptr);
      28         378 :                 UASSERTETRUE((reinterpret_cast<unsigned long>(vecChar) & (alignement-1)) == 0);
      29          54 :                 InaMemory::_delete(vecChar);   
      30             :             }
      31             :             {
      32          54 :                 double* vecDouble = InaMemory::_new<alignement, double>(size);
      33         324 :                 UASSERTETRUE(vecDouble != nullptr);
      34         378 :                 UASSERTETRUE((reinterpret_cast<unsigned long>(vecDouble) & (alignement-1)) == 0);
      35          54 :                 InaMemory::_delete(vecDouble);   
      36             :             }
      37             :             {
      38          54 :                 std::vector<double>* vecDouble = InaMemory::_new<alignement, std::vector<double> >(size);
      39         324 :                 UASSERTETRUE(vecDouble != nullptr);
      40         324 :                 UASSERTETRUE((reinterpret_cast<unsigned long>(vecDouble) & (alignement-1)) == 0);
      41          54 :                 InaMemory::_delete(vecDouble);   
      42             :             }
      43             :         }
      44           6 :     }
      45             : 
      46           1 :     void SetTests() {
      47           3 :         Parent::AddTest(&TestMemo::TestBasic<1>, "Basic memo test 1");
      48           3 :         Parent::AddTest(&TestMemo::TestBasic<2>, "Basic memo test 2");
      49           3 :         Parent::AddTest(&TestMemo::TestBasic<4>, "Basic memo test 4");
      50           3 :         Parent::AddTest(&TestMemo::TestBasic<8>, "Basic memo test 8");
      51           3 :         Parent::AddTest(&TestMemo::TestBasic<16>, "Basic memo test 16");
      52           3 :         Parent::AddTest(&TestMemo::TestBasic<32>, "Basic memo test 32");
      53           1 :     }
      54             : };
      55             : 
      56             : 
      57           1 : int main() {
      58           3 :     return TestMemo().Run();
      59           2 : }

Generated by: LCOV version 1.13