Beispiel #1
0
 public void GetOutputDirWithHash_IsSane()
 {
     StringAssert.IsMatch(@"^out[\\/][a-f0-9]{16}$",
                          DepFileUtil.GetOutputDirWithHash("out", "foo.proto"));
     StringAssert.IsMatch(@"^[a-f0-9]{16}$",
                          DepFileUtil.GetOutputDirWithHash("", "foo.proto"));
 }
Beispiel #2
0
 public void GetDepFilenameForProto_IsSane()
 {
     StringAssert.IsMatch(@"^out[\\/][a-f0-9]{16}_foo.protodep$",
                          DepFileUtil.GetDepFilenameForProto("out", "foo.proto"));
     StringAssert.IsMatch(@"^[a-f0-9]{16}_foo.protodep$",
                          DepFileUtil.GetDepFilenameForProto("", "foo.proto"));
 }
Beispiel #3
0
        public void HashString64Hex_IsSane()
        {
            string hashFoo1  = DepFileUtil.HashString64Hex("foo");
            string hashEmpty = DepFileUtil.HashString64Hex("");
            string hashFoo2  = DepFileUtil.HashString64Hex("foo");

            StringAssert.IsMatch("^[a-f0-9]{16}$", hashFoo1);
            Assert.AreEqual(hashFoo1, hashFoo2);
            Assert.AreNotEqual(hashFoo1, hashEmpty);
        }
Beispiel #4
0
        public void GetOutputDirWithHash_HashesDir()
        {
            string PickHash(string fname) => DepFileUtil.GetOutputDirWithHash("", fname);

            string same1   = PickHash("dir1/dir2/foo.proto");
            string same2   = PickHash("dir1/dir2/proto.foo");
            string same3   = PickHash("dir1/dir2/proto");
            string same4   = PickHash("dir1/dir2/.proto");
            string unsame1 = PickHash("dir2/foo.proto");
            string unsame2 = PickHash("/dir2/foo.proto");

            Assert.AreEqual(same1, same2);
            Assert.AreEqual(same1, same3);
            Assert.AreEqual(same1, same4);
            Assert.AreNotEqual(same1, unsame1);
            Assert.AreNotEqual(unsame1, unsame2);
        }
Beispiel #5
0
        public void GetDepFilenameForProto_HashesDir()
        {
            string PickHash(string fname) =>
            DepFileUtil.GetDepFilenameForProto("", fname).Substring(0, 16);

            string same1   = PickHash("dir1/dir2/foo.proto");
            string same2   = PickHash("dir1/dir2/proto.foo");
            string same3   = PickHash("dir1/dir2/proto");
            string same4   = PickHash("dir1/dir2/.proto");
            string unsame1 = PickHash("dir2/foo.proto");
            string unsame2 = PickHash("/dir2/foo.proto");

            Assert.AreEqual(same1, same2);
            Assert.AreEqual(same1, same3);
            Assert.AreEqual(same1, same4);
            Assert.AreNotEqual(same1, unsame1);
            Assert.AreNotEqual(unsame1, unsame2);
        }
Beispiel #6
0
        // NB in our tests files are put into the temp directory but all have
        // different names. Avoid adding files with the same directory path and
        // name, or add reasonable handling for it if required. Tests are run in
        // parallel and will collide otherwise.
        private string[] ReadDependencyInputFromFileData(string fileData, string protoName)
        {
            string tempPath = Path.GetTempPath();
            string tempfile = DepFileUtil.GetDepFilenameForProto(tempPath, protoName);

            try
            {
                File.WriteAllText(tempfile, fileData);
                var mockEng = new Moq.Mock <IBuildEngine>();
                var log     = new TaskLoggingHelper(mockEng.Object, "x");
                return(DepFileUtil.ReadDependencyInputs(tempPath, protoName, log));
            }
            finally
            {
                try
                {
                    File.Delete(tempfile);
                }
                catch { }
            }
        }