| Index: tests/glibc_syscall_wrappers/test_fstat.c
|
| ===================================================================
|
| --- tests/glibc_syscall_wrappers/test_fstat.c (revision 0)
|
| +++ tests/glibc_syscall_wrappers/test_fstat.c (revision 0)
|
| @@ -0,0 +1,75 @@
|
| +/*
|
| + * Copyright 2010 The Native Client Authors. All rights reserved.
|
| + * Use of this source code is governed by a BSD-style license that can
|
| + * be found in the LICENSE file.
|
| + */
|
| +
|
| +#include <assert.h>
|
| +#include <errno.h>
|
| +#include <stddef.h>
|
| +#include <stdio.h>
|
| +#include <sys/stat.h>
|
| +
|
| +int main(int argc, char** argv) {
|
| + struct stat st;
|
| + FILE* file;
|
| + int fd;
|
| + if (2 != argc) {
|
| + printf("Usage: sel_ldr test_fstat.nexe test_stat_data\n");
|
| + return 1;
|
| + }
|
| + st.st_size = 0;
|
| + printf("st_dev offset %d, size %d\n",
|
| + offsetof(struct stat, st_dev),
|
| + sizeof(st.st_dev));
|
| + printf("st_ino offset %d, size %d\n",
|
| + offsetof(struct stat, st_ino),
|
| + sizeof(st.st_ino));
|
| + printf("st_mode offset %d, size %d\n",
|
| + offsetof(struct stat, st_mode),
|
| + sizeof(st.st_mode));
|
| + printf("st_nlink offset %d, size %d\n",
|
| + offsetof(struct stat, st_nlink),
|
| + sizeof(st.st_nlink));
|
| + printf("st_uid offset %d, size %d\n",
|
| + offsetof(struct stat, st_uid),
|
| + sizeof(st.st_uid));
|
| + printf("st_gid offset %d, size %d\n",
|
| + offsetof(struct stat, st_gid),
|
| + sizeof(st.st_gid));
|
| + printf("st_rdev offset %d, size %d\n",
|
| + offsetof(struct stat, st_rdev),
|
| + sizeof(st.st_rdev));
|
| + printf("st_size offset %d, size %d\n",
|
| + offsetof(struct stat, st_size),
|
| + sizeof(st.st_size));
|
| + printf("st_blksize offset %d, size %d\n",
|
| + offsetof(struct stat, st_blksize),
|
| + sizeof(st.st_blksize));
|
| + printf("st_blocks offset %d, size %d\n",
|
| + offsetof(struct stat, st_blocks),
|
| + sizeof(st.st_blocks));
|
| + printf("st_atim offset %d, size %d\n",
|
| + offsetof(struct stat, st_atim),
|
| + sizeof(st.st_atim));
|
| + printf("struct st size %d\n",
|
| + sizeof(st));
|
| + file = fopen(argv[1], "r");
|
| + if (file == NULL)
|
| + return 2;
|
| + fd = fileno(file);
|
| + errno = 0;
|
| + if (fstat(fd, &st))
|
| + return 3;
|
| + printf("%d\n", (int)st.st_size);
|
| + if (errno != 0)
|
| + return 4;
|
| + if (fclose(file))
|
| + return 5;
|
| + errno = 0;
|
| + if (fstat(-1, &st) != -1)
|
| + return 6;
|
| + if (errno != EBADF)
|
| + return 7;
|
| + return 0;
|
| +}
|
|
|
| Property changes on: tests/glibc_syscall_wrappers/test_fstat.c
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|