Skip to content
  • Johannes Schindelin's avatar
    t5404: relax overzealous test · 43b44ccf
    Johannes Schindelin authored and Junio C Hamano's avatar Junio C Hamano committed
    In 0b294c0a (make deleting a missing ref more quiet, 2008-07-08), we
    added a test to verify that deleting an already-deleted ref does not
    show an error.
    
    Our test simply looks for the substring 'error' in the output of the
    `git push`, which might look innocuous on the face of it.
    
    Suppose, however, that you are a big fan of whales. Or even better: your
    IT administrator has a whale of a time picking cute user names, e.g.
    referring to you (due to your like of India Pale Ales) as "one of the
    cuter rorquals" (see https://en.wikipedia.org/wiki/Rorqual
    
     to learn a
    thing or two about rorquals) and hence your home directory becomes
    /home/cuterrorqual. If you now run t5404, it fails! Why? Because the
    test calls `git push origin :b3` which outputs:
    
        To /home/cuterrorqual/git/t/trash directory.t5404-tracking-branches/.
         - [deleted]         b3
    
    Note how there is no error displayed in that output? But of course
    "error" is a substring of "cuterrorqual". And so that `grep error
    output` finds something.
    
    This bug was not, actually, caught having "error" as a substring of the
    user name but while working in a worktree called "colorize-push-errors",
    whose name was part of that output, too, suggesting that not even
    testing for the *word* `error` via `git grep -w error output` would fix
    the underlying issue.
    
    This patch chooses instead to look for the prefix "error:" at the
    beginning of the line, so that there can be no ambiguity that any catch
    was indeed a message generated by Git's `error_builtin()` function.
    
    Signed-off-by: default avatarJohannes Schindelin <johannes.schindelin@gmx.de>
    Acked-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    43b44ccf