Provides access to Cygwin-related filesystem features. Cygwin provides Unix-like functionality on Windows systems.
Esempio n. 1
0
        public void TestIsSymlinkNoMatch()
        {
            using (var tempDir = new TemporaryDirectory("unit-tests"))
            {
                string normalFile = Path.Combine(tempDir, "normal");
                FileUtils.Touch(normalFile);

                CygwinUtils.IsSymlink(normalFile).Should().BeFalse();

                CygwinUtils.IsSymlink(normalFile, out string target).Should().BeFalse();
            }
        }
Esempio n. 2
0
        public void TestCreateSymlink()
        {
            Skip.IfNot(WindowsUtils.IsWindows, reason: "The 'system' file attribute can only be set on the Windows platform.");

            using (var tempDir = new TemporaryDirectory("unit-tests"))
            {
                string symlinkFile = Path.Combine(tempDir, "symlink");
                CygwinUtils.CreateSymlink(symlinkFile, "target");

                File.Exists(symlinkFile).Should().BeTrue();
                File.ReadAllBytes(symlinkFile).Should().Equal(_symlinkBytes);
            }
        }
Esempio n. 3
0
        public void TestIsSymlinkMatch()
        {
            using (var tempDir = new TemporaryDirectory("unit-tests"))
            {
                string symlinkFile = Path.Combine(tempDir, "symlink");
                File.WriteAllBytes(symlinkFile, _symlinkBytes);
                File.SetAttributes(symlinkFile, FileAttributes.System);

                CygwinUtils.IsSymlink(symlinkFile).Should().BeTrue();

                CygwinUtils.IsSymlink(symlinkFile, out string target).Should().BeTrue();
                target.Should().Be("target");
            }
        }