1616#include " swift/Localization/LocalizationFormat.h"
1717#include " llvm/ADT/ArrayRef.h"
1818#include " llvm/ADT/SmallString.h"
19+ #include " llvm/ADT/SmallVector.h"
1920#include " llvm/ADT/StringExtras.h"
2021#include " llvm/ADT/StringRef.h"
2122#include " llvm/Support/FileSystem.h"
@@ -48,6 +49,9 @@ static constexpr const char *const diagnosticMessages[] = {
4849};
4950
5051struct LocalizationTest : public ::testing::Test {
52+ llvm::SmallVector<std::string, 4 > TempFiles;
53+
54+ public:
5155 std::string YAMLPath;
5256
5357 LocalizationTest () {
@@ -59,14 +63,21 @@ struct LocalizationTest : public ::testing::Test {
5963 assert (!failed && " failed to generate a YAML file" );
6064 }
6165
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) {
6472 llvm::SmallString<128 > tempFile;
6573 std::error_code error =
6674 llvm::sys::fs::createTemporaryFile (prefix, suffix, tempFile);
6775 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;
7081 }
7182
7283 // / Random number in [0,n)
0 commit comments