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