#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <cap-ng.h>
#include <pthread.h>

//#define DEBUG 1

pthread_t thread1, thread2;

void *thread1_main(void *arg)
{
	capng_fill(CAPNG_SELECT_BOTH);
#ifdef DEBUG
	printf("thread1 filled capabilities\n");
#endif
	sleep(2);
	if (capng_have_capabilities(CAPNG_SELECT_CAPS) < CAPNG_FULL) {
		printf("Capabilities missing when there should be some\n");
		exit(1);
	}
#ifdef DEBUG
		printf("SUCCESS: Full capabilities reported\n");
#endif
	return NULL;
}

void *thread2_main(void *arg)
{
	sleep(1);
#ifdef DEBUG
	printf("thread2 getting capabilities\n");
#endif
	capng_get_caps_process();
	if (capng_have_capabilities(CAPNG_SELECT_CAPS) != CAPNG_NONE) {
		printf("Detected capabilities when there should not be any\n");
		exit(1);
	}
	capng_clear(CAPNG_SELECT_BOTH);
#ifdef DEBUG
	printf("SUCCESS: No capabilities reported\n");
#endif
	return NULL;
}

int main(void)
{
	printf("Testing thread separation of capabilities\n");
	pthread_create(&thread1, NULL, thread1_main, NULL);
	pthread_create(&thread2, NULL, thread2_main, NULL);
	sleep(3);
	return 0;
}

