diff options
author | Andreas Baumann <abaumann@yahoo.com> | 2012-05-01 20:06:15 +0200 |
---|---|---|
committer | Andreas Baumann <abaumann@yahoo.com> | 2012-05-01 20:06:15 +0200 |
commit | 48f270b4690f085561cc855008d67445f08422e4 (patch) | |
tree | 7f19099bf9322f038d0fb3c16c659dbd3fb43ee9 /tests/testbigfile.c | |
parent | 2cc6009fc5809eccd984aa69c6ae940a7a744cfb (diff) | |
download | pgfuse-48f270b4690f085561cc855008d67445f08422e4.tar.gz pgfuse-48f270b4690f085561cc855008d67445f08422e4.tar.bz2 |
added a test for sparse files
Diffstat (limited to 'tests/testbigfile.c')
-rw-r--r-- | tests/testbigfile.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/testbigfile.c b/tests/testbigfile.c new file mode 100644 index 0000000..f17ff18 --- /dev/null +++ b/tests/testbigfile.c @@ -0,0 +1,62 @@ +/* + Copyright (C) 2012 Andreas Baumann <abaumann@yahoo.com> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include <stdio.h> +#include <string.h> +#include <unistd.h> +#include <sys/stat.h> +#include <fcntl.h> + +int main( void ) +{ + char buf[4096]; + int fd; + ssize_t res; + + memset( buf, 1, 4096 ); + + fd = open( "./mnt/testbigfile.data", O_WRONLY | O_CREAT, + S_IRUSR | S_IWUSR ); + if( fd < 0 ) { + perror( "Unable to open testfile" ); + return 1; + } + + res = write( fd, buf, 4096 ); + if( res != 4096 ) { + perror( "Error writing" ); + (void)close( fd ); + return 1; + } + + res = lseek( fd, 409600 /* 4294967296 */, SEEK_SET ); + if( res < 0 ) { + perror( "Unable to seek in testfile" ); + return 1; + } + + res = write( fd, buf, 4096 ); + if( res != 4096 ) { + perror( "Error writing" ); + (void)close( fd ); + return 1; + } + + (void)close( fd ); + + return 0; +} |