diff options
Diffstat (limited to 'testsuites/fstests/fsfpathconf/test.c')
-rw-r--r-- | testsuites/fstests/fsfpathconf/test.c | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/testsuites/fstests/fsfpathconf/test.c b/testsuites/fstests/fsfpathconf/test.c new file mode 100644 index 0000000000..a375d09a31 --- /dev/null +++ b/testsuites/fstests/fsfpathconf/test.c @@ -0,0 +1,93 @@ +/* + * COPYRIGHT (c) 2012 - . + * Krzysztof Miesowicz krzysztof.miesowicz@gmail.com + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <sys/stat.h> +#include <stdio.h> +#include <string.h> +#include <unistd.h> +#include <stdlib.h> +#include <errno.h> +#include <rtems.h> +#include <fcntl.h> +#include <inttypes.h> +#include <rtems/error.h> +#include <ctype.h> +#include <rtems/libcsupport.h> + +#include "fstest.h" +#include "tmacros.h" + +static void fpathconf_test(void){ + + int rv = 0; + const char *fname = "testfile.km"; + int fd = -1; + +/* attempt to invoke fpathconf on non-existing file */ + rv = fpathconf(fd, _PC_LINK_MAX); + printf("\nfpathconf of non-existing file give %d , expected -1",rv); + + if (rv == -1) { + printf("\n... creating file \"%s\"\n",fname); + fd = open(fname,O_WRONLY | O_CREAT | O_TRUNC,S_IREAD|S_IWRITE); + + if (fd < 0) { + printf("*** file create failed, errno = %d(%s)\n",errno,strerror(errno)); + }else + printf("*** file created succesfully\n"); + +/* invoking fpathconf with request for every possible informations */ + rv = fpathconf(fd, _PC_LINK_MAX); + printf("\nrequest with _PC_LINK_MAX return : %d",rv); + rv = fpathconf(fd, _PC_MAX_CANON); + printf("\nrequest with _PC_MAX_CANON return : %d",rv); + rv = fpathconf(fd, _PC_MAX_INPUT); + printf("\nrequest with _PC_MAX_INPUT return : %d",rv); + rv = fpathconf(fd, _PC_NAME_MAX); + printf("\nrequest with _PC_NAME_MAX return : %d",rv); + rv = fpathconf(fd, _PC_PATH_MAX); + printf("\nrequest with _PC_PATH_MAX return : %d",rv); + rv = fpathconf(fd, _PC_PIPE_BUF); + printf("\nrequest with _PC_PIPE_BUF return : %d",rv); + rv = fpathconf(fd, _PC_CHOWN_RESTRICTED); + printf("\nrequest with _PC_CHOWN_RESTRICTED return : %d",rv); + rv = fpathconf(fd, _PC_NO_TRUNC); + printf("\nrequest with _PC_NO_TRUNC return : %d",rv); + rv = fpathconf(fd, _PC_VDISABLE); + printf("\nrequest with _PC_VDISABLE return : %d",rv); + rv = fpathconf(fd, _PC_ASYNC_IO); + printf("\nrequest with _PC_ASYNC_IO return : %d",rv); + rv = fpathconf(fd, _PC_PRIO_IO); + printf("\nrequest with _PC_PRIO_IO return : %d",rv); + rv = fpathconf(fd, _PC_SYNC_IO); + printf("\nrequest with _PC_SYNC_IO return : %d",rv); +/* invoking fpathconf with bad information requested - 255 */ + rv = fpathconf(fd, 255); + printf("\nrequest with bad argument return : %d",rv); + + close(fd); + fd = open("testfile.test", O_WRONLY); + + rv = fpathconf(fd, _PC_LINK_MAX); + } +} + +void test(void){ + + puts("\n\n*** FPATHCONF TEST ***" ); + fpathconf_test(); + puts( "\n*** END OF FPATHCONF TEST ***" ); + +} + +/* end of file */ |