16
16
#include " swift/Localization/LocalizationFormat.h"
17
17
#include " llvm/ADT/ArrayRef.h"
18
18
#include " llvm/ADT/SmallString.h"
19
+ #include " llvm/ADT/SmallVector.h"
19
20
#include " llvm/ADT/StringExtras.h"
20
21
#include " llvm/ADT/StringRef.h"
21
22
#include " llvm/Support/FileSystem.h"
@@ -48,6 +49,9 @@ static constexpr const char *const diagnosticMessages[] = {
48
49
};
49
50
50
51
struct LocalizationTest : public ::testing::Test {
52
+ llvm::SmallVector<std::string, 4 > TempFiles;
53
+
54
+ public:
51
55
std::string YAMLPath;
52
56
53
57
LocalizationTest () {
@@ -59,14 +63,21 @@ struct LocalizationTest : public ::testing::Test {
59
63
assert (!failed && " failed to generate a YAML file" );
60
64
}
61
65
62
- static std::string createTemporaryFile (std::string prefix,
63
- std::string suffix) {
66
+ void TearDown () override {
67
+ for (auto &tmp : TempFiles)
68
+ llvm::sys::fs::remove (tmp);
69
+ }
70
+
71
+ std::string createTemporaryFile (std::string prefix, std::string suffix) {
64
72
llvm::SmallString<128 > tempFile;
65
73
std::error_code error =
66
74
llvm::sys::fs::createTemporaryFile (prefix, suffix, tempFile);
67
75
assert (!error);
68
- llvm::sys::RemoveFileOnSignal (tempFile);
69
- return std::string (tempFile);
76
+ // Can't use llvm::sys::RemoveFileOnSignal(tempFile) because
77
+ // signals are not available on Windows.
78
+ auto tmp = std::string (tempFile);
79
+ TempFiles.push_back (tmp);
80
+ return tmp;
70
81
}
71
82
72
83
// / Random number in [0,n)
0 commit comments