LCOV - code coverage report
Current view: top level - examples - keyNewExample.c (source / functions) Hit Total Coverage
Test: coverage-filtered.info Lines: 0 29 0.0 %
Date: 2019-09-12 12:28:41 Functions: 0 1 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 : int main (void)
      13             : {
      14           0 :         KeySet * ks = ksNew (0, KS_END);
      15           0 :         Key * key = 0;
      16             : 
      17           0 :         printf ("Generate some keys...");
      18             : 
      19           0 :         ksAppendKey (ks, keyNew ("user/sw", KEY_END)); /* a simple key */
      20             : 
      21           0 :         ksAppendKey (ks, keyNew (0)); /* an empty key */
      22             : 
      23           0 :         ksAppendKey (ks, keyNew ("system/sw", KEY_END));
      24             : 
      25           0 :         ksAppendKey (ks, keyNew ("user/tmp/ex1", KEY_VALUE, "some data", /* with a simple value */
      26             :                                  KEY_END));                              /* end of args */
      27             : 
      28           0 :         ksAppendKey (ks, keyNew ("user/tmp/ex2", KEY_VALUE, "some data", /* with a simple value */
      29             :                                  KEY_MODE, 0777,                         /* permissions */
      30             :                                  KEY_END));                              /* end of args */
      31             : 
      32           0 :         ksAppendKey (ks, keyNew ("user/tmp/ex4", KEY_BINARY, KEY_COMMENT, "value is truncated", KEY_SIZE, 7, KEY_VALUE,
      33             :                                  "some data", /* value that will be truncated to 7 bytes */
      34             :                                  KEY_UID, 0,  /* root uid */
      35             :                                  KEY_END));   /* end of args */
      36             : 
      37           0 :         ksAppendKey (ks, keyNew ("user/tmp/ex5", KEY_VALUE, "some data", /* value  */
      38             :                                  KEY_OWNER, "root",                    /* owner (not uid) is root */
      39             :                                  KEY_COMMENT, "some comment",          /* a comment */
      40             :                                  KEY_END));                              /* end of args */
      41             : 
      42           0 :         ksAppendKey (ks, keyNew ("user/env/alias/ls", /* a key we know we have */
      43             :                                  KEY_END));        /* do nothing more */
      44             : 
      45           0 :         ksAppendKey (ks, keyNew ("user/env/alias/ls", /* same key, to compare in output */
      46             :                                  KEY_OWNER, "root",     /* set new owner (not uid) as root */
      47             :                                  KEY_COMMENT, "new comment", /* set new comment */
      48             :                                  KEY_END));                  /* end of args */
      49             : 
      50           0 :         key = keyNew ("user/test//", KEY_END);
      51             : 
      52             :         /* we are providing a lot of '/' to see it being removed */
      53           0 :         keySetName (key, "system");
      54           0 :         keySetName (key, "user");
      55           0 :         keySetName (key, "user:aviram");
      56           0 :         keySetName (key, "user///abc//////def///");
      57           0 :         keySetName (key, "user:root///aaa//////bbb///");
      58             : 
      59           0 :         keyAddBaseName (key, "tmp");
      60           0 :         keyAddBaseName (key, "////ex6///exx7///");
      61           0 :         keySetBaseName (key, "ex8");
      62           0 :         keySetBaseName (key, "ex9");
      63           0 :         keyAddBaseName (key, "///exxx9///ex10///ex\\/11///");
      64           0 :         keySetBaseName (key, "ex12");
      65           0 :         keySetBaseName (key, "ex13///");
      66           0 :         ksAppendKey (ks, key);
      67             : 
      68           0 :         ksDel (ks);
      69             : 
      70           0 :         printf ("finished\n");
      71             : 
      72             :         return 0;
      73             : }

Generated by: LCOV version 1.13