testGeneratedFileStream.cxx 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #include "cmGeneratedFileStream.h"
  4. #include "cmSystemTools.h"
  5. #include <iostream>
  6. #include <string>
  7. #define cmFailed(m1, m2) \
  8. std::cout << "FAILED: " << (m1) << (m2) << "\n"; \
  9. failed = 1
  10. int testGeneratedFileStream(int /*unused*/, char* /*unused*/ [])
  11. {
  12. int failed = 0;
  13. cmGeneratedFileStream gm;
  14. std::string file1 = "generatedFile1";
  15. std::string file2 = "generatedFile2";
  16. std::string file3 = "generatedFile3";
  17. std::string file4 = "generatedFile4";
  18. std::string file1tmp = file1 + ".tmp";
  19. std::string file2tmp = file2 + ".tmp";
  20. std::string file3tmp = file3 + ".tmp";
  21. std::string file4tmp = file4 + ".tmp";
  22. gm.Open(file1.c_str());
  23. gm << "This is generated file 1";
  24. gm.Close();
  25. gm.Open(file2.c_str());
  26. gm << "This is generated file 2";
  27. gm.Close();
  28. gm.Open(file3.c_str());
  29. gm << "This is generated file 3";
  30. gm.Close();
  31. gm.Open(file4.c_str());
  32. gm << "This is generated file 4";
  33. gm.Close();
  34. if (cmSystemTools::FileExists(file1.c_str())) {
  35. if (cmSystemTools::FileExists(file2.c_str())) {
  36. if (cmSystemTools::FileExists(file3.c_str())) {
  37. if (cmSystemTools::FileExists(file4.c_str())) {
  38. if (cmSystemTools::FileExists(file1tmp.c_str())) {
  39. cmFailed("Something wrong with cmGeneratedFileStream. Temporary "
  40. "file is still here: ",
  41. file1tmp.c_str());
  42. } else if (cmSystemTools::FileExists(file2tmp.c_str())) {
  43. cmFailed("Something wrong with cmGeneratedFileStream. Temporary "
  44. "file is still here: ",
  45. file2tmp.c_str());
  46. } else if (cmSystemTools::FileExists(file3tmp.c_str())) {
  47. cmFailed("Something wrong with cmGeneratedFileStream. Temporary "
  48. "file is still here: ",
  49. file3tmp.c_str());
  50. } else if (cmSystemTools::FileExists(file4tmp.c_str())) {
  51. cmFailed("Something wrong with cmGeneratedFileStream. Temporary "
  52. "file is still here: ",
  53. file4tmp.c_str());
  54. } else {
  55. std::cout << "cmGeneratedFileStream works\n";
  56. }
  57. } else {
  58. cmFailed(
  59. "Something wrong with cmGeneratedFileStream. Cannot find file: ",
  60. file4.c_str());
  61. }
  62. } else {
  63. cmFailed("Something wrong with cmGeneratedFileStream. Found file: ",
  64. file3.c_str());
  65. }
  66. } else {
  67. cmFailed(
  68. "Something wrong with cmGeneratedFileStream. Cannot find file: ",
  69. file2.c_str());
  70. }
  71. } else {
  72. cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ",
  73. file1.c_str());
  74. }
  75. cmSystemTools::RemoveFile(file1);
  76. cmSystemTools::RemoveFile(file2);
  77. cmSystemTools::RemoveFile(file3);
  78. cmSystemTools::RemoveFile(file4);
  79. cmSystemTools::RemoveFile(file1tmp);
  80. cmSystemTools::RemoveFile(file2tmp);
  81. cmSystemTools::RemoveFile(file3tmp);
  82. cmSystemTools::RemoveFile(file4tmp);
  83. return failed;
  84. }