testGeneratedFileStream.cxx 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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"; \
  14. failed = 1
  15. int testGeneratedFileStream(int /*unused*/, char* /*unused*/ [])
  16. {
  17. int failed = 0;
  18. cmGeneratedFileStream gm;
  19. std::string file1 = "generatedFile1";
  20. std::string file2 = "generatedFile2";
  21. std::string file3 = "generatedFile3";
  22. std::string file4 = "generatedFile4";
  23. std::string file1tmp = file1 + ".tmp";
  24. std::string file2tmp = file2 + ".tmp";
  25. std::string file3tmp = file3 + ".tmp";
  26. std::string file4tmp = file4 + ".tmp";
  27. gm.Open(file1.c_str());
  28. gm << "This is generated file 1";
  29. gm.Close();
  30. gm.Open(file2.c_str());
  31. gm << "This is generated file 2";
  32. gm.Close();
  33. gm.Open(file3.c_str());
  34. gm << "This is generated file 3";
  35. gm.Close();
  36. gm.Open(file4.c_str());
  37. gm << "This is generated file 4";
  38. gm.Close();
  39. if (cmSystemTools::FileExists(file1.c_str())) {
  40. if (cmSystemTools::FileExists(file2.c_str())) {
  41. if (cmSystemTools::FileExists(file3.c_str())) {
  42. if (cmSystemTools::FileExists(file4.c_str())) {
  43. if (cmSystemTools::FileExists(file1tmp.c_str())) {
  44. cmFailed("Something wrong with cmGeneratedFileStream. Temporary "
  45. "file is still here: ",
  46. file1tmp.c_str());
  47. } else if (cmSystemTools::FileExists(file2tmp.c_str())) {
  48. cmFailed("Something wrong with cmGeneratedFileStream. Temporary "
  49. "file is still here: ",
  50. file2tmp.c_str());
  51. } else if (cmSystemTools::FileExists(file3tmp.c_str())) {
  52. cmFailed("Something wrong with cmGeneratedFileStream. Temporary "
  53. "file is still here: ",
  54. file3tmp.c_str());
  55. } else if (cmSystemTools::FileExists(file4tmp.c_str())) {
  56. cmFailed("Something wrong with cmGeneratedFileStream. Temporary "
  57. "file is still here: ",
  58. file4tmp.c_str());
  59. } else {
  60. std::cout << "cmGeneratedFileStream works\n";
  61. }
  62. } else {
  63. cmFailed(
  64. "Something wrong with cmGeneratedFileStream. Cannot find file: ",
  65. file4.c_str());
  66. }
  67. } else {
  68. cmFailed("Something wrong with cmGeneratedFileStream. Found file: ",
  69. file3.c_str());
  70. }
  71. } else {
  72. cmFailed(
  73. "Something wrong with cmGeneratedFileStream. Cannot find file: ",
  74. file2.c_str());
  75. }
  76. } else {
  77. cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ",
  78. file1.c_str());
  79. }
  80. cmSystemTools::RemoveFile(file1);
  81. cmSystemTools::RemoveFile(file2);
  82. cmSystemTools::RemoveFile(file3);
  83. cmSystemTools::RemoveFile(file4);
  84. cmSystemTools::RemoveFile(file1tmp);
  85. cmSystemTools::RemoveFile(file2tmp);
  86. cmSystemTools::RemoveFile(file3tmp);
  87. cmSystemTools::RemoveFile(file4tmp);
  88. return failed;
  89. }