| /*============================================================================ |
| CMake - Cross Platform Makefile Generator |
| Copyright 2000-2011 Kitware, Inc., Insight Software Consortium |
| |
| Distributed under the OSI-approved BSD License (the "License"); |
| see accompanying file Copyright.txt for details. |
| |
| This software is distributed WITHOUT ANY WARRANTY; without even the |
| implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| See the License for more information. |
| ============================================================================*/ |
| #include "cmGeneratedFileStream.h" |
| #include "cmSystemTools.h" |
| |
| #define cmFailed(m1, m2) \ |
| std::cout << "FAILED: " << m1 << m2 << "\n"; failed=1 |
| |
| int testGeneratedFileStream(int, char*[]) |
| { |
| int failed = 0; |
| cmGeneratedFileStream gm; |
| std::string file1 = "generatedFile1"; |
| std::string file2 = "generatedFile2"; |
| std::string file3 = "generatedFile3"; |
| std::string file4 = "generatedFile4"; |
| std::string file1tmp = file1 + ".tmp"; |
| std::string file2tmp = file2 + ".tmp"; |
| std::string file3tmp = file3 + ".tmp"; |
| std::string file4tmp = file4 + ".tmp"; |
| gm.Open(file1.c_str()); |
| gm << "This is generated file 1"; |
| gm.Close(); |
| gm.Open(file2.c_str()); |
| gm << "This is generated file 2"; |
| gm.Close(); |
| gm.Open(file3.c_str()); |
| gm << "This is generated file 3"; |
| gm.Close(); |
| gm.Open(file4.c_str()); |
| gm << "This is generated file 4"; |
| gm.Close(); |
| if ( cmSystemTools::FileExists(file1.c_str()) ) |
| { |
| if ( cmSystemTools::FileExists(file2.c_str()) ) |
| { |
| if ( cmSystemTools::FileExists(file3.c_str()) ) |
| { |
| if ( cmSystemTools::FileExists(file4.c_str()) ) |
| { |
| if ( cmSystemTools::FileExists(file1tmp.c_str()) ) |
| { |
| cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file1tmp.c_str()); |
| } |
| else if ( cmSystemTools::FileExists(file2tmp.c_str()) ) |
| { |
| cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file2tmp.c_str()); |
| } |
| else if ( cmSystemTools::FileExists(file3tmp.c_str()) ) |
| { |
| cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file3tmp.c_str()); |
| } |
| else if ( cmSystemTools::FileExists(file4tmp.c_str()) ) |
| { |
| cmFailed("Something wrong with cmGeneratedFileStream. Temporary file is still here: ", file4tmp.c_str()); |
| } |
| else |
| { |
| std::cout << "cmGeneratedFileStream works\n"; |
| } |
| } |
| else |
| { |
| cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ", file4.c_str()); |
| } |
| } |
| else |
| { |
| cmFailed("Something wrong with cmGeneratedFileStream. Found file: ", file3.c_str()); |
| } |
| } |
| else |
| { |
| cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ", file2.c_str()); |
| } |
| } |
| else |
| { |
| cmFailed("Something wrong with cmGeneratedFileStream. Cannot find file: ", file1.c_str()); |
| } |
| cmSystemTools::RemoveFile(file1.c_str()); |
| cmSystemTools::RemoveFile(file2.c_str()); |
| cmSystemTools::RemoveFile(file3.c_str()); |
| cmSystemTools::RemoveFile(file4.c_str()); |
| cmSystemTools::RemoveFile(file1tmp.c_str()); |
| cmSystemTools::RemoveFile(file2tmp.c_str()); |
| cmSystemTools::RemoveFile(file3tmp.c_str()); |
| cmSystemTools::RemoveFile(file4tmp.c_str()); |
| |
| return failed; |
| } |