LCOV - code coverage report
Current view: top level - src/bindings/cpp/tests - testcpp_kdb.cpp (source / functions) Hit Total Coverage
Test: coverage-filtered.info Lines: 24 24 100.0 %
Date: 2019-09-12 12:28:41 Functions: 4 5 80.0 %

          Line data    Source code
       1             : /**
       2             :  * @file
       3             :  *
       4             :  * @brief
       5             :  *
       6             :  * @copyright BSD License (see LICENSE.md or https://www.libelektra.org)
       7             :  */
       8             : 
       9             : #include <tests.hpp>
      10             : 
      11          20 : TEST (kdb, get_set)
      12             : {
      13             :         // cout << "testing kdbSet() and kdbGet()" << endl;
      14             : 
      15             :         {
      16           8 :                 KeySet ks_set (5, *Key ("user/tests/key3", KEY_END), *Key ("user/tests/key3/1", KEY_END),
      17          16 :                                *Key ("user/tests/key3/2", KEY_END), *Key ("user/tests/key3/3", KEY_VALUE, "value", KEY_END), KS_END);
      18           4 :                 KeySet ks;
      19           4 :                 KDB kdb;
      20           8 :                 kdb.get (ks, "user/tests/key3");
      21           2 :                 ks.append (ks_set);
      22           8 :                 kdb.set (ks, "user/tests/key3");
      23             :         }
      24             : 
      25             :         // check if they were written
      26             :         {
      27           4 :                 KDB kdb;
      28           4 :                 KeySet ks;
      29           8 :                 kdb.get (ks, "user/tests/key3");
      30          18 :                 exit_if_fail (ks.lookup ("user/tests/key3/3"), "could not find previously written key");
      31          22 :                 succeed_if (ks.lookup ("user/tests/key3/3").get<std::string> () == "value", "could not get value");
      32          18 :                 succeed_if (!ks.lookup ("user/tests/key3/3").needSync (), "should not need sync");
      33             :         }
      34             : 
      35             :         // now remove keys (cleanup)
      36             :         {
      37           4 :                 KeySet ks;
      38           4 :                 KDB kdb;
      39           8 :                 kdb.get (ks, "user/tests/key3");
      40           8 :                 ks.cut (Key ("user/tests/key3", KEY_END));
      41           8 :                 kdb.set (ks, "user/tests/key3");
      42             :         }
      43             : 
      44             :         // check if its gone now
      45             :         {
      46           4 :                 KDB kdb;
      47           4 :                 KeySet ks;
      48           8 :                 kdb.get (ks, "user/tests/key3");
      49          18 :                 succeed_if (!ks.lookup ("user/tests/key3/3"), "key was not removed");
      50             :         }
      51           6 : }

Generated by: LCOV version 1.13