示例#1
0
        public static void SetHelixLogUri(this ModelTestResult modelTestResult, HelixLogKind kind, string uri)
        {
            modelTestResult.IsHelixTestResult = true;
            switch (kind)
            {
            case HelixLogKind.Console:
                modelTestResult.HelixConsoleUri = uri;
                break;

            case HelixLogKind.CoreDump:
                modelTestResult.HelixCoreDumpUri = uri;
                break;

            case HelixLogKind.RunClient:
                modelTestResult.HelixRunClientUri = uri;
                break;

            case HelixLogKind.TestResults:
                modelTestResult.HelixTestResultsUri = uri;
                break;

            default:
                throw new Exception($"Invalid kind '{kind}'");
            }
        }
示例#2
0
        public void AddHelixLog(ModelTestResult testResult, HelixLogKind kind, string content)
        {
            var uri = $"https://localhost/runfo/{HelixLogCount++}/{kind}";

            testResult.SetHelixLogUri(kind, uri);
            TestableHttpMessageHandler.AddRaw(uri, content);
        }
示例#3
0
        public HelixLogInfo(
            HelixLogKind kind,
            string uri)
        {
            switch (kind)
            {
            case HelixLogKind.RunClient:
                RunClientUri = uri;
                break;

            case HelixLogKind.Console:
                ConsoleUri = uri;
                break;

            case HelixLogKind.CoreDump:
                CoreDumpUri = uri;
                break;

            case HelixLogKind.TestResults:
                TestResultsUri = uri;
                break;

            default:
                throw new Exception($"Invalid value {kind}");
            }
        }
示例#4
0
 public SearchHelixLogsResult(BuildInfo buildInfo, HelixLogKind helixLogKind, string helixLogUri, string line)
 {
     BuildInfo    = buildInfo;
     HelixLogKind = helixLogKind;
     HelixLogUri  = helixLogUri;
     Line         = line;
 }
示例#5
0
        public async Task SimpleHelixLogTrackingIssue(HelixLogKind kind)
        {
            var def         = AddBuildDefinition("dnceng|public|roslyn|42");
            var attempt     = AddAttempt(1, AddBuild("1|dotnet|roslyn", def));
            var testRun     = AddTestRun("windows", attempt.ModelBuild);
            var testResult1 = AddTestResult("Util.Test1", testRun);

            AddHelixLog(testResult1, kind, "the dog fetched the ball");
            var testResult2 = AddTestResult("Util.Test2", testRun);

            AddHelixLog(testResult2, kind, "the tree grew");

            var tracking1 = AddTrackingIssue(
                TrackingKind.HelixLogs,
                helixLogsRequest: new SearchHelixLogsRequest()
            {
                HelixLogKinds = { kind },
                Text          = "the",
            });

            await TestSearch(tracking1, matchCount : 2, isPresent : true);

            var tracking2 = AddTrackingIssue(
                TrackingKind.HelixLogs,
                helixLogsRequest: new SearchHelixLogsRequest()
            {
                HelixLogKinds = { kind },
                Text          = "dog",
            });

            await TestSearch(tracking2, matchCount : 1, isPresent : true);

            var tracking3 = AddTrackingIssue(
                TrackingKind.HelixLogs,
                helixLogsRequest: new SearchHelixLogsRequest()
            {
                HelixLogKinds = { kind },
                Text          = "fish",
            });

            await TestSearch(tracking3, matchCount : 0, isPresent : false);

            async Task TestSearch(ModelTrackingIssue issue, int matchCount, bool isPresent)
            {
                await Context.SaveChangesAsync();

                await TrackingIssueUtil.TriageAsync(attempt, issue);

                var matches = await Context.ModelTrackingIssueMatches.Where(x => x.ModelTrackingIssueId == issue.Id).ToListAsync();

                Assert.Equal(matchCount, matches.Count);
                var result = await Context.ModelTrackingIssueResults.Where(x => x.ModelTrackingIssueId == issue.Id).SingleAsync();

                Assert.Equal(isPresent, result.IsPresent);
            }
        }
示例#6
0
        public async Task SimpleHelixLogsReport(HelixLogKind kind, string columnText, string fileName)
        {
            var def = AddBuildDefinition("dnceng|public|roslyn|42");

            AddTestData(1, "2020-08-01");
            AddTestData(2, "2020-08-01");
            var tracking = AddTrackingIssue(
                TrackingKind.HelixLogs,
                title: "Helix Log",
                helixLogsRequest: new SearchHelixLogsRequest()
            {
                HelixLogKinds = { kind },
                Text          = "data",
            });

            await Context.SaveChangesAsync();

            await TriageAll();

            var expected = @$ "
|Build|Kind|{columnText}|
示例#7
0
 public static string GetDisplayFileName(this HelixLogKind kind) => kind switch
 {
示例#8
0
 public string?GetUri(HelixLogKind kind) => kind switch
 {