#include "tests.h"
#include <sys/syscall.h>

#ifdef __NR_uname

# include <stdio.h>
# include <sys/utsname.h>
# include <unistd.h>

int main(int ac, char **av)
{
	int abbrev = ac > 1;
	struct utsname *const uname = tail_alloc(sizeof(struct utsname));
	int rc = syscall(__NR_uname, uname);
	printf("uname({sysname=\"");
	print_quoted_string(uname->sysname);
	printf("\", nodename=\"");
	print_quoted_string(uname->nodename);
	if (abbrev) {
		printf("\", ...");
	} else {
		printf("\", release=\"");
		print_quoted_string(uname->release);
		printf("\", version=\"");
		print_quoted_string(uname->version);
		printf("\", machine=\"");
		print_quoted_string(uname->machine);
# ifdef HAVE_STRUCT_UTSNAME_DOMAINNAME
		printf("\", domainname=\"");
		print_quoted_string(uname->domainname);
# endif
		printf("\"");
	}
	printf("}) = %d\n", rc);

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

#else

SKIP_MAIN_UNDEFINED("__NR_uname")

#endif
