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: ")); }
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); }
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()); }
/// <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)); }
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()); }