Skip to content

Commit 31edc6c

Browse files
authored
Merge pull request swiftlang#33916 from xedin/explicitly-delete-files-at-teardown
[Localization] Tests: Track and remove temporary files on fixture tea…
2 parents b9472f2 + 25b7949 commit 31edc6c

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

unittests/Localization/LocalizationTest.h

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
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

5051
struct 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

Comments
 (0)