Merge "Add tests for stdio functions not setting the error indicator." into main am: 713dfe3e16 am: 5c2de859ce

Original change: https://android-review.googlesource.com/c/platform/bionic/+/2779321

Change-Id: I1b9c3ef45598697da65bb710313e619d42385676
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/tests/stdio_test.cpp b/tests/stdio_test.cpp
index bfe8406..5cb634c 100644
--- a/tests/stdio_test.cpp
+++ b/tests/stdio_test.cpp
@@ -2153,6 +2153,27 @@
   test_fread_from_write_only_stream(64*1024);
 }
 
+TEST(STDIO_TEST, fwrite_to_read_only_stream) {
+  FILE* fp = fopen("/proc/version", "re");
+  ASSERT_FALSE(ferror(fp));
+  ASSERT_EQ(0U, fwrite("hello", 1, 5, fp));
+  ASSERT_TRUE(ferror(fp));
+}
+
+TEST(STDIO_TEST, fputc_to_read_only_stream) {
+  FILE* fp = fopen("/proc/version", "re");
+  ASSERT_FALSE(ferror(fp));
+  ASSERT_EQ(EOF, fputc('x', fp));
+  ASSERT_TRUE(ferror(fp));
+}
+
+TEST(STDIO_TEST, fprintf_to_read_only_stream) {
+  FILE* fp = fopen("/proc/version", "re");
+  ASSERT_FALSE(ferror(fp));
+  ASSERT_EQ(-1, fprintf(fp, "%s%d", "hello", 123));
+  ASSERT_TRUE(ferror(fp));
+}
+
 static void test_fwrite_after_fread(size_t n) {
   TemporaryFile tf;