This works on Windows with VS2010 now.<div><br></div><div>Thoughts?<br><div><br></div><div><div>Index: unittests/Tooling/RewriterTestContext.h</div><div>===================================================================</div>
<div>--- unittests/Tooling/RewriterTestContext.h<span class="Apple-tab-span" style="white-space:pre"> </span>(revision 158019)</div><div>+++ unittests/Tooling/RewriterTestContext.h<span class="Apple-tab-span" style="white-space:pre"> </span>(working copy)</div>
<div>@@ -21,6 +21,7 @@</div><div> #include "clang/Frontend/DiagnosticOptions.h"</div><div> #include "clang/Frontend/TextDiagnosticPrinter.h"</div><div> #include "clang/Rewrite/Rewriter.h"</div>
<div>+#include "llvm/Support/FileSystem.h"</div><div> #include "llvm/Support/Path.h"</div><div> #include "llvm/Support/raw_ostream.h"</div><div> </div><div>@@ -43,6 +44,10 @@</div><div> }</div>
<div> </div><div> ~RewriterTestContext() {</div><div>+ if (!TemporaryDirectory.empty()) {</div><div>+ uint32_t RemovedCount = 0;</div><div>+ llvm::sys::fs::remove_all(TemporaryDirectory.str(), RemovedCount);</div>
<div>+ }</div><div> }</div><div> </div><div> FileID createInMemoryFile(StringRef Name, StringRef Content) {</div><div>@@ -56,12 +61,14 @@</div><div> }</div><div> </div><div> FileID createOnDiskFile(StringRef Name, StringRef Content) {</div>
<div>- if (!TemporaryDirectory.isValid()) {</div><div>- std::string ErrorInfo;</div><div>- TemporaryDirectory = llvm::sys::Path::GetTemporaryDirectory(&ErrorInfo);</div><div>- assert(ErrorInfo.empty());</div>
<div>+ if (TemporaryDirectory.empty()) {</div><div>+ int FD;</div><div>+ assert(!llvm::sys::fs::unique_file("rewriter-test-%%-%%-%%-%%/anchor",</div><div>+ FD, TemporaryDirectory));</div>
<div>+ llvm::raw_fd_ostream Closer(FD, /*shouldClose=*/true);</div><div>+ TemporaryDirectory = llvm::sys::path::parent_path(TemporaryDirectory);</div><div> }</div><div>- llvm::SmallString<1024> Path(TemporaryDirectory.str());</div>
<div>+ llvm::SmallString<1024> Path(TemporaryDirectory);</div><div> llvm::sys::path::append(Path, Name);</div><div> std::string ErrorInfo;</div><div> llvm::raw_fd_ostream OutStream(Path.c_str(),</div>
<div>@@ -107,8 +114,8 @@</div><div> LangOptions Options;</div><div> Rewriter Rewrite;</div><div> </div><div>- // Will be set once on disk files are generated. </div><div>- llvm::sys::Path TemporaryDirectory;</div><div>
+ // Will be set once on disk files are generated.</div><div>+ SmallString<128> TemporaryDirectory;</div><div> };</div><div> </div><div> } // end namespace clang</div></div><div><br></div></div>