fstests/fsfseeko01: New test

This commit is contained in:
Sebastian Huber
2012-06-19 15:55:01 +02:00
parent a94bcc5a3e
commit 361a400c57
6 changed files with 119 additions and 0 deletions
+1
View File
@@ -1,6 +1,7 @@
ACLOCAL_AMFLAGS = -I ../aclocal
SUBDIRS =
SUBDIRS += fsfseeko01
SUBDIRS += fsdosfssync01
SUBDIRS += imfs_fserror
SUBDIRS += imfs_fslink
+1
View File
@@ -77,6 +77,7 @@ AC_CHECK_SIZEOF([blkcnt_t])
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile
fsfseeko01/Makefile
fsdosfssync01/Makefile
imfs_fserror/Makefile
imfs_fslink/Makefile
+19
View File
@@ -0,0 +1,19 @@
rtems_tests_PROGRAMS = fsfseeko01
fsfseeko01_SOURCES = init.c
dist_rtems_tests_DATA = fsfseeko01.scn fsfseeko01.doc
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../automake/compile.am
include $(top_srcdir)/../automake/leaf.am
AM_CPPFLAGS += -I$(top_srcdir)/../support/include
LINK_OBJS = $(fsfseeko01_OBJECTS)
LINK_LIBS = $(fsfseeko01_LDLIBS)
fsfseeko01$(EXEEXT): $(fsfseeko01_OBJECTS) $(fsfseeko01_DEPENDENCIES)
@rm -f fsfseeko01$(EXEEXT)
$(make-exe)
include $(top_srcdir)/../automake/local.am
@@ -0,0 +1,11 @@
This file describes the directives and concepts tested by this test set.
test set name: fsfseeko01
directives:
TBD
concepts:
- Ensure that fseeko() and ftello() can use huge positive off_t values.
@@ -0,0 +1,6 @@
*** TEST FSFSEEKO 1 ***
fopen: Success
fseeko: Success
ftello: Success
fclose: Success
*** END OF TEST FSFSEEKO 1 ***
+81
View File
@@ -0,0 +1,81 @@
/*
* Copyright (c) 2012 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Obere Lagerstr. 30
* 82178 Puchheim
* Germany
* <rtems@embedded-brains.de>
*
* 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 "tmacros.h"
#include <sys/types.h>
#include <stdio.h>
#include <errno.h>
#include <inttypes.h>
#include <limits.h>
static void test(void)
{
FILE *file;
int rv;
const off_t off = sizeof(off_t) >= sizeof(int64_t)
? INT64_MAX
: (sizeof(off_t) == sizeof(int32_t) ? INT32_MAX : 1);
off_t actual_off;
errno = 0;
file = fopen("file", "w+");
perror("fopen");
rtems_test_assert(file != NULL);
errno = 0;
rv = fseeko(file, off, SEEK_SET);
perror("fseeko");
rtems_test_assert(rv == 0);
errno = 0;
actual_off = ftello(file);
perror("ftello");
rtems_test_assert(actual_off == off);
errno = 0;
rv = fclose(file);
perror("fclose");
rtems_test_assert(rv == 0);
}
static void Init(rtems_task_argument arg)
{
puts("\n\n*** TEST FSFSEEKO 1 ***");
test();
puts("*** END OF TEST FSFSEEKO 1 ***");
rtems_test_exit(0);
}
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 4
#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
#define CONFIGURE_INIT
#include <rtems/confdefs.h>