1 #include <assert.h>
2 #include <stdlib.h>
3 #include <sys/capability.h>
4 
5 /*
6  * Original from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=400591
7  *
8  * Modified to test more functions.. AGM - 2008/07/06.
9  */
10 
main(int argc,char * argv[])11 int main (int argc, char *argv[])
12 {
13   cap_t caps, caps2;
14   ssize_t size, copy_size;
15   void *buffer;
16   char *text1, *text2;
17 
18   assert((caps = cap_get_pid(1)));
19 
20   text1 = cap_to_text(caps, NULL);
21   assert(text1);
22 
23   size = cap_size (caps);
24   assert (size>0  && size<1024);
25 
26   buffer = malloc (size);
27   assert (buffer);
28 
29   copy_size = cap_copy_ext (buffer, caps, size);
30   assert (copy_size == size);
31 
32   caps2 = cap_copy_int(buffer);
33   assert (caps2);
34 
35   text2 = cap_to_text(caps2, NULL);
36   assert(text2);
37 
38   assert(strcmp(text1, text2) == 0);
39 
40   assert(cap_compare(caps, caps2) == 0);
41 
42   return 0;
43 }
44