diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2011-10-18 16:44:32 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2011-10-18 16:44:32 (GMT) |
commit | dc90cfc1c2619b3e5455ed2da6a627e1296f1cbc (patch) | |
tree | f764d53b7fcdcc384d80fd6d13e0feb4f5a15e2f /config/cmake/HDF5Tests.c | |
parent | cd38a32601e3aacacd45365f8f129bfe08f08898 (diff) | |
download | hdf5-dc90cfc1c2619b3e5455ed2da6a627e1296f1cbc.zip hdf5-dc90cfc1c2619b3e5455ed2da6a627e1296f1cbc.tar.gz hdf5-dc90cfc1c2619b3e5455ed2da6a627e1296f1cbc.tar.bz2 |
[svn-r21596] Correct large file support test
Diffstat (limited to 'config/cmake/HDF5Tests.c')
-rw-r--r-- | config/cmake/HDF5Tests.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/config/cmake/HDF5Tests.c b/config/cmake/HDF5Tests.c index f580bbc..79741a8 100644 --- a/config/cmake/HDF5Tests.c +++ b/config/cmake/HDF5Tests.c @@ -336,6 +336,37 @@ int main() } #endif +#ifdef TEST_LFS_WORKS +/* Return 0 when LFS is available and 1 otherwise. */ +#define _LARGEFILE_SOURCE +#define _LARGEFILE64_SOURCE +#define _LARGE_FILES +#define _FILE_OFFSET_BITS 64 +#include <sys/types.h> +#include <sys/stat.h> +#include <assert.h> +#include <stdio.h> + +int main(int argc, char **argv) +{ + /* check that off_t can hold 2^63 - 1 and perform basic operations... */ +#define OFF_T_64 (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + if (OFF_T_64 % 2147483647 != 1) + return 1; + + // stat breaks on SCO OpenServer + struct stat buf; + stat( argv[0], &buf ); + if (!S_ISREG(buf.st_mode)) + return 2; + + FILE *file = fopen( argv[0], "r" ); + off_t offset = ftello( file ); + fseek( file, offset, SEEK_CUR ); + fclose( file ); + return 0; +} +#endif #ifdef GETTIMEOFDAY_GIVES_TZ #ifdef HAVE_SYS_TIME_H |