summaryrefslogtreecommitdiffstats
path: root/testsuites/psxtests/psxfile01/test.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2001-04-24 23:04:59 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2001-04-24 23:04:59 +0000
commitb2a1ea3a526d32c4f19669913a56f018ccf26a01 (patch)
tree7476cc068e35d60679011918866180cdd35dc07c /testsuites/psxtests/psxfile01/test.c
parent2000-04-24 Eric Norum <eric.norum@usask.ca> (diff)
downloadrtems-b2a1ea3a526d32c4f19669913a56f018ccf26a01.tar.bz2
2001-04-24 Joel Sherrill <joel@OARcorp.com>
* psxfile01/test.c, psxfile01/psxfile01.scn : Added test case for open, write, reopen, append twice from Andrew Bythell <abythell@nortelnetworks.com> that tripped an initialization problem in the IMFS.
Diffstat (limited to '')
-rw-r--r--testsuites/psxtests/psxfile01/test.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/testsuites/psxtests/psxfile01/test.c b/testsuites/psxtests/psxfile01/test.c
index d935babd9f..4f42e32a38 100644
--- a/testsuites/psxtests/psxfile01/test.c
+++ b/testsuites/psxtests/psxfile01/test.c
@@ -35,6 +35,8 @@
#include <rtems.h>
#include <rtems/libio.h>
+void test_case_reopen_append(void);
+
char test_write_buffer[ 1024 ];
/*
@@ -498,8 +500,48 @@ int main(
rtems_status = rtems_io_register_name( "/dev/console", 0, 0 );
+ test_case_reopen_append();
+
printf( "*** END OF FILE TEST 1 ***\n" );
exit( 0 );
}
+/*
+ * Open/Create a File and write to it
+ *
+ * Test case submitted by Andrew Bythell <abythell@nortelnetworks.com>.
+ *
+ */
+
+void test_file (char *filename, char *mode);
+
+void test_case_reopen_append(void)
+{
+ printf ("Writing First File\n");
+ test_file ("/one.txt", "a");
+ test_file ("/one.txt", "a");
+
+ /* but not the second time - this will insert junk.
+ the number of ^@'s seems to equal the number of
+ actual characters in the file */
+
+ printf ("Writing Second File\n");
+ test_file ("/two.txt", "a");
+ test_file ("/two.txt", "a");
+
+ test_cat( "/one.txt", 0, 1024 );
+ test_cat( "/two.txt", 0, 1024 );
+}
+
+void test_file (char *filename, char *mode)
+{
+ FILE *fp;
+ fp = fopen (filename, mode);
+ if (!fp)
+ perror ("fopen");
+ fprintf (fp, "this is a test line\n");
+ if (fclose (fp))
+ perror ("fclose");
+}
+