Nope. I was just following an example of using createTemporaryFileOnDisk() from 
lib/Archive/ArchiveWriter.cpp which happened to use std::ofstream.

> -----Original Message-----
> From: Manuel Klimek [mailto:[email protected]]
> Sent: Friday, May 03, 2013 3:14 PM
> To: Vane, Edwin
> Cc: [email protected]
> Subject: Re: [clang-tools-extra] r181029 - Generate input files from within 
> unit
> test
> 
> Thanks!
> Any reason you used fstream instead of llvm's file streams?
> 
> Cheers,
> /Manuel
> 
> 
> On Fri, May 3, 2013 at 6:30 PM, Edwin Vane <[email protected]> wrote:
> 
> 
>       Author: revane
>       Date: Fri May  3 11:30:55 2013
>       New Revision: 181029
> 
>       URL: http://llvm.org/viewvc/llvm-project?rev=181029&view=rev
>       Log:
>       Generate input files from within unit test
> 
>       It is preferable for a unit test to be responsible for creating its own 
> input
>       data instead of relying on checked-in data files. Now the
> IncludeExcludeTest
>       for cpp11-migrate does this.
> 
>       - Removed old data files.
>       - Updated build system and lit files to remove references to old data
> files.
> 
> 
>       Removed:
>           clang-tools-extra/trunk/unittests/cpp11-migrate/Data/
>           clang-tools-extra/trunk/unittests/cpp11-migrate/lit.local.cfg
>       Modified:
>           clang-tools-extra/trunk/unittests/cpp11-migrate/CMakeLists.txt
>           clang-tools-extra/trunk/unittests/cpp11-
> migrate/IncludeExcludeTest.cpp
>           clang-tools-extra/trunk/unittests/cpp11-migrate/Makefile
> 
>       Modified: clang-tools-extra/trunk/unittests/cpp11-
> migrate/CMakeLists.txt
>       URL: http://llvm.org/viewvc/llvm-project/clang-tools-
> extra/trunk/unittests/cpp11-
> migrate/CMakeLists.txt?rev=181029&r1=181028&r2=181029&view=diff
>       ==========================================================
> ====================
>       --- clang-tools-extra/trunk/unittests/cpp11-migrate/CMakeLists.txt
> (original)
>       +++ clang-tools-extra/trunk/unittests/cpp11-migrate/CMakeLists.txt Fri
> May  3 11:30:55 2013
>       @@ -16,6 +16,3 @@ target_link_libraries(Cpp11MigrateTests
>          clangBasic
>          clangASTMatchers
>          )
>       -
>       -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lit.local.cfg
>       -  ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
> 
>       Modified: clang-tools-extra/trunk/unittests/cpp11-
> migrate/IncludeExcludeTest.cpp
>       URL: http://llvm.org/viewvc/llvm-project/clang-tools-
> extra/trunk/unittests/cpp11-
> migrate/IncludeExcludeTest.cpp?rev=181029&r1=181028&r2=181029&view=dif
> f
>       ==========================================================
> ====================
>       --- clang-tools-extra/trunk/unittests/cpp11-
> migrate/IncludeExcludeTest.cpp (original)
>       +++ clang-tools-extra/trunk/unittests/cpp11-
> migrate/IncludeExcludeTest.cpp Fri May  3 11:30:55 2013
>       @@ -1,6 +1,7 @@
>        #include "Core/IncludeExcludeInfo.h"
>        #include "gtest/gtest.h"
>        #include "llvm/Support/Path.h"
>       +#include <fstream>
> 
>        TEST(IncludeExcludeTest, ParseString) {
>          IncludeExcludeInfo IEManager;
>       @@ -29,30 +30,49 @@ TEST(IncludeExcludeTest, ParseString) {
>          EXPECT_FALSE(IEManager.isFileIncluded("c/c2/c3/f.cpp"));
>        }
> 
>       -// The IncludeExcludeTest suite requires data files. The location of
> these
>       -// files must be provided in the 'DATADIR' environment variable.
>       -class IncludeExcludeFileTest : public ::testing::Test {
>       -public:
>       -  virtual void SetUp() {
>       -    DataDir = getenv("DATADIR");
>       -    if (DataDir == 0) {
>       -      FAIL()
>       -          << "IncludeExcludeFileTest requires the DATADIR environment
> variable "
>       -             "to be set.";
>       +// Utility for creating and filling files with data for
> IncludeExcludeFileTest
>       +// tests.
>       +struct InputFiles {
>       +
>       +  // This function uses fatal assertions. The caller is responsible for
> making
>       +  // sure fatal assertions propagate.
>       +  void CreateFiles(bool UnixMode) {
>       +    IncludeDataPath = llvm::sys::Path::GetTemporaryDirectory();
>       +    ExcludeDataPath = IncludeDataPath;
>       +
>       +    ASSERT_FALSE(IncludeDataPath.createTemporaryFileOnDisk());
>       +    std::ofstream IncludeDataFile(IncludeDataPath.c_str());
>       +    ASSERT_TRUE(IncludeDataFile.good());
>       +    for (unsigned i = 0; i < sizeof(IncludeData)/sizeof(char*); ++i) {
>       +      IncludeDataFile << IncludeData[i] << (UnixMode ? "\n" : "\r\n");
>       +    }
>       +
>       +    ASSERT_FALSE(ExcludeDataPath.createTemporaryFileOnDisk());
>       +    std::ofstream ExcludeDataFile(ExcludeDataPath.c_str());
>       +    ASSERT_TRUE(ExcludeDataFile.good());
>       +    for (unsigned i = 0; i < sizeof(ExcludeData)/sizeof(char*); ++i) {
>       +      ExcludeDataFile << ExcludeData[i] << (UnixMode ? "\n" : "\r\n");;
>            }
>          }
> 
>       -  const char *DataDir;
>       +  static const char *IncludeData[3];
>       +  static const char *ExcludeData[4];
>       +
>       +  llvm::sys::Path IncludeDataPath;
>       +  llvm::sys::Path ExcludeDataPath;
>        };
> 
>       -TEST_F(IncludeExcludeFileTest, UNIXFile) {
>       -  llvm::SmallString<128> IncludeData(DataDir);
>       -  llvm::SmallString<128> ExcludeData(IncludeData);
>       -  llvm::sys::path::append(IncludeData, "IncludeData.in");
>       -  llvm::sys::path::append(ExcludeData, "ExcludeData.in");
>       +const char *InputFiles::IncludeData[3] = { "a", "b/b2", "c/c2" };
>       +const char *InputFiles::ExcludeData[4] = { "a/af.cpp", "a/a2",
> "b/b2/b2f.cpp",
>       +                                           "c/c2" };
>       +
>       +TEST(IncludeExcludeFileTest, UNIXFile) {
>       +  InputFiles UnixFiles;
>       +  ASSERT_NO_FATAL_FAILURE(UnixFiles.CreateFiles(/* UnixMode=
> */true));
> 
>          IncludeExcludeInfo IEManager;
>       -  llvm::error_code Err = IEManager.readListFromFile(IncludeData,
> ExcludeData);
>       +  llvm::error_code Err = IEManager.readListFromFile(
>       +      UnixFiles.IncludeDataPath.c_str(),
> UnixFiles.ExcludeDataPath.c_str());
> 
>          ASSERT_EQ(Err, llvm::error_code::success());
> 
>       @@ -61,14 +81,13 @@ TEST_F(IncludeExcludeFileTest, UNIXFile)
>          EXPECT_FALSE(IEManager.isFileIncluded("a/af.cpp"));
>        }
> 
>       -TEST_F(IncludeExcludeFileTest, DOSFile) {
>       -  llvm::SmallString<128> IncludeData(DataDir);
>       -  llvm::SmallString<128> ExcludeData(IncludeData);
>       -  llvm::sys::path::append(IncludeData, "IncludeDataCRLF.in");
>       -  llvm::sys::path::append(ExcludeData, "ExcludeDataCRLF.in");
>       +TEST(IncludeExcludeFileTest, DOSFile) {
>       +  InputFiles DOSFiles;
>       +  ASSERT_NO_FATAL_FAILURE(DOSFiles.CreateFiles(/* UnixMode=
> */false));
> 
>          IncludeExcludeInfo IEManager;
>       -  llvm::error_code Err = IEManager.readListFromFile(IncludeData,
> ExcludeData);
>       +  llvm::error_code Err = IEManager.readListFromFile(
>       +      DOSFiles.IncludeDataPath.c_str(),
> DOSFiles.ExcludeDataPath.c_str());
> 
>          ASSERT_EQ(Err, llvm::error_code::success());
> 
> 
>       Modified: clang-tools-extra/trunk/unittests/cpp11-migrate/Makefile
>       URL: http://llvm.org/viewvc/llvm-project/clang-tools-
> extra/trunk/unittests/cpp11-
> migrate/Makefile?rev=181029&r1=181028&r2=181029&view=diff
>       ==========================================================
> ====================
>       --- clang-tools-extra/trunk/unittests/cpp11-migrate/Makefile (original)
>       +++ clang-tools-extra/trunk/unittests/cpp11-migrate/Makefile Fri May
> 3 11:30:55 2013
>       @@ -22,8 +22,3 @@ include $(CLANG_LEVEL)/Makefile
>        MAKEFILE_UNITTEST_NO_INCLUDE_COMMON := 1
>        CPP.Flags += -I$(PROJ_SRC_DIR)/../../cpp11-migrate
>        include $(LLVM_SRC_ROOT)/unittests/Makefile.unittest
>       -
>       -$(PROJ_OBJ_DIR)/lit.local.cfg: $(PROJ_SRC_DIR)/lit.local.cfg
>       -       @cp $< $@
>       -
>       -all:: $(PROJ_OBJ_DIR)/lit.local.cfg
> 
>       Removed: clang-tools-extra/trunk/unittests/cpp11-migrate/lit.local.cfg
>       URL: http://llvm.org/viewvc/llvm-project/clang-tools-
> extra/trunk/unittests/cpp11-migrate/lit.local.cfg?rev=181028&view=auto
>       ==========================================================
> ====================
>       --- clang-tools-extra/trunk/unittests/cpp11-migrate/lit.local.cfg
> (original)
>       +++ clang-tools-extra/trunk/unittests/cpp11-migrate/lit.local.cfg
> (removed)
>       @@ -1,4 +0,0 @@
>       -# Some tests require access to data files which are stored in the 
> 'Data'
>       -# subdirectory. This environment variable indicates where to find those
> files.
>       -config.environment['DATADIR'] =
> os.path.normpath(os.path.join(config.extra_tools_src_dir,
>       -                                                              
> 'cpp11-migrate', 'Data'))
> 
> 
>       _______________________________________________
>       cfe-commits mailing list
>       [email protected]
>       http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> 
> 


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to