cstdio.pass.cpp 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. //===----------------------------------------------------------------------===//
  2. //
  3. // The LLVM Compiler Infrastructure
  4. //
  5. // This file is dual licensed under the MIT and the University of Illinois Open
  6. // Source Licenses. See LICENSE.TXT for details.
  7. //
  8. //===----------------------------------------------------------------------===//
  9. // test <cstdio>
  10. #include <cstdio>
  11. #include <type_traits>
  12. #ifndef BUFSIZ
  13. #error BUFSIZ not defined
  14. #endif
  15. #ifndef EOF
  16. #error EOF not defined
  17. #endif
  18. #ifndef FILENAME_MAX
  19. #error FILENAME_MAX not defined
  20. #endif
  21. #ifndef FOPEN_MAX
  22. #error FOPEN_MAX not defined
  23. #endif
  24. #ifndef L_tmpnam
  25. #error L_tmpnam not defined
  26. #endif
  27. #ifndef NULL
  28. #error NULL not defined
  29. #endif
  30. #ifndef SEEK_CUR
  31. #error SEEK_CUR not defined
  32. #endif
  33. #ifndef SEEK_END
  34. #error SEEK_END not defined
  35. #endif
  36. #ifndef SEEK_SET
  37. #error SEEK_SET not defined
  38. #endif
  39. #ifndef TMP_MAX
  40. #error TMP_MAX not defined
  41. #endif
  42. #ifndef _IOFBF
  43. #error _IOFBF not defined
  44. #endif
  45. #ifndef _IOLBF
  46. #error _IOLBF not defined
  47. #endif
  48. #ifndef _IONBF
  49. #error _IONBF not defined
  50. #endif
  51. #ifndef stderr
  52. #error stderr not defined
  53. #endif
  54. #ifndef stdin
  55. #error stdin not defined
  56. #endif
  57. #ifndef stdout
  58. #error stdout not defined
  59. #endif
  60. #include <cstdarg>
  61. int main()
  62. {
  63. std::FILE* fp = 0;
  64. std::fpos_t fpos = {0};
  65. std::size_t s = 0;
  66. char* cp = 0;
  67. std::va_list va;
  68. static_assert((std::is_same<decltype(std::remove("")), int>::value), "");
  69. static_assert((std::is_same<decltype(std::rename("","")), int>::value), "");
  70. static_assert((std::is_same<decltype(std::tmpfile()), std::FILE*>::value), "");
  71. static_assert((std::is_same<decltype(std::tmpnam(cp)), char*>::value), "");
  72. static_assert((std::is_same<decltype(std::fclose(fp)), int>::value), "");
  73. static_assert((std::is_same<decltype(std::fflush(fp)), int>::value), "");
  74. static_assert((std::is_same<decltype(std::fopen("", "")), std::FILE*>::value), "");
  75. static_assert((std::is_same<decltype(std::freopen("", "", fp)), std::FILE*>::value), "");
  76. static_assert((std::is_same<decltype(std::setbuf(fp,cp)), void>::value), "");
  77. static_assert((std::is_same<decltype(std::vfprintf(fp,"",va)), int>::value), "");
  78. static_assert((std::is_same<decltype(std::fprintf(fp," ")), int>::value), "");
  79. static_assert((std::is_same<decltype(std::fscanf(fp,"")), int>::value), "");
  80. static_assert((std::is_same<decltype(std::printf(" ")), int>::value), "");
  81. static_assert((std::is_same<decltype(std::scanf(" ")), int>::value), "");
  82. static_assert((std::is_same<decltype(std::snprintf(cp,0," ")), int>::value), "");
  83. static_assert((std::is_same<decltype(std::sprintf(cp," ")), int>::value), "");
  84. static_assert((std::is_same<decltype(std::sscanf("","")), int>::value), "");
  85. static_assert((std::is_same<decltype(std::vfprintf(fp,"",va)), int>::value), "");
  86. static_assert((std::is_same<decltype(std::vfscanf(fp,"",va)), int>::value), "");
  87. static_assert((std::is_same<decltype(std::vprintf(" ",va)), int>::value), "");
  88. static_assert((std::is_same<decltype(std::vscanf("",va)), int>::value), "");
  89. static_assert((std::is_same<decltype(std::vsnprintf(cp,0," ",va)), int>::value), "");
  90. static_assert((std::is_same<decltype(std::vsprintf(cp," ",va)), int>::value), "");
  91. static_assert((std::is_same<decltype(std::vsscanf("","",va)), int>::value), "");
  92. static_assert((std::is_same<decltype(std::fgetc(fp)), int>::value), "");
  93. static_assert((std::is_same<decltype(std::fgets(cp,0,fp)), char*>::value), "");
  94. static_assert((std::is_same<decltype(std::fputc(0,fp)), int>::value), "");
  95. static_assert((std::is_same<decltype(std::fputs("",fp)), int>::value), "");
  96. static_assert((std::is_same<decltype(std::getc(fp)), int>::value), "");
  97. static_assert((std::is_same<decltype(std::getchar()), int>::value), "");
  98. static_assert((std::is_same<decltype(std::gets(cp)), char*>::value), "");
  99. static_assert((std::is_same<decltype(std::putc(0,fp)), int>::value), "");
  100. static_assert((std::is_same<decltype(std::putchar(0)), int>::value), "");
  101. static_assert((std::is_same<decltype(std::puts("")), int>::value), "");
  102. static_assert((std::is_same<decltype(std::ungetc(0,fp)), int>::value), "");
  103. static_assert((std::is_same<decltype(std::fread((void*)0,0,0,fp)), std::size_t>::value), "");
  104. static_assert((std::is_same<decltype(std::fwrite((const void*)0,0,0,fp)), std::size_t>::value), "");
  105. static_assert((std::is_same<decltype(std::fgetpos(fp, &fpos)), int>::value), "");
  106. static_assert((std::is_same<decltype(std::fseek(fp, 0,0)), int>::value), "");
  107. static_assert((std::is_same<decltype(std::fsetpos(fp, &fpos)), int>::value), "");
  108. static_assert((std::is_same<decltype(std::ftell(fp)), long>::value), "");
  109. static_assert((std::is_same<decltype(std::rewind(fp)), void>::value), "");
  110. static_assert((std::is_same<decltype(std::clearerr(fp)), void>::value), "");
  111. static_assert((std::is_same<decltype(std::feof(fp)), int>::value), "");
  112. static_assert((std::is_same<decltype(std::ferror(fp)), int>::value), "");
  113. static_assert((std::is_same<decltype(std::perror("")), void>::value), "");
  114. }