#include "tests.h"

#ifdef HAVE_LINUX_FIEMAP_H

# include <stdio.h>
# include <sys/ioctl.h>
# include <linux/fiemap.h>
# include <linux/fs.h>
# include "xlat.h"
# include "xlat/fiemap_flags.h"

static void
test_fiemap(void)
{
	(void) tail_alloc(1);
	struct fiemap *const args = tail_alloc(sizeof(*args));

	printf("ioctl(-1, FS_IOC_FIEMAP, {fm_start=%" PRI__u64
	       ", fm_length=%" PRI__u64", fm_flags=",
	       args->fm_start, args->fm_length);
	printflags(fiemap_flags, args->fm_flags, "FIEMAP_FLAG_???");
	printf(", fm_extent_count=%u})", args->fm_extent_count);
	ioctl(-1, FS_IOC_FIEMAP, args);
	printf(" = -1 EBADF (%m)\n");

	/* The live version of this test is in btrfs.c */
}

/* clone and dedupe ioctls are in btrfs.c since they originated there */

int
main(int argc, char *argv[])
{
	test_fiemap();

	puts("+++ exited with 0 +++");

	return 0;
}

#else

SKIP_MAIN_UNDEFINED("HAVE_LINUX_FIEMAP_H")

#endif
