#include <assert.h> #include <stdlib.h> #include <sys/capability.h> /* * Original from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=400591 * * Modified to test more functions.. AGM - 2008/07/06. */ int main (int argc, char *argv[]) { cap_t caps, caps2; ssize_t size, copy_size; void *buffer; char *text1, *text2; assert((caps = cap_get_pid(1))); text1 = cap_to_text(caps, NULL); assert(text1); size = cap_size (caps); assert (size>0 && size<1024); buffer = malloc (size); assert (buffer); copy_size = cap_copy_ext (buffer, caps, size); assert (copy_size == size); caps2 = cap_copy_int(buffer); assert (caps2); text2 = cap_to_text(caps2, NULL); assert(text2); assert(strcmp(text1, text2) == 0); assert(cap_compare(caps, caps2) == 0); return 0; }