1010#include " src/stdio/fclose.h"
1111#include " src/stdio/ferror.h"
1212#include " src/stdio/fopen.h"
13- #include " src/stdio/fopencookie.h"
1413#include " src/stdio/fread.h"
1514#endif // LIBC_COPT_STDIO_USE_SYSTEM_FILE
1615
2120#include " test/UnitTest/ErrnoSetterMatcher.h"
2221#include " test/UnitTest/Test.h"
2322
23+ #if defined(LIBC_TARGET_OS_IS_LINUX) && \
24+ !defined (LIBC_COPT_STDIO_USE_SYSTEM_FILE)
25+ #include " src/stdio/fopencookie.h"
26+ #endif
27+
2428namespace printf_test {
2529#ifndef LIBC_COPT_STDIO_USE_SYSTEM_FILE
2630using LIBC_NAMESPACE::fclose;
2731using LIBC_NAMESPACE::ferror;
2832using LIBC_NAMESPACE::fopen;
29- using LIBC_NAMESPACE::fopencookie;
3033using LIBC_NAMESPACE::fread;
3134#else // defined(LIBC_COPT_STDIO_USE_SYSTEM_FILE)
3235using ::fclose;
3336using ::ferror;
3437using ::fopen;
35- using ::fopencookie;
3638using ::fread;
3739#endif // LIBC_COPT_STDIO_USE_SYSTEM_FILE
3840} // namespace printf_test
@@ -86,11 +88,13 @@ TEST(LlvmLibcFPrintfTest, WriteToFile) {
8688 written =
8789 LIBC_NAMESPACE::fprintf (file, " Writing to a read only file should fail." );
8890 EXPECT_LT (written, 0 );
89- ASSERT_ERRNO_EQ (EIO );
91+ ASSERT_ERRNO_EQ (EBADF );
9092
9193 ASSERT_EQ (printf_test::fclose (file), 0 );
9294}
9395
96+ #if !defined(LIBC_COPT_STDIO_USE_SYSTEM_FILE) && \
97+ defined (LIBC_TARGET_OS_IS_LINUX)
9498TEST(LlvmLibcFPrintfTest, CharsWrittenOverflow) {
9599 struct NoopStream {};
96100 auto noop_write = [](void *, const char *, size_t size) -> ssize_t {
@@ -99,7 +103,7 @@ TEST(LlvmLibcFPrintfTest, CharsWrittenOverflow) {
99103
100104 NoopStream stream;
101105 cookie_io_functions_t funcs = {nullptr , +noop_write, nullptr , nullptr };
102- ::FILE *file = printf_test ::fopencookie (&stream, " w" , funcs);
106+ ::FILE *file = LIBC_NAMESPACE ::fopencookie (&stream, " w" , funcs);
103107 ASSERT_NE (file, nullptr );
104108
105109 // Trigger an overflow in the return value of fprintf by writing more than
@@ -113,6 +117,8 @@ TEST(LlvmLibcFPrintfTest, CharsWrittenOverflow) {
113117
114118 EXPECT_EQ (printf_test::fclose (file), 0 );
115119}
120+ #endif // #if !defined(LIBC_COPT_STDIO_USE_SYSTEM_FILE) &&
121+ // defined(LIBC_TARGET_OS_IS_LINUX)
116122
117123#ifndef LIBC_COPT_PRINTF_NO_NULLPTR_CHECKS
118124TEST (LlvmLibcFPrintfTest, NullPtrCheck) {
0 commit comments