LCOV - code coverage report
Current view: top level - examples - reference.c (source / functions) Hit Total Coverage
Test: coverage-filtered.info Lines: 0 31 0.0 %
Date: 2019-09-12 12:28:41 Functions: 0 3 0.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 <kdb.h>
      10             : #include <stdio.h>
      11             : 
      12           0 : void f (Key * k)
      13             : {
      14           0 :         printf ("\tf called with %s\n", keyName (k));
      15           0 :         keySetName (k, "user/delete");
      16           0 :         keyDel (k);
      17           0 : }
      18             : 
      19           0 : void h (Key * k)
      20             : {
      21           0 :         printf ("\th called with %s\n", keyName (k));
      22           0 :         keyIncRef (k);
      23             : 
      24           0 :         f (k);
      25             : 
      26           0 :         keyDecRef (k);
      27           0 : }
      28             : 
      29           0 : int main (void)
      30             : {
      31           0 :         Key * k = keyNew ("user/key1", KEY_END);
      32           0 :         printf ("key has ref %zd\n", keyGetRef (k));
      33             : 
      34           0 :         f (k);
      35           0 :         printf ("key is now deleted\n\n");
      36             : 
      37           0 :         k = keyNew ("user/key2", KEY_END);
      38           0 :         keyIncRef (k);
      39           0 :         printf ("key has ref %zd\n", keyGetRef (k));
      40             : 
      41           0 :         f (k);
      42           0 :         printf ("key renamed to %s\n", keyName (k));
      43             : 
      44           0 :         f (k);
      45             : 
      46           0 :         keyDecRef (k);
      47           0 :         printf ("key has ref %zd\n", keyGetRef (k));
      48           0 :         keyDel (k);
      49           0 :         printf ("key is now deleted\n\n");
      50             : 
      51           0 :         k = keyNew ("user/key3", KEY_END);
      52           0 :         printf ("key has ref %zd\n", keyGetRef (k));
      53           0 :         h (k);
      54           0 :         keyDel (k);
      55           0 :         printf ("key is now deleted\n");
      56             : 
      57             :         return 0;
      58             : }

Generated by: LCOV version 1.13