예제 #1
0
        public void OverflowTrimmingShouldNotDropChar()
        {
            // A devdiv build produced a huge message like this!
            string message = @"The name 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' does not exist in the current context";
            string error   = @"test.cs(1,32): error CS0103: " + message;

            CanonicalError.Parts parts = CanonicalError.Parse(error);

            parts.text.ShouldBe(message);
        }
예제 #2
0
        private static void ValidateFileNameMultiLineColumnError(string message, string filename, int line, int column, int endLine, int endColumn, CanonicalError.Parts.Category severity, string code, string text)
        {
            CanonicalError.Parts errorParts = CanonicalError.Parse(message);

            errorParts.ShouldNotBeNull(); // "The message '" + message + "' could not be interpreted."
            errorParts.origin.ShouldBe(filename);
            errorParts.category.ShouldBe(severity);
            errorParts.code.ShouldBe(code);
            errorParts.text.ShouldBe(text);
            errorParts.line.ShouldBe(line);
            errorParts.column.ShouldBe(column);
            errorParts.endLine.ShouldBe(endLine);
            errorParts.endColumn.ShouldBe(endColumn);
        }
예제 #3
0
        private static void ValidateToolError(string message, string tool, CanonicalError.Parts.Category severity, string code, string text)
        {
            CanonicalError.Parts errorParts = CanonicalError.Parse(message);

            errorParts.ShouldNotBeNull(); // "The message '" + message + "' could not be interpreted."
            errorParts.origin.ShouldBe(tool);
            errorParts.category.ShouldBe(severity);
            errorParts.code.ShouldBe(code);
            errorParts.text.ShouldBe(text);
            errorParts.line.ShouldBe(CanonicalError.Parts.numberNotSpecified);
            errorParts.column.ShouldBe(CanonicalError.Parts.numberNotSpecified);
            errorParts.endLine.ShouldBe(CanonicalError.Parts.numberNotSpecified);
            errorParts.endColumn.ShouldBe(CanonicalError.Parts.numberNotSpecified);
        }
예제 #4
0
        public void ClangGccError()
        {
            CanonicalError.Parts errorParts = CanonicalError.Parse(
                "err.cpp:6:3: error: use of undeclared identifier 'force_an_error'");

            errorParts.ShouldNotBeNull();
            errorParts.origin.ShouldBe("err.cpp");
            errorParts.category.ShouldBe(CanonicalError.Parts.Category.Error);
            errorParts.code.ShouldStartWith("G");
            errorParts.code.Length.ShouldBe(9);
            errorParts.text.ShouldBe("use of undeclared identifier 'force_an_error'");
            errorParts.line.ShouldBe(6);
            errorParts.column.ShouldBe(3);
            errorParts.endLine.ShouldBe(CanonicalError.Parts.numberNotSpecified);
            errorParts.endColumn.ShouldBe(CanonicalError.Parts.numberNotSpecified);
        }
예제 #5
0
        private static void ValidateNormalMessage(string message)
        {
            CanonicalError.Parts errorParts = CanonicalError.Parse(message);

            errorParts.ShouldBeNull(); // "The message '" + message + "' is an error/warning message"
        }