-
Notifications
You must be signed in to change notification settings - Fork 698
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deduplicate path separator duplicates #10646
base: master
Are you sure you want to change the base?
Conversation
2d03f00
to
53fd7b0
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm confused: is the .md file a GitHub artifact, or did you really add two changelog.d
entries?
53fd7b0
to
ca61a07
Compare
Thanks for catching that mistake of mine @geekosaur. I let the Can we use a |
|
Reverting to draft while I settle some Windows versus POSIX file path issues. |
bfda13a
to
14850de
Compare
4a8c795
to
ead2ec4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That was a tricky one, but the tests make it easier for the reviewer to trust the solution without spending hours to get a deep understanding. The PR will be a good test of our tools and the process. I think it would be great to also include this great write-up from the changelog in a Note or maybe in a test linked to by name from the code?
b638eac
to
8cfe16c
Compare
@Mikolaj I've added a note |
8cfe16c
to
c1122ef
Compare
Yes it was and I'll have to squash those ~70 commits before applying a merge label. |
24af359
to
ed55098
Compare
Label merge+no rebase is necessary when the pull request is from an organisation. |
- Manually replace path separators before anything else - Use pathSeparator instead of literal char - Use isPathSeparator predicate
ed55098
to
5d3c1a0
Compare
- Add else.project test - Use normalizeWindowsOutput - Add a changelog entry - Update expectation - Use concatOutput on needle - Include output - Align lines - Show modified output - Apply concatOutput to the needle - Show start and end of lines with ASCII ^ and $h - Can't print pilcrow so use grep char for marking end of line - Marking the start of line distinguishes "expected" intro from its content too, same for "output" - Use \n in multiline string expectation - Add NeedleHaystack - Add expectNeedleInHaystack field to NeedleHaystack - Remove 3 assert*Contains functions - Add TxContains record - Apply the txBwd transformations before display - Add displayHaystack field - Switch to using <EOL> as the marker - Sort language pragmas - Use ++ rather than cons with reversals - Rerun ParseErrorProvenance test - Add doctests for single line strings - Read exected multiline string from file - Use lineBreaksToSpaces - Add module Test.Cabal.NeedleHaystack - Redo ConditionalAndImport with multiline expectations - Add test of string expectation start and end marking - Rename encodeLf and decodeLfMarkLines - Rename original concatOutput to lineBreaksToSpaces - Add assertOutputContainsWrapped - Use multiline and wrapped assertions - DedupUsingConfigFromComplex multiline assertion - Remove redundant tests that fail on Windows - Use normalizeWindowsOutput in ConditionalAndImport - Forward conversion applied twice by mistake - Easier diff when assertOn follows assertOutputContains - Add readVerbatimFile - Have readVerbatimFile read contents strictly - Add normalizePathSeparator - Don't modify path separator for URIs - Don't normalize path with anything URI-like - Normalize expected output - Rename to normalizePathSeparators - Add an explicit export list to NeedleHaystack - Drop unlines . lines added trailing newline - Show example of normalizePathSeparators - Use local unsnoc definition to avoid CPP - Define local unlines - Satisfy fix-whitespace - Don't use <EOL> - Rename to delimitLines - Rename the changelog with *.md extension - Add a section on cabal-testsuite changes - Rename the function to readFileVerbatim - Add to contributing and cabal-testsuite's readme - Use setup for the noun - Typo s/displaying/display - Typo "can easier" - Use unsnoc from Cabal-syntax Utils.Generic - Add a note [Multiline Needles] - Remove doctests available elsewhere - Substitute encodeLf for concatOutput for assertOutputMatches
- Add oops.expect.txt - Add cabal-missing-package.expect.txt - Add hops.expect.txt - Add DedupUsingConfigFromComplex/errors.expect.txt - Add using configuration from to errors.expect.txt
5539c23
to
32b820b
Compare
Fixes #10645, a small Windows gotcha missed with #10546.
I really had to get into the weeds with this one. The
assertOutputContains
function was modifying the output (a test actual value) before comparision with the unmodified actual value. This change was not visible. I've added anassertOn
function (thatassertOutputContains
calls) that takes aNeedleHaystack
configuration for how the search, expectation and display are made. I had wanted to add a pilcrow¶
for line endings but the terminal output is restricted to ASCII so I've marked line beginnings with^
and line endings with$
. The needle (the expected output fragment) is shown annotated this way as can the haystack (the output). The haystack is not shown annotated with line delimiters but can be.The
concatOutput
function, I've renamed tolineBreaksToSpaces
. There's more detail on thecabal-testsuite
changes in the changelog entry. One benefit of using an.md
extension forchangelog.d/pr-10646.md
is that typos are caught by CI.significance: significant
in the changelog file.