From: Chris Johns <chr...@rtems.org> Update #3870 --- testsuites/libtests/newlib01/init.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/testsuites/libtests/newlib01/init.c b/testsuites/libtests/newlib01/init.c index 74e648799e..a9581b3570 100644 --- a/testsuites/libtests/newlib01/init.c +++ b/testsuites/libtests/newlib01/init.c @@ -18,11 +18,15 @@ #include <stdio.h> +#include <sys/reent.h> + #include <rtems.h> #include <rtems/console.h> #include <rtems/imfs.h> #include <rtems/libcsupport.h> +#include <rtems/bspIo.h> + #include "tmacros.h" const char rtems_test_name[] = "NEWLIB 1"; @@ -63,12 +67,24 @@ static void wait(void) static void worker_task(rtems_task_argument arg) { test_context *ctx = &test_instance; + struct _reent *reent = _REENT; + FILE *output; char buf[1] = { 'x' }; size_t n; - stdout = fopen(&file_path[0], "r+"); + rtems_test_assert(reent->__sdidinit == 0); + + output = stdout = fopen(&file_path[0], "r+"); rtems_test_assert(stdout != NULL); + /* + * Check newlib's __sinit does not touch our assigned file pointer. + */ + rtems_test_assert(reent->__sdidinit == 0); + rtems_test_assert(fflush(stdout) == 0); + rtems_test_assert(reent->__sdidinit != 0); + rtems_test_assert(stdout == output); + n = fwrite(&buf[0], sizeof(buf), 1, stdout); rtems_test_assert(n == 1); -- 2.23.0 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel