testGeneratedFileStream.cxx 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /*============================================================================
  2. CMake - Cross Platform Makefile Generator
  3. Copyright 2000-2011 Kitware, Inc., Insight Software Consortium
  4. Distributed under the OSI-approved BSD License (the "License");
  5. see accompanying file Copyright.txt for details.
  6. This software is distributed WITHOUT ANY WARRANTY; without even the
  7. implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  8. See the License for more information.
  9. ============================================================================*/
  10. #include "cmGeneratedFileStream.h"
  11. #include "cmSystemTools.h"
  12. #define cmFailed(m1, m2) \
  13. std::cout << "FAILED: " << m1 << m2 << "\n"; failed=1
  14. int testGeneratedFileStream(int, char*[])
  15. {
  16. int failed = 0;
  17. cmGeneratedFileStream gm;
  18. std::string file1 = "generatedFile1";
  19. std::string file2 = "generatedFile2";
  20. std::string file3 = "generatedFile3";
  21. std::string file4 = "generatedFile4";
  22. std::string file1tmp = file1 + ".tmp";
  23. std::string file2tmp = file2 + ".tmp";
  24. std::string file3tmp = file3 + ".tmp";
  25. std::string file4tmp = file4 + ".tmp";
  26. gm.Open(file1.c_str());
  27. gm << "This is generated file 1";
  28. gm.Close();
  29. gm.Open(file2.c_str());
  30. gm << "This is generated file 2";
  31. gm.Close();
  32. gm.Open(file3.c_str());
  33. gm << "This is generated file 3";
  34. gm.Close();
  35. gm.Open(file4.c_str());
  36. gm << "This is generated file 4";
  37. gm.Close();
  38. if ( cmSystemTools::FileExists(file1.c_str()) )
  39. {
  40. if ( cmSystemTools::FileExists(file2.c_str()) )
  41. {
  42. if ( cmSystemTools::FileExists(file3.c_str()) )
  43. {
  44. if ( cmSystemTools::FileExists(file4.c_str()) )
  45. {
  46. if ( cmSystemTools::FileExists(file1tmp.c_str()) )
  47. {
  48. cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file1tmp.c_str());
  49. }
  50. else if ( cmSystemTools::FileExists(file2tmp.c_str()) )
  51. {
  52. cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file2tmp.c_str());
  53. }
  54. else if ( cmSystemTools::FileExists(file3tmp.c_str()) )
  55. {
  56. cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file3tmp.c_str());
  57. }
  58. else if ( cmSystemTools::FileExists(file4tmp.c_str()) )
  59. {
  60. cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file4tmp.c_str());
  61. }
  62. else
  63. {
  64. std::cout << "cmGeneratedFileStream works\n";
  65. }
  66. }
  67. else
  68. {
  69. cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ", file4.c_str());
  70. }
  71. }
  72. else
  73. {
  74. cmFailed("Something wrong with cmGeneratedFileStream. Found file: ", file3.c_str());
  75. }
  76. }
  77. else
  78. {
  79. cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ", file2.c_str());
  80. }
  81. }
  82. else
  83. {
  84. cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ", file1.c_str());
  85. }
  86. cmSystemTools::RemoveFile(file1.c_str());
  87. cmSystemTools::RemoveFile(file2.c_str());
  88. cmSystemTools::RemoveFile(file3.c_str());
  89. cmSystemTools::RemoveFile(file4.c_str());
  90. cmSystemTools::RemoveFile(file1tmp.c_str());
  91. cmSystemTools::RemoveFile(file2tmp.c_str());
  92. cmSystemTools::RemoveFile(file3tmp.c_str());
  93. cmSystemTools::RemoveFile(file4tmp.c_str());
  94. return failed;
  95. }