Ejemplo n.º 1
0
        public void CleanTempDirsAndFiles()
        {
            // Arrange
            Tuple <string, string> dirs = CreateDirs();

            string tempFile = Path.Combine(dirs.Item1, "SomeTemporaryFile.txt");

            PrepareFileWithConent(tempFile, "sampleContent");

            // Act
            using (TempCleaner cleaner = new TempCleaner())
            {
                cleaner.RegisterDirectoryToDelete(dirs.Item1, deleteRootDirectory: false);
                cleaner.RegisterDirectoryToDelete(dirs.Item2, deleteRootDirectory: false);
                cleaner.RegisterFileToDelete(tempFile);

                // Registering file that is not exists
                string notExistedPath = Path.Combine(dirs.Item1, "UnknownFile.txt");
                XAssert.IsFalse(File.Exists(notExistedPath));
                cleaner.RegisterFileToDelete(notExistedPath);

                // Waiting for pending tasks to complete
                cleaner.WaitPendingTasksForCompletion();

                // Assert
                XAssert.AreEqual(2, cleaner.SucceededDirectories);
                XAssert.AreEqual(0, cleaner.PendingDirectories);
                XAssert.AreEqual(0, cleaner.FailedDirectories);

                XAssert.AreEqual(2, cleaner.SucceededFiles);
                XAssert.AreEqual(0, cleaner.PendingFiles);
                XAssert.AreEqual(0, cleaner.FailedFiles);
            }

            AssertDirectoryEmpty(dirs.Item1);
            AssertDirectoryEmpty(dirs.Item2);
        }
Ejemplo n.º 2
0
        public void CleanNonexisting()
        {
            RegisterEventSource(global::BuildXL.Scheduler.ETWLogger.Log);

            string baseDir = TemporaryDirectory;
            string dir     = Path.Combine(baseDir, "DirDoesntExist");
            string file    = Path.Combine(baseDir, "FileDoesntExist.txt");

            using (TempCleaner cleaner = new TempCleaner())
            {
                cleaner.RegisterDirectoryToDelete(dir, deleteRootDirectory: false);
                cleaner.RegisterFileToDelete(file);
                cleaner.WaitPendingTasksForCompletion();
            }

            // No warnings for missing file/folder
            m_expectedWarningCount = 0;
        }
Ejemplo n.º 3
0
        public void CleanTempDirsAndFilesWithOpenedFile()
        {
            // Arrange
            Tuple <string, string> dirs = CreateDirs();

            string file = Path.Combine(dirs.Item1, "openedFile.txt");

            // Warning for a failed deleted file
            IgnoreWarnings();

            using (StreamWriter writer = new StreamWriter(file))
            {
                writer.Write("asdf");
                writer.Flush();
                XAssert.IsTrue(File.Exists(file));

                // Act
                using (TempCleaner cleaner = new TempCleaner())
                {
                    // This should fail
                    cleaner.RegisterDirectoryToDelete(dirs.Item1, deleteRootDirectory: false);
                    cleaner.RegisterDirectoryToDelete(dirs.Item2, deleteRootDirectory: false);

                    // This should fail
                    cleaner.RegisterFileToDelete(file);

                    // Waiting for pending tasks to complete
                    cleaner.WaitPendingTasksForCompletion();

                    // Assert
                    XAssert.AreEqual(1, cleaner.SucceededDirectories);
                    XAssert.AreEqual(0, cleaner.PendingDirectories);
                    XAssert.AreEqual(1, cleaner.FailedDirectories);

                    XAssert.AreEqual(0, cleaner.SucceededFiles);
                    XAssert.AreEqual(0, cleaner.PendingFiles);
                    XAssert.AreEqual(1, cleaner.FailedFiles);
                }

                XAssert.IsTrue(File.Exists(file));
            }

            AssertDirectoryEmpty(dirs.Item2);
        }