From patchwork Fri Jul 21 04:40:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacob Abel X-Patchwork-Id: 13321332 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 69B57C0015E for ; Fri, 21 Jul 2023 04:41:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230243AbjGUElT (ORCPT ); Fri, 21 Jul 2023 00:41:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48158 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230357AbjGUEky (ORCPT ); Fri, 21 Jul 2023 00:40:54 -0400 Received: from mail-4022.proton.ch (mail-4022.proton.ch [185.70.40.22]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E694B2735 for ; Thu, 20 Jul 2023 21:40:45 -0700 (PDT) Date: Fri, 21 Jul 2023 04:40:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nullpo.dev; s=protonmail; t=1689914444; x=1690173644; bh=ttsdUgiBuMb8wY+Jhz3M7JxI7pVPmW7pUCXD4KH35CY=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=wk/rh3NKVH1RUUPlX/rhKckw2KdXWdFCMfbAGSscmmwPoGzvGBphyJ8EQ93cc9vZX BFQXpxdIJPKIrdIH9gBeZkPAv4PBAOyqgEJLlhsJ+k6sllIuTJ5U2sfpE7BGhApp1p QoC+jJlwOuLrtHewb1qkaiIfhbRSic6Uds3rdWDxxzSNfcQPguHtcgC94UCulXIWj5 Wrq7wtUgNuYPRQrcCsHnjKTUYObVQsVry0lbMeJ0JtjUyYGrc5mkS0m4jQsEx7/CK4 QYf/uD7VbCwIVdblNdbHbM3BoMVD6JbDtuOnahfRboRVa9Ev/dqvR3LAX6Yd4kvBx8 WPmLIZCEwV8xw== To: git@vger.kernel.org From: Jacob Abel Cc: Jacob Abel , Junio C Hamano , Phillip Wood Subject: [PATCH v3 0/3] t2400: Fix test failures when using grep 2.5 Message-ID: <20230721044012.24360-1-jacobabel@nullpo.dev> In-Reply-To: <20230716033743.18200-1-jacobabel@nullpo.dev> References: <20230715025512.7574-1-jacobabel@nullpo.dev> <20230716033743.18200-1-jacobabel@nullpo.dev> Feedback-ID: 21506737:user:proton MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org This patchset is in response to build failures on GGG's Cirrus CI freebsd_12 build jobs[1] and was prompted by a discussion thread [2]. These failures seem to be caused by the behavior outlined in [3]. Note: I jumped the gun on v2 a bit as discussions for v1 were still in progress so these are all changes suggested off v1. Changes from v2: * Split `--sq` change out into separate patch (from 3/3 to 1/3). * Convert tab in advice to space to match coding convention and to allow regex to be further simplified [4]. * Simplified regex [4]. * Reworded commit message for patch 3/3 to better document reason for change [4]. 1. https://github.com/gitgitgadget/git/pull/1550/checks?check_run_id=14949695859 2. https://lore.kernel.org/git/CALnO6CDryTsguLshcQxx97ZxyY42Twu2hC2y1bLOsS-9zbqXMA@mail.gmail.com/ 3. https://stackoverflow.com/questions/4233159/grep-regex-whitespace-behavior 4. https://lore.kernel.org/git/3f3a3f5b-70fd-ec3f-acbb-d585b5eb6cbc@gmail.com/ Jacob Abel (3): t2400: drop no-op `--sq` from rev-parse call builtin/worktree.c: convert tab in advice to space t2400: rewrite regex to avoid unintentional PCRE builtin/worktree.c | 4 ++-- t/t2400-worktree-add.sh | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) Range-diff against v2: -: ---------- > 1: 96c21c5bee t2400: drop no-op `--sq` from rev-parse call -: ---------- > 2: ebfba2d602 builtin/worktree.c: convert tab in advice to space 1: ef4ebd7350 ! 3: dee0c8f350 t2400: Fix test failures when using grep 2.5 @@ Metadata Author: Jacob Abel ## Commit message ## - t2400: Fix test failures when using grep 2.5 + t2400: rewrite regex to avoid unintentional PCRE - Replace all cases of `\s` with `[[:blank:]]` or ` ` as older versions - of GNU grep (and from what it seems most versions of BSD grep) do not - handle `\s`. + Replace all cases of `\s` with ` ` as it is not part of POSIX BRE or ERE + and therefore not all versions of grep handle it without PCRE support. For the same reason all cases of `\S` are replaced with `[^ ]`. It's not - an exact replacement (as it does not match tabs) but it is close enough - for this use case. - - Replacing `\S` also needs to occur as `\S` is technically PCRE and not - part of ERE even though most modern versions of grep accept it as ERE. - - This commit also drops `--sq` from a rev-parse call as it appears to be - a no-op. + an exact replacement but it is close enough for this use case. Signed-off-by: Jacob Abel @@ t/t2400-worktree-add.sh: test_wt_add_orphan_hint () { if [ $use_branch -eq 1 ] then - grep -E "^hint:\s+git worktree add --orphan -b \S+ \S+\s*$" actual -+ grep -E "^hint:[[:blank:]]+git worktree add --orphan -b [^ ]+ [^ ]+$" actual ++ grep -E "^hint:[ ]+git worktree add --orphan -b [^ ]+ [^ ]+$" actual else - grep -E "^hint:\s+git worktree add --orphan \S+\s*$" actual -+ grep -E "^hint:[[:blank:]]+git worktree add --orphan [^ ]+$" actual ++ grep -E "^hint:[ ]+git worktree add --orphan [^ ]+$" actual fi ' @@ t/t2400-worktree-add.sh: test_dwim_orphan () { local git_ns="repo" && @@ t/t2400-worktree-add.sh: test_dwim_orphan () { - grep "$invalid_ref_regex" actual && - ! grep "$orphan_hint" actual - else -- headpath=$(git $dashc_args rev-parse --sq --path-format=absolute --git-path HEAD) && -+ headpath=$(git $dashc_args rev-parse --path-format=absolute --git-path HEAD) && + headpath=$(git $dashc_args rev-parse --path-format=absolute --git-path HEAD) && headcontents=$(cat "$headpath") && grep "HEAD points to an invalid (or orphaned) reference" actual && - grep "HEAD path:\s*.$headpath." actual &&