#include <stdio.h>
#include <stdlib.h>

#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>

#include "selfie.h"

int
stacktest(int n)
{
	char pad[0x1000];

	pad[0] = 1;
	if (n == 0)
		return pad[0];
	return stacktest(n-1);
}

void
brktest(int n)
{
	int x;

	for (x=0; x<n; x++)
		malloc(0x400);
}

int
main()
{
	int fd;

	/* dump(1, maps, mapssz); */
	fd = open("snap", O_CREAT|O_WRONLY, 0755);
	if (fd < 0) {
		perror("open");
		return 1;
	}
	switch (selfie(fd)) {
	case -1:
		perror("dumpelf");
		return 1;
	case 0:
		puts("snapped selfie");
		break;
	case 1:
		puts("back from selfie!");
		break;
	}
	stacktest(40);
	brktest(10 * 0x400);
	return 0;
}
