Ejemplo n.º 1
0
        public void TestGetTags()
        {
            string                 ctags_output = @"EResult          enum         29 RTTIReader.h     enum EResult
GetLastError     function     59 RTTIReader.h     inline EResult GetLastError() { return mLastError; } ///< Get last result code
RESULT_VERSION_MISMATCH enumerator   45 RTTIReader.h     RESULT_VERSION_MISMATCH,
RTTIReader       class        25 RTTIReader.h     class RTTIReader
RTTIToTypeInfo   typedef      88 RTTIReader.h     typedef HashMap<HashedPtr<cRTTI>, pReaderTypeInfo> RTTIToTypeInfo;
ReaderTypeInfo   struct       77 RTTIReader.h     struct ReaderTypeInfo
StringToTypeInfo typedef      87 RTTIReader.h     typedef HashMap<string, pReaderTypeInfo> StringToTypeInfo;
__PIGS_RTTI_READER_H__ macro         3 RTTIReader.h     #define __PIGS_RTTI_READER_H__
mAttrs           member       81 RTTIReader.h     aRTTIAttrInfo mAttrs; ///< Attributes of type
mConstructor     member       83 RTTIReader.h     RTTIConstructorFunc mConstructor; ///< Constructor function
mDestructor      member       84 RTTIReader.h     RTTIDestructorFunc mDestructor; ///< Destructor function
mFactory         member       70 RTTIReader.h     pcRTTIFactory mFactory; ///< Factory we're using
mIndex           member       79 RTTIReader.h     int mIndex; ///< Index into mAllTypesArray
mLastError       member       65 RTTIReader.h     EResult mLastError; ///< Last reported error
mObjects         member       68 RTTIReader.h     pTypedPtrArray mObjects; ///< Object list to be saved
mReadMsgHandler  member       85 RTTIReader.h     RTTIMessageHandlerInfo mReadMsgHandler; ///< Handler for <mReadMsgType> message
mReadMsgType     member       71 RTTIReader.h     rcRTTI mReadMsgType; ///< Type of message to handle custom read functionality
mSize            member       82 RTTIReader.h     int mSize; ///< Size of atom
mStream          member       69 RTTIReader.h     pStream mStream; ///< Stream we're writing to
mType            member       80 RTTIReader.h     pcRTTI mType; ///< Type
mTypeInfoArray   member       91 RTTIReader.h     apReaderTypeInfo mTypeInfoArray; ///< Information about all types in file (in array form, for indexing)
mTypeInfoByName  member       89 RTTIReader.h     StringToTypeInfo mTypeInfoByName; ///< Information about all types in file
mTypeInfoByRTTI  member       90 RTTIReader.h     RTTIToTypeInfo mTypeInfoByRTTI; ///< Information about all types in file
gToString        prototype   150 StringTools.h    bool gToString(rcInt64 inData, rString outString);
gRTTIBinaryVersion externvar    11 RTTIVersion.h    extern pcTChar gRTTIBinaryVersion;
";
            CtagsParser            parser       = new CtagsParser("");
            List <CtagsParser.Tag> tags         = parser.ParseCtagsOutput(ctags_output);

            Assert.AreEqual(25, tags.Count);
            Assert.IsTrue(tags.Contains(new CtagsParser.Tag(CtagsParser.Tag.EType.EFunction, "GetLastError")));
            Assert.IsTrue(tags.Contains(new CtagsParser.Tag(CtagsParser.Tag.EType.EEnum, "EResult")));
            Assert.IsTrue(tags.Contains(new CtagsParser.Tag(CtagsParser.Tag.EType.EEnumerator, "RESULT_VERSION_MISMATCH")));
            Assert.IsTrue(tags.Contains(new CtagsParser.Tag(CtagsParser.Tag.EType.EClass, "RTTIReader")));
            Assert.IsTrue(tags.Contains(new CtagsParser.Tag(CtagsParser.Tag.EType.ETypedef, "RTTIToTypeInfo")));
            Assert.IsTrue(tags.Contains(new CtagsParser.Tag(CtagsParser.Tag.EType.EStruct, "ReaderTypeInfo")));
            Assert.IsTrue(tags.Contains(new CtagsParser.Tag(CtagsParser.Tag.EType.ETypedef, "StringToTypeInfo")));
            Assert.IsTrue(tags.Contains(new CtagsParser.Tag(CtagsParser.Tag.EType.EMacro, "__PIGS_RTTI_READER_H__")));
            Assert.IsTrue(tags.Contains(new CtagsParser.Tag(CtagsParser.Tag.EType.EPrototype, "gToString")));
            Assert.IsTrue(tags.Contains(new CtagsParser.Tag(CtagsParser.Tag.EType.EExternVar, "gRTTIBinaryVersion")));
        }