})

	AfterEach(func() {
		// don't check for error!
		fs.RemoveAll(rootPath)
		fs.Remove(LongPath)
	})

	// TODO: make sure we can cleanup before running tests
	It("the fs package can cleanup long paths and dirs", func() {
		f, err := fs.Create(LongPath)
		Expect(err).To(Succeed())
		f.Close()
		Expect(fs.Remove(LongPath)).To(Succeed())

		Expect(fs.MkdirAll(LongDir, 0755)).To(Succeed())
		Expect(fs.RemoveAll(LongDir)).To(Succeed())
	})

	It("can create and delete a directory with a long path", func() {
		Expect(osFs.MkdirAll(LongDir, 0755)).To(Succeed())
		Expect(osFs.RemoveAll(LongDir)).To(Succeed())

		dir := filepath.Join(LongDir, "NEW_DIR")
		Expect(osFs.MkdirAll(dir, 0755)).To(Succeed())

		path := filepath.Join(dir, "a.txt")
		Expect(osFs.WriteFileString(path, "abc")).To(Succeed())
	})

	It("can create and delete a file with a long path", func() {
Exemple #2
0
func (fs *osFileSystem) MkdirAll(path string, perm os.FileMode) (err error) {
	fs.logger.Debug(fs.logTag, "Making dir %s with perm %#o", path, perm)
	return fsWrapper.MkdirAll(path, perm)
}
var _ = Describe("Windows Specific tests", func() {
	It("HomeDir returns an error if 'username' is not the current user", func() {
		if !Windows {
			Skip("Windows only test")
		}
		osFs := createOsFs()

		_, err := osFs.HomeDir("Non-Existent User Name 1234")
		Expect(err).To(HaveOccurred())
	})

	It("can remove a directory long path", func() {
		osFs := createOsFs()

		rootPath, longPath := randLongPath()
		err := fsWrapper.MkdirAll(longPath, 0755)
		defer fsWrapper.RemoveAll(rootPath)
		Expect(err).ToNot(HaveOccurred())

		dstFile, err := ioutil.TempFile(`\\?\`+longPath, "")
		Expect(err).ToNot(HaveOccurred())

		dstPath := path.Join(longPath, filepath.Base(dstFile.Name()))
		defer os.Remove(dstPath)
		dstFile.Close()

		fileInfo, err := osFs.Stat(dstPath)
		Expect(fileInfo).ToNot(BeNil())
		Expect(os.IsNotExist(err)).To(BeFalse())

		err = osFs.RemoveAll(dstPath)