diff --git a/eng/testing/select-affected-tests.cs b/eng/testing/select-affected-tests.cs index 3a1d52026..9d0f41964 100644 --- a/eng/testing/select-affected-tests.cs +++ b/eng/testing/select-affected-tests.cs @@ -679,6 +679,7 @@ private static async Task> ChangedFilesAsync(string repoRoot, strin var packageIds = new HashSet(StringComparer.Ordinal); var uncertain = false; + var inComment = false; foreach (var rawLine in output.Split('\n', StringSplitOptions.TrimEntries)) { @@ -698,11 +699,52 @@ private static async Task> ChangedFilesAsync(string repoRoot, strin } var line = rawLine[1..].Trim(); - if (string.IsNullOrEmpty(line) || line.StartsWith("", StringComparison.Ordinal); + if (commentEnd >= 0) + { + inComment = false; + + // Process any content after the comment close marker on the same line. + line = line[(commentEnd + 3)..].Trim(); + if (string.IsNullOrEmpty(line)) + { + continue; + } + } + else + { + continue; + } + } + + var commentStart = line.IndexOf("", commentStart + 4, StringComparison.Ordinal) < 0) + { + inComment = true; + } + + if (commentStart == 0) + { + // Entire line is a comment — skip it. + continue; + } + + // Content precedes the comment; trim off the comment (and anything after it) before further processing. + line = line[..commentStart].Trim(); + } + if (line.Contains("PackageVersion", StringComparison.Ordinal) && TryGetAttributeValue(line, "Include", out var include)) { @@ -710,7 +752,10 @@ private static async Task> ChangedFilesAsync(string repoRoot, strin continue; } - uncertain = true; + if (!string.IsNullOrEmpty(line)) + { + uncertain = true; + } } return (packageIds, uncertain);