Ejemplo n.º 1
0
        public void TestGetTagsFromFileWithMissingCtagsExe()
        {
            CtagsParser            parser     = new CtagsParser(@"d:\non\existing\path\to\ctags.exe");
            string                 errors     = "";
            List <CtagsParser.Tag> input_tags = parser.GetTagsFromFile(TestUtils.sGetFullPath(@"IncludeCheckerLib\test\TestFile.h"), ref errors);

            Assert.IsTrue(errors.StartsWith("Error running ctags: "));
        }
Ejemplo n.º 2
0
        public void TestGetTagsFromFileWithSpacesInFilename()
        {
            CtagsParser            parser     = new CtagsParser(mCtagsPath);
            string                 errors     = "";
            List <CtagsParser.Tag> input_tags = parser.GetTagsFromFile(TestUtils.sGetFullPath(@"IncludeCheckerLib\test\Test File With Spaces.h"), ref errors);

            Assert.AreEqual("", errors);
            Assert.IsTrue(input_tags.Count > 0);
        }
Ejemplo n.º 3
0
        public void TestGetTagsFromComplicatedHeader()
        {
            CtagsParser            parser     = new CtagsParser(mCtagsPath);
            string                 errors     = "";
            List <CtagsParser.Tag> input_tags = parser.GetTagsFromFile(TestUtils.sGetFullPath(@"IncludeCheckerLib\test\ComplicatedHeader.h"), ref errors);

            Assert.AreEqual("", errors);
            Assert.IsTrue(input_tags.Count > 0);

            // convert to generic
            List <CtagsParser.Tag> tags = new List <CtagsParser.Tag>();

            foreach (CtagsParser.Tag tag in input_tags)
            {
                tags.Add(tag);
            }
            int index = 0;

            Assert.AreEqual("memset", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EPrototype, tags[index++].GetTagType());
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Get all tags from a header only.
        /// </summary>
        /// <returns>null on error, a list of tags otherwise</returns>
        private List <CtagsParser.Tag> GetTagsFromHeaderOnly(Include inInclude, ref string outErrors)
        {
            CtagsParser parser = new CtagsParser(mConfig.CtagsPath);

            return(parser.GetTagsFromFile(inInclude.Path, ref outErrors));
        }
Ejemplo n.º 5
0
        public void TestGetTagsFromFile()
        {
            CtagsParser            parser     = new CtagsParser(mCtagsPath);
            string                 errors     = "";
            List <CtagsParser.Tag> input_tags = parser.GetTagsFromFile(TestUtils.sGetFullPath(@"IncludeCheckerLib\test\TestFile.h"), ref errors);

            Assert.AreEqual("", errors);

            // convert to generic
            List <CtagsParser.Tag> tags = new List <CtagsParser.Tag>();

            foreach (CtagsParser.Tag tag in input_tags)
            {
                tags.Add(tag);
            }
            int index = 0;

            Assert.AreEqual("ClassEnum", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EEnum, tags[index++].GetTagType());

            Assert.AreEqual("ClassEnumValue1", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EEnumerator, tags[index++].GetTagType());

            Assert.AreEqual("ClassEnumValue2", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EEnumerator, tags[index++].GetTagType());

            Assert.AreEqual("ClassFunc", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EPrototype, tags[index++].GetTagType());

            Assert.AreEqual("DEFINE_FUNCTION", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EMacro, tags[index++].GetTagType());

            Assert.AreEqual("DEFINE_IN_CLASS", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EMacro, tags[index++].GetTagType());

            Assert.AreEqual("DEFINE_IN_NAMESPACE", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EMacro, tags[index++].GetTagType());

            Assert.AreEqual("DEFINE_MULTILINE_FUNCTION", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EMacro, tags[index++].GetTagType());

            Assert.AreEqual("DEFINE_VALUE", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EMacro, tags[index++].GetTagType());

            Assert.AreEqual("EnumValue1", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EEnumerator, tags[index++].GetTagType());

            Assert.AreEqual("EnumValue2", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EEnumerator, tags[index++].GetTagType());

            Assert.AreEqual("ExternFunc", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EPrototype, tags[index++].GetTagType());

            Assert.AreEqual("ExternVar", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EExternVar, tags[index++].GetTagType());

            Assert.AreEqual("GlobalClass", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EClass, tags[index++].GetTagType());

            Assert.AreEqual("GlobalClass", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EPrototype, tags[index++].GetTagType());

            Assert.AreEqual("GlobalEnum", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EEnum, tags[index++].GetTagType());

            Assert.AreEqual("GlobalNamespace", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.ENamespace, tags[index++].GetTagType());

            Assert.AreEqual("GlobalVar", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EVar, tags[index++].GetTagType());

            Assert.AreEqual("IntFunc", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EPrototype, tags[index++].GetTagType());

            Assert.AreEqual("IntTypedef", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.ETypedef, tags[index++].GetTagType());

            Assert.AreEqual("JUST_DEFINE", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EMacro, tags[index++].GetTagType());

            Assert.AreEqual("VoidFunc", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EPrototype, tags[index++].GetTagType());

            Assert.AreEqual("VoidFuncInNamespace", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EPrototype, tags[index++].GetTagType());

            Assert.AreEqual("VolatileVar", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EVar, tags[index++].GetTagType());

            Assert.AreEqual("mClassVariable", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EMember, tags[index++].GetTagType());

            Assert.AreEqual("mStaticClassVariable", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EMember, tags[index++].GetTagType());

            Assert.AreEqual("~GlobalClass", tags[index].GetName());
            Assert.AreEqual(CtagsParser.Tag.EType.EPrototype, tags[index++].GetTagType());
        }