diff options
Diffstat (limited to 'tools/testing/selftests/efivarfs/create-read.c')
| -rw-r--r-- | tools/testing/selftests/efivarfs/create-read.c | 38 | 
1 files changed, 38 insertions, 0 deletions
diff --git a/tools/testing/selftests/efivarfs/create-read.c b/tools/testing/selftests/efivarfs/create-read.c new file mode 100644 index 00000000000..7feef188096 --- /dev/null +++ b/tools/testing/selftests/efivarfs/create-read.c @@ -0,0 +1,38 @@ +#include <stdio.h> +#include <stdint.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <errno.h> +#include <string.h> + +int main(int argc, char **argv) +{ +	const char *path; +	char buf[4]; +	int fd, rc; + +	if (argc < 2) { +		fprintf(stderr, "usage: %s <path>\n", argv[0]); +		return EXIT_FAILURE; +	} + +	path = argv[1]; + +	/* create a test variable */ +	fd = open(path, O_RDWR | O_CREAT, 0600); +	if (fd < 0) { +		perror("open(O_WRONLY)"); +		return EXIT_FAILURE; +	} + +	rc = read(fd, buf, sizeof(buf)); +	if (rc != 0) { +		fprintf(stderr, "Reading a new var should return EOF\n"); +		return EXIT_FAILURE; +	} + +	return EXIT_SUCCESS; +}  | 
