summaryrefslogtreecommitdiffstats
path: root/c/src/tests/psxtests/psxfile01/test.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/tests/psxtests/psxfile01/test.c')
-rw-r--r--c/src/tests/psxtests/psxfile01/test.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/c/src/tests/psxtests/psxfile01/test.c b/c/src/tests/psxtests/psxfile01/test.c
index d935babd9f..4f42e32a38 100644
--- a/c/src/tests/psxtests/psxfile01/test.c
+++ b/c/src/tests/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");
+}
+