From patchwork Mon Feb 15 00:52:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087521 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 63710C433DB for ; Mon, 15 Feb 2021 00:54:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 23C2364E27 for ; Mon, 15 Feb 2021 00:54:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230002AbhBOAxo (ORCPT ); Sun, 14 Feb 2021 19:53:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49112 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229958AbhBOAxm (ORCPT ); Sun, 14 Feb 2021 19:53:42 -0500 Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 93FE2C061756 for ; Sun, 14 Feb 2021 16:53:01 -0800 (PST) Received: by mail-wr1-x433.google.com with SMTP id v1so7162022wrd.6 for ; Sun, 14 Feb 2021 16:53:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DOUQxhcdhCaGf/O5jFWwCNwL+C49UskrpGE3NVYUJM4=; b=TfPlVrI7SgB+setL66teG2U1Iumz99Kbmh3o1+yP2YiZsMTE4bhR8lHMZ/sxKaiarw rVZpWddP+TSZCK6oO4c6l9Guh1SoNQta2lM+5pIlxusXq8jBLWimMZcmrjMkx7pYIgYM 08en4pT6mbomgxW5anOxKezKj55J3bUteabQrS7xaHVvV6cwjuJ2SH8AmQWGqORN88W6 JfmwLeKVct7dCC9ZR/R1rvqspHQb/TTSKqtaO5jy0WJMGVlD2DWM7JfbLHAC0FmSueL7 wSjMH5D4OquW7uUAgUCyHk3vgc1ngT8PeDwfiXNeVL2/eGlfdjVRw+VDaCNxBIS4V5CF dfzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DOUQxhcdhCaGf/O5jFWwCNwL+C49UskrpGE3NVYUJM4=; b=n0gdHcrDFfGelylWobFjof9CHTUn439F4cBpmeDm/1z0ycbQ5aJZK1NJGpEWjbsKcz Xc0uuif0S7peqemXZ86iO7i68UMV/TaeZ9x/MSzs1IiLlLqV/mywBNO4VhqswxmIiv6w 5Q0HVHWpBN7P73JMkXE1Xbi4jCECwSHeG4ipx2vbZqTCbgZtLS7TYaKVZUrVF9LAvxW/ E2AttNhe1sDSqQmbRnlVEgT6CnDuCvSkBl0fpXJfLjwBMGcthbFNp+49hJEd/7z2jW3p a8Fvji5rdyQHRFcxth1nXbUiF1N8CuxO/nbx+wDsxSM518jCyM4QHTh+XDas0qjYYxwq jk7A== X-Gm-Message-State: AOAM532SE6QthIaOClSOZlGheuR/0Bu6On3qmlIL8seQCRs41OZTzCQk J9zvKMDLRjmcCGIxmORPVQNH4LFY8nsrog== X-Google-Smtp-Source: ABdhPJzCDHmdsWP1diRzxTP2XLJpAQsSosQAA+6+e+FqDpNYXE5sUt5uTnRctbwRSFIum6C14eJ1Kg== X-Received: by 2002:adf:e809:: with SMTP id o9mr16175042wrm.137.1613350380004; Sun, 14 Feb 2021 16:53:00 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.52.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:52:59 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 01/20] userdiff: refactor away the parse_bool() function Date: Mon, 15 Feb 2021 01:52:17 +0100 Message-Id: <20210215005236.11313-2-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Since 6680a0874f (drop odd return value semantics from userdiff_config, 2012-02-07) we have not cared about the return values of parse_tristate() or git_config_bool() v.s. falling through in userdiff_config(), so let's do so in those cases to make the code easier to read. Having a wrapper function for git_config_bool() dates back to d9bae1a178 (diff: cache textconv output, 2010-04-01) and 122aa6f9c0 (diff: introduce diff..binary, 2008-10-05), both of which predated the change in 6680a0874f which made their return values redundant. Signed-off-by: Ævar Arnfjörð Bjarmason --- userdiff.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/userdiff.c b/userdiff.c index 3f81a2261c..c147bcbb17 100644 --- a/userdiff.c +++ b/userdiff.c @@ -275,19 +275,12 @@ static int parse_funcname(struct userdiff_funcname *f, const char *k, return 0; } -static int parse_tristate(int *b, const char *k, const char *v) +static void parse_tristate(int *b, const char *k, const char *v) { if (v && !strcasecmp(v, "auto")) *b = -1; else *b = git_config_bool(k, v); - return 0; -} - -static int parse_bool(int *b, const char *k, const char *v) -{ - *b = git_config_bool(k, v); - return 0; } int userdiff_config(const char *k, const char *v) @@ -312,16 +305,17 @@ int userdiff_config(const char *k, const char *v) return parse_funcname(&drv->funcname, k, v, 0); if (!strcmp(type, "xfuncname")) return parse_funcname(&drv->funcname, k, v, REG_EXTENDED); - if (!strcmp(type, "binary")) - return parse_tristate(&drv->binary, k, v); if (!strcmp(type, "command")) return git_config_string(&drv->external, k, v); if (!strcmp(type, "textconv")) return git_config_string(&drv->textconv, k, v); - if (!strcmp(type, "cachetextconv")) - return parse_bool(&drv->textconv_want_cache, k, v); if (!strcmp(type, "wordregex")) return git_config_string(&drv->word_regex, k, v); + /* Don't care about the parse errors for these, fallthrough */ + if (!strcmp(type, "cachetextconv")) + drv->textconv_want_cache = git_config_bool(k, v); + if (!strcmp(type, "binary")) + parse_tristate(&drv->binary, k, v); return 0; } From patchwork Mon Feb 15 00:52:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087525 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9E337C433E9 for ; Mon, 15 Feb 2021 00:54:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 62C1C64DDA for ; Mon, 15 Feb 2021 00:54:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230017AbhBOAxq (ORCPT ); Sun, 14 Feb 2021 19:53:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49116 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229959AbhBOAxm (ORCPT ); Sun, 14 Feb 2021 19:53:42 -0500 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C4AFC0613D6 for ; Sun, 14 Feb 2021 16:53:02 -0800 (PST) Received: by mail-wr1-x436.google.com with SMTP id r21so7136579wrr.9 for ; Sun, 14 Feb 2021 16:53:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BXVmPpaYmiL4mura8Qx5X3xpWe9JzvF6A59/5U8QDJo=; b=KzzJ2S2hkhAyDb0EfLg0H/QSaCYSRBBly5dGJeYfgdRX7zqEjENaJnTLbui6KEZnnR k/OBIw+/x3Piky2m3Pob5kLC13bsl81JAROGs/nySBKzIBCWRFdyu1MtgqyZ/UjmUlKQ A3+e4dIuUMZvLfcp3UuB9BR4pfohBi7fF761sSLjTaSFe/sHsd95DrGq3yFGIP90r7/E yPpufvIzVF/Ng8HWuHVE+XcgIc4RmN0addMRAWXxcqAXyeZXz6eiz2iwlJ8NbEKUpxG3 bjvDaHNZfQBuvV53bXnHzccY70IJYmnvb6jXkpM/nmQnq5cLoIljNWOE3n3HDqcs9aWu 28Dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=BXVmPpaYmiL4mura8Qx5X3xpWe9JzvF6A59/5U8QDJo=; b=pw3CLjN6p93A8sJXAaPYfAGhoJ7hP1PUXFK3bGa+qIgqqpc4OeJ4bTT0YgBaT+nzQZ Mj1Fht09ioNl2Sxx6KVPOEkD6prmYFu6yvyxHebxg7A2AIqU9Zw6ub+zFG0yyOuumSYp gtqBNfGew0h5/6VM8Mit0/Vq/WKjRm2NBXmeOTlMoU2uR/BXerXxPpG2IAUDhv2m65Wh 5eE+a6ZJ8gDNhhDp+cV36tRl8y3jJk1sQYJu+xUlLbv3rAe1HI55rCm4xP7lMfeJoZsP obcan/WgGFr3OoaTEOsitSVlbkyIrT5dH162oaKjcrUz4ybjgbOjggg1DrPIcsKpk6N9 wqrg== X-Gm-Message-State: AOAM533/rfa0WiE2QG/9Amp2lh10KaHPfDfFbNRLy/n5iBaQwFjke6Ew KZzhGycsp0KmkJ1W+L0i/Q9RpECE1hN7iw== X-Google-Smtp-Source: ABdhPJzh3wq8hj6/cgAbTSiJzuqeD3wKoibVCmwgOIjUi+gbnR8pCPZHIhAev80Ozh6SmRiBSB68dw== X-Received: by 2002:a5d:591a:: with SMTP id v26mr15966774wrd.331.1613350380825; Sun, 14 Feb 2021 16:53:00 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:00 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 02/20] userdiff: re-order builtin drivers in alphabetical order Date: Mon, 15 Feb 2021 01:52:18 +0100 Message-Id: <20210215005236.11313-3-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Address some old code smell and move around the built-in userdiff definitions so they're both in alphabetical order, and now in the same order they appear in the gitattributes(5) documentation. The two started drifting in be58e70dba (diff: unify external diff and funcname parsing code, 2008-10-05), and then even further in 80c49c3de2 (color-words: make regex configurable via attributes, 2009-01-17) when the "cpp" pattern was added. There are no functional changes here, and as --color-moved will show only moved existing lines. Signed-off-by: Ævar Arnfjörð Bjarmason --- userdiff.c | 76 +++++++++++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/userdiff.c b/userdiff.c index c147bcbb17..c92cbcc054 100644 --- a/userdiff.c +++ b/userdiff.c @@ -44,6 +44,44 @@ PATTERNS("bash", /* -- */ /* Characters not in the default $IFS value */ "[^ \t]+"), +PATTERNS("bibtex", "(@[a-zA-Z]{1,}[ \t]*\\{{0,1}[ \t]*[^ \t\"@',\\#}{~%]*).*$", + "[={}\"]|[^={}\" \t]+"), +PATTERNS("cpp", + /* Jump targets or access declarations */ + "!^[ \t]*[A-Za-z_][A-Za-z_0-9]*:[[:space:]]*($|/[/*])\n" + /* functions/methods, variables, and compounds at top level */ + "^((::[[:space:]]*)?[A-Za-z_].*)$", + /* -- */ + "[a-zA-Z_][a-zA-Z0-9_]*" + "|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lLuU]*" + "|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->\\*?|\\.\\*"), +PATTERNS("csharp", + /* Keywords */ + "!^[ \t]*(do|while|for|if|else|instanceof|new|return|switch|case|throw|catch|using)\n" + /* Methods and constructors */ + "^[ \t]*(((static|public|internal|private|protected|new|virtual|sealed|override|unsafe|async)[ \t]+)*[][<>@.~_[:alnum:]]+[ \t]+[<>@._[:alnum:]]+[ \t]*\\(.*\\))[ \t]*$\n" + /* Properties */ + "^[ \t]*(((static|public|internal|private|protected|new|virtual|sealed|override|unsafe)[ \t]+)*[][<>@.~_[:alnum:]]+[ \t]+[@._[:alnum:]]+)[ \t]*$\n" + /* Type definitions */ + "^[ \t]*(((static|public|internal|private|protected|new|unsafe|sealed|abstract|partial)[ \t]+)*(class|enum|interface|struct)[ \t]+.*)$\n" + /* Namespace */ + "^[ \t]*(namespace[ \t]+.*)$", + /* -- */ + "[a-zA-Z_][a-zA-Z0-9_]*" + "|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lL]?" + "|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->"), +IPATTERN("css", + "![:;][[:space:]]*$\n" + "^[:[@.#]?[_a-z0-9].*$", + /* -- */ + /* + * This regex comes from W3C CSS specs. Should theoretically also + * allow ISO 10646 characters U+00A0 and higher, + * but they are not handled in this regex. + */ + "-?[_a-zA-Z][-_a-zA-Z0-9]*" /* identifiers */ + "|-?[0-9]+|\\#[0-9a-fA-F]+" /* numbers */ +), PATTERNS("dts", "!;\n" "!=\n" @@ -191,46 +229,8 @@ PATTERNS("rust", "[a-zA-Z_][a-zA-Z0-9_]*" "|[0-9][0-9_a-fA-Fiosuxz]*(\\.([0-9]*[eE][+-]?)?[0-9_fF]*)?" "|[-+*\\/<>%&^|=!:]=|<<=?|>>=?|&&|\\|\\||->|=>|\\.{2}=|\\.{3}|::"), -PATTERNS("bibtex", "(@[a-zA-Z]{1,}[ \t]*\\{{0,1}[ \t]*[^ \t\"@',\\#}{~%]*).*$", - "[={}\"]|[^={}\" \t]+"), PATTERNS("tex", "^(\\\\((sub)*section|chapter|part)\\*{0,1}\\{.*)$", "\\\\[a-zA-Z@]+|\\\\.|[a-zA-Z0-9\x80-\xff]+"), -PATTERNS("cpp", - /* Jump targets or access declarations */ - "!^[ \t]*[A-Za-z_][A-Za-z_0-9]*:[[:space:]]*($|/[/*])\n" - /* functions/methods, variables, and compounds at top level */ - "^((::[[:space:]]*)?[A-Za-z_].*)$", - /* -- */ - "[a-zA-Z_][a-zA-Z0-9_]*" - "|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lLuU]*" - "|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->\\*?|\\.\\*"), -PATTERNS("csharp", - /* Keywords */ - "!^[ \t]*(do|while|for|if|else|instanceof|new|return|switch|case|throw|catch|using)\n" - /* Methods and constructors */ - "^[ \t]*(((static|public|internal|private|protected|new|virtual|sealed|override|unsafe|async)[ \t]+)*[][<>@.~_[:alnum:]]+[ \t]+[<>@._[:alnum:]]+[ \t]*\\(.*\\))[ \t]*$\n" - /* Properties */ - "^[ \t]*(((static|public|internal|private|protected|new|virtual|sealed|override|unsafe)[ \t]+)*[][<>@.~_[:alnum:]]+[ \t]+[@._[:alnum:]]+)[ \t]*$\n" - /* Type definitions */ - "^[ \t]*(((static|public|internal|private|protected|new|unsafe|sealed|abstract|partial)[ \t]+)*(class|enum|interface|struct)[ \t]+.*)$\n" - /* Namespace */ - "^[ \t]*(namespace[ \t]+.*)$", - /* -- */ - "[a-zA-Z_][a-zA-Z0-9_]*" - "|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lL]?" - "|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->"), -IPATTERN("css", - "![:;][[:space:]]*$\n" - "^[:[@.#]?[_a-z0-9].*$", - /* -- */ - /* - * This regex comes from W3C CSS specs. Should theoretically also - * allow ISO 10646 characters U+00A0 and higher, - * but they are not handled in this regex. - */ - "-?[_a-zA-Z][-_a-zA-Z0-9]*" /* identifiers */ - "|-?[0-9]+|\\#[0-9a-fA-F]+" /* numbers */ -), { "default", NULL, -1, { NULL, 0 } }, }; #undef PATTERNS From patchwork Mon Feb 15 00:52:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087523 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 97AA0C43381 for ; Mon, 15 Feb 2021 00:54:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7BED564E52 for ; Mon, 15 Feb 2021 00:54:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230020AbhBOAxs (ORCPT ); Sun, 14 Feb 2021 19:53:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49124 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229976AbhBOAxn (ORCPT ); Sun, 14 Feb 2021 19:53:43 -0500 Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 61FDCC061786 for ; Sun, 14 Feb 2021 16:53:03 -0800 (PST) Received: by mail-wr1-x42e.google.com with SMTP id v7so7116530wrr.12 for ; Sun, 14 Feb 2021 16:53:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FliCQt+KWe0ezaCzaZp+6zwkQ2ciw0OthqTq2rDtVps=; b=eh7QLlxHyt+ETPwwO8qOFDBXxb3PRZS4wBC7iu7BEUHab+q8wxP4eMmX+Bh1K9BHz6 HWk8qQkTfmFwC5LhYdZdhzyEKqaeVGxnN0/Y/WTyX7uPnnvtJ674A4ct6Mw+HYeo7/KB YEGOtnIWxyDh+6LI0nPHmxSplB1HCs2mKprlFNUoFnjyZzo6xHn68kgqgGnBhAmui37B PtJ2pxzjPLqLgJoccTWXtUFy9tnO148Ddfl0IRxpouqMvDNnckJJKJspDptsG73p01l3 EFGNZ/Ytj3CZ2XxjFalQoZ5FwLxGJH+uy4AjzTzNcPB8SmBxpiS3GZsokmkStK2AhcZt LGUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=FliCQt+KWe0ezaCzaZp+6zwkQ2ciw0OthqTq2rDtVps=; b=BJrn236oql/GHJCzoJHYPC2yYSNet4jbYNF7gdkNq0e0Jl47oh7YtF0eAIrpOBkfuq uyteRmfgCcmZcaZUy0Fw8EZDWOs4ZS0DK2cEqBuyy5wikDN2rQGDgpkFz6nCurib/SpE K7qL0WyNQSwUqnOrTpJ37mmW5YpoDH7QSi/o2IPQwtyqZN1Ju1xfj2ZYgKlcGL3X2fWX AnwdkwA4BtSM/JmvIIkJIIz89hO8PiMB0cbBGOUREyF0hyuovzhxbuObYnPSZbPYz873 o5RDawP/W5DL5zQDQrCCXqwOlx3SS2+aASb6XZY6hvbFTw+A+/G2JSm0ayjjVcyum5cM WF8g== X-Gm-Message-State: AOAM530zdx5vtOc5C6ijbOMomwa1NBpZSlG1hVPhzZF+FG1JEdG39wEZ GLK+s+EG2kaQRUOetR8W1c2LIkOTJ9Gv4w== X-Google-Smtp-Source: ABdhPJyRA1ScdpMsk4W7gOHyIt7uxEtFfz2IUKKXPPRkOnKxh/PxRkXzXDZmicWCCwE4nqVrfeRBMg== X-Received: by 2002:adf:f701:: with SMTP id r1mr16248379wrp.353.1613350381832; Sun, 14 Feb 2021 16:53:01 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:01 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 03/20] userdiff: add and use for_each_userdiff_driver() Date: Mon, 15 Feb 2021 01:52:19 +0100 Message-Id: <20210215005236.11313-4-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Refactor the userdiff_find_by_namelen() function so that a new for_each_userdiff_driver() API function does most of the work. This will be useful for the same reason we've got other for_each_*() API functions as part of various APIs, and will be used in a follow-up commit. Signed-off-by: Ævar Arnfjörð Bjarmason --- userdiff.c | 61 +++++++++++++++++++++++++++++++++++++++++++----------- userdiff.h | 15 ++++++++++++++ 2 files changed, 64 insertions(+), 12 deletions(-) diff --git a/userdiff.c b/userdiff.c index c92cbcc054..92b5a97e12 100644 --- a/userdiff.c +++ b/userdiff.c @@ -250,20 +250,32 @@ static struct userdiff_driver driver_false = { { NULL, 0 } }; -static struct userdiff_driver *userdiff_find_by_namelen(const char *k, size_t len) +struct for_each_userdiff_driver_cb { + const char *k; + size_t len; + struct userdiff_driver *driver; +}; + +static int userdiff_find_by_namelen_cb(struct userdiff_driver *driver, + enum userdiff_driver_type type, void *priv) { - int i; - for (i = 0; i < ndrivers; i++) { - struct userdiff_driver *drv = drivers + i; - if (!strncmp(drv->name, k, len) && !drv->name[len]) - return drv; - } - for (i = 0; i < ARRAY_SIZE(builtin_drivers); i++) { - struct userdiff_driver *drv = builtin_drivers + i; - if (!strncmp(drv->name, k, len) && !drv->name[len]) - return drv; + struct for_each_userdiff_driver_cb *cb_data = priv; + + if (!strncmp(driver->name, cb_data->k, cb_data->len) && + !driver->name[cb_data->len]) { + cb_data->driver = driver; + return -1; /* found it! */ } - return NULL; + return 0; +} + +static struct userdiff_driver *userdiff_find_by_namelen(const char *k, size_t len) +{ + struct for_each_userdiff_driver_cb udcbdata = { .k = k, .len = len, .driver = NULL }; + + for_each_userdiff_driver(userdiff_find_by_namelen_cb, + USERDIFF_DRIVER_TYPE_UNSPECIFIED, &udcbdata); + return udcbdata.driver; } static int parse_funcname(struct userdiff_funcname *f, const char *k, @@ -364,3 +376,28 @@ struct userdiff_driver *userdiff_get_textconv(struct repository *r, return driver; } + +int for_each_userdiff_driver(each_userdiff_driver_fn fn, + enum userdiff_driver_type type, void *cb_data) +{ + int i, ret; + if (type & (USERDIFF_DRIVER_TYPE_UNSPECIFIED | USERDIFF_DRIVER_TYPE_CUSTOM)) { + + for (i = 0; i < ndrivers; i++) { + struct userdiff_driver *drv = drivers + i; + ret = fn(drv, USERDIFF_DRIVER_TYPE_CUSTOM, cb_data); + if (ret) + return ret; + } + } + if (type & (USERDIFF_DRIVER_TYPE_UNSPECIFIED | USERDIFF_DRIVER_TYPE_BUILTIN)) { + + for (i = 0; i < ARRAY_SIZE(builtin_drivers); i++) { + struct userdiff_driver *drv = builtin_drivers + i; + ret = fn(drv, USERDIFF_DRIVER_TYPE_BUILTIN, cb_data); + if (ret) + return ret; + } + } + return 0; +} diff --git a/userdiff.h b/userdiff.h index 203057e13e..fe14014a77 100644 --- a/userdiff.h +++ b/userdiff.h @@ -21,6 +21,13 @@ struct userdiff_driver { struct notes_cache *textconv_cache; int textconv_want_cache; }; +enum userdiff_driver_type { + USERDIFF_DRIVER_TYPE_UNSPECIFIED = 1<<0, + USERDIFF_DRIVER_TYPE_BUILTIN = 1<<1, + USERDIFF_DRIVER_TYPE_CUSTOM = 1<<2, +}; +typedef int (*each_userdiff_driver_fn)(struct userdiff_driver *, + enum userdiff_driver_type, void *); int userdiff_config(const char *k, const char *v); struct userdiff_driver *userdiff_find_by_name(const char *name); @@ -34,4 +41,12 @@ struct userdiff_driver *userdiff_find_by_path(struct index_state *istate, struct userdiff_driver *userdiff_get_textconv(struct repository *r, struct userdiff_driver *driver); +/* + * Iterate over each driver of type userdiff_driver_type, or + * USERDIFF_DRIVER_TYPE_UNSPECIFIED for all of them. Return non-zero + * to exit from the loop. + */ +int for_each_userdiff_driver(each_userdiff_driver_fn, + enum userdiff_driver_type, void *); + #endif /* USERDIFF */ From patchwork Mon Feb 15 00:52:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087529 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AE3AFC4332D for ; Mon, 15 Feb 2021 00:54:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 90F8C64DBA for ; Mon, 15 Feb 2021 00:54:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230028AbhBOAxu (ORCPT ); Sun, 14 Feb 2021 19:53:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49126 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229994AbhBOAxo (ORCPT ); Sun, 14 Feb 2021 19:53:44 -0500 Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 15284C061788 for ; Sun, 14 Feb 2021 16:53:04 -0800 (PST) Received: by mail-wr1-x42e.google.com with SMTP id n6so7142402wrv.8 for ; Sun, 14 Feb 2021 16:53:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JpqKQgUz+R8bu/kg2ACsnMlKo+TGhbyZUUp5SPLltGU=; b=u6gRISTLHjkcXsYJEprLXHt5QTEk/a6LoxFYO6EsPWtg9k4NBi5PMDYPa1OH1OCxKn JDKOiqcpa/ECOWDht3YqAUPCER/AL9mGuKUwEE3kDLvBRMBdgZYO6eTCRWvC315xJgUk UDoZUut2Wo0Z9oUWZ7uIVlwQ0Aedc8uOPBcAmAJ0Rj+ZEjtCca/vs8GnJWX6TJMXbuFM Dpn7SECvBrNEPsS5O+MOkDlEbeBiyslSRhBL2VZJDXg/Lyyp4dUcuwvVnDifoRPpB1Aa zD7gYCcq2Gsr4dOI5I21TBp83R74yLKA7s+1/9t+wLE/91OOJIyLrOdhueK/+y9zyikA Nf0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JpqKQgUz+R8bu/kg2ACsnMlKo+TGhbyZUUp5SPLltGU=; b=FoRf0u8CIc51Vf3AGUT0TCJt9qrguZoZQML55SNgOGlpNwp1oL3CnVoglrlrAY9Y7K nfLM3lGDnHaEtHGkM9z2gz+hY8sXZoDM4z9zXBeywkJdBMQqtb8nFAD9qPjzEmx0Bj1l 5nH8ImmRchv/Sh8E8Cvm3DbXJvHineszYS2vO92VHw3WxMA5APJrPkD7vNNvng9jZq5f 1gadaJeR/HlVgDl9KZ2ufbXmSqVliaPc/shyBkUJ0ahCITRvZWJcGeRYP90YW+i5VkYv T769zhuZt9//wNf+5tcpeC59DYs5lFhUmiWPR35hC4RwA9cQenCnjbdA3dFb03z9xgu8 ohJA== X-Gm-Message-State: AOAM531rd7EH5mqsVNAuAZo7baSMc7uV7Dv85H5KmCK3FAkjo3IxUvmQ OMvy06Maw0ODjyWwo4g91p9Skk+fYbIzlw== X-Google-Smtp-Source: ABdhPJz4ic8H1jXDjH8AXcRSN2+ywe3IEjdlp5zUDEBO9Bf0AH15I/8p6A4gQx7qRDpTaTwmbpHzMg== X-Received: by 2002:a5d:40cd:: with SMTP id b13mr12936094wrq.3.1613350382605; Sun, 14 Feb 2021 16:53:02 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:02 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 04/20] userdiff tests: explicitly test "default" pattern Date: Mon, 15 Feb 2021 01:52:20 +0100 Message-Id: <20210215005236.11313-5-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Since 122aa6f9c0 (diff: introduce diff..binary, 2008-10-05) the internals of the userdiff.c code have understood a "default" name, which is invoked as userdiff_find_by_name("default") and present in the "builtin_drivers" struct. Let's test for this special case. Signed-off-by: Ævar Arnfjörð Bjarmason --- t/t4018-diff-funcname.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/t/t4018-diff-funcname.sh b/t/t4018-diff-funcname.sh index 9675bc17db..cefe329aea 100755 --- a/t/t4018-diff-funcname.sh +++ b/t/t4018-diff-funcname.sh @@ -49,6 +49,7 @@ diffpatterns=" ruby rust tex + default custom1 custom2 custom3 From patchwork Mon Feb 15 00:52:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087531 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8DCF3C433E0 for ; Mon, 15 Feb 2021 00:54:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 595F764DDA for ; Mon, 15 Feb 2021 00:54:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230064AbhBOAyY (ORCPT ); Sun, 14 Feb 2021 19:54:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49262 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229994AbhBOAyX (ORCPT ); Sun, 14 Feb 2021 19:54:23 -0500 Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com [IPv6:2a00:1450:4864:20::435]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC423C06178A for ; Sun, 14 Feb 2021 16:53:04 -0800 (PST) Received: by mail-wr1-x435.google.com with SMTP id n4so4180468wrx.1 for ; Sun, 14 Feb 2021 16:53:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=RktGh6O14WVHOsBLAiLaHGbHF4JZjmy3JWuFrO7AtmI=; b=sB4IccALMUSpQ068/Mk1BTT9A8zjkYaBSHVlOwZ1ZhPb+ikStTrxd1/8fxNixOEWwn D03DAywFiZnU37p2oS+U2GUEVfXZYakdiACMcMtkTjiWk1swe9T0PQj8qDlRXgu9Rq6k KG+j5q2WnsnLzhAVM7swxTuDNrQRSeBFX25KB5d8v6j1n/Pw2rq2bPZ43sj9sx2u50Nl pkfZBiu9yiGQr+yBC4bShKuY72nQkynDY9css4HUFwTXDZGWoWuxDNmj+dgQHUGi+Hwh ftD+wWisjaErZMH054UUziNJQnMunGrLvNhhXNpzCyS4rQXkSUMgPY3h314XsrMBRlpo 5iAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=RktGh6O14WVHOsBLAiLaHGbHF4JZjmy3JWuFrO7AtmI=; b=mYeGdp0y5EZmjUT5JkuiiuWg2rycxhIy0TNi4Gs+OHyVISXDv+Tf3EBLn9G26+srr+ A+nq+EQBI4K//CrTD25qYCsPP5S8ih8UvlZyRc5vwcULYV+yhLhZvnVjF/0xZbvhyYsS b2JtCKLVklUNgTTVOxNS5Dk78JE9ZPEDwqvVv2j9UP9y6pECVRYFy3TIOv+Mtaxu34Ly 3nnMgurEW/BrjQet4gh3yOLfdPXsSZH5r/Df6DAF/JIGnMboKPX6YykZ7mVWmevqC4K2 mS4ergpCX2pydH0wtCOJ24FaP/ie4cvViVcOEvDiu5YhFDGUKWov7hHHpdOi77JA8F40 RbeA== X-Gm-Message-State: AOAM530+HSjz8kvZm0ohYkxNVMYRQTdWfEHyZOPxMWHG9r3Z3gC1epK2 HpYAUGzW6rNV/q6kMEzP4Ash3lMjYmQwzQ== X-Google-Smtp-Source: ABdhPJzisdXvR6Y1qos0Q/56nBUjx4aVVaLj9VOnnFYmlGcXYe9IeX7/7hguk+aBr9/01qGY6xVW7w== X-Received: by 2002:adf:f285:: with SMTP id k5mr16254813wro.285.1613350383381; Sun, 14 Feb 2021 16:53:03 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:03 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 05/20] userdiff tests: list builtin drivers via test-tool Date: Mon, 15 Feb 2021 01:52:21 +0100 Message-Id: <20210215005236.11313-6-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Change the userdiff test to list the builtin drivers via the test-tool, using the new for_each_userdiff_driver() API function. This gets rid of the need to modify this part of the test every time a new pattern is added, see 2ff6c34612 (userdiff: support Bash, 2020-10-22) and 09dad9256a (userdiff: support Markdown, 2020-05-02) for two recent examples. I only need the "list-builtin-drivers "argument here, but let's add "list-custom-drivers" and "list-drivers" too, just because it's easy. Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 1 + t/helper/test-tool.c | 1 + t/helper/test-tool.h | 1 + t/helper/test-userdiff.c | 32 ++++++++++++++++++++++++++++++++ t/t4018-diff-funcname.sh | 29 +++++------------------------ 5 files changed, 40 insertions(+), 24 deletions(-) create mode 100644 t/helper/test-userdiff.c diff --git a/Makefile b/Makefile index 5a239cac20..710a0deaed 100644 --- a/Makefile +++ b/Makefile @@ -741,6 +741,7 @@ TEST_BUILTINS_OBJS += test-submodule-nested-repo-config.o TEST_BUILTINS_OBJS += test-subprocess.o TEST_BUILTINS_OBJS += test-trace2.o TEST_BUILTINS_OBJS += test-urlmatch-normalization.o +TEST_BUILTINS_OBJS += test-userdiff.o TEST_BUILTINS_OBJS += test-wildmatch.o TEST_BUILTINS_OBJS += test-windows-named-pipe.o TEST_BUILTINS_OBJS += test-write-cache.o diff --git a/t/helper/test-tool.c b/t/helper/test-tool.c index f97cd9f48a..dcb05ca6e5 100644 --- a/t/helper/test-tool.c +++ b/t/helper/test-tool.c @@ -71,6 +71,7 @@ static struct test_cmd cmds[] = { { "submodule-nested-repo-config", cmd__submodule_nested_repo_config }, { "subprocess", cmd__subprocess }, { "trace2", cmd__trace2 }, + { "userdiff", cmd__userdiff }, { "urlmatch-normalization", cmd__urlmatch_normalization }, { "xml-encode", cmd__xml_encode }, { "wildmatch", cmd__wildmatch }, diff --git a/t/helper/test-tool.h b/t/helper/test-tool.h index 28072c0ad5..589f2e8ac6 100644 --- a/t/helper/test-tool.h +++ b/t/helper/test-tool.h @@ -61,6 +61,7 @@ int cmd__submodule_config(int argc, const char **argv); int cmd__submodule_nested_repo_config(int argc, const char **argv); int cmd__subprocess(int argc, const char **argv); int cmd__trace2(int argc, const char **argv); +int cmd__userdiff(int argc, const char **argv); int cmd__urlmatch_normalization(int argc, const char **argv); int cmd__xml_encode(int argc, const char **argv); int cmd__wildmatch(int argc, const char **argv); diff --git a/t/helper/test-userdiff.c b/t/helper/test-userdiff.c new file mode 100644 index 0000000000..80de456287 --- /dev/null +++ b/t/helper/test-userdiff.c @@ -0,0 +1,32 @@ +#include "test-tool.h" +#include "cache.h" +#include "userdiff.h" + +static int userdiff_list_builtin_drivers_cb(struct userdiff_driver *driver, + enum userdiff_driver_type type, + void *priv) +{ + puts(driver->name); + return 0; +} + +static int list_what(enum userdiff_driver_type type) +{ + return for_each_userdiff_driver(userdiff_list_builtin_drivers_cb, type, + NULL); +} + +int cmd__userdiff(int argc, const char **argv) +{ + if (argc != 2) + return 1; + + if (!strcmp(argv[1], "list-drivers")) + return list_what(USERDIFF_DRIVER_TYPE_UNSPECIFIED); + else if (!strcmp(argv[1], "list-builtin-drivers")) + return list_what(USERDIFF_DRIVER_TYPE_BUILTIN); + else if (!strcmp(argv[1], "list-custom-drivers")) + return list_what(USERDIFF_DRIVER_TYPE_CUSTOM); + else + return error("unknown argument %s", argv[1]); +} diff --git a/t/t4018-diff-funcname.sh b/t/t4018-diff-funcname.sh index cefe329aea..11ac648451 100755 --- a/t/t4018-diff-funcname.sh +++ b/t/t4018-diff-funcname.sh @@ -8,6 +8,10 @@ test_description='Test custom diff function name patterns' . ./test-lib.sh test_expect_success 'setup' ' + test-tool userdiff list-builtin-drivers >builtin-drivers && + test_file_not_empty builtin-drivers && + builtin_drivers=$(cat builtin-drivers) && + # a non-trivial custom pattern git config diff.custom1.funcname "!static !String @@ -26,30 +30,7 @@ test_expect_success 'setup' ' ' diffpatterns=" - ada - bash - bibtex - cpp - csharp - css - dts - elixir - fortran - fountain - golang - html - java - markdown - matlab - objc - pascal - perl - php - python - ruby - rust - tex - default + $builtin_drivers custom1 custom2 custom3 From patchwork Mon Feb 15 00:52:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087533 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9FC19C433E6 for ; Mon, 15 Feb 2021 00:54:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 71E5464E27 for ; Mon, 15 Feb 2021 00:54:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230111AbhBOAyZ (ORCPT ); Sun, 14 Feb 2021 19:54:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49264 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230030AbhBOAyX (ORCPT ); Sun, 14 Feb 2021 19:54:23 -0500 Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 89AC4C06178B for ; Sun, 14 Feb 2021 16:53:05 -0800 (PST) Received: by mail-wr1-x429.google.com with SMTP id u14so7183558wri.3 for ; Sun, 14 Feb 2021 16:53:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DJQupuIzp7Dz/FBzKFgu59W2T/cdM57ymWlMr3XvSBE=; b=Cjmxe+QYYrEGh7feupfWUvkkrAbLy0Fqx83WCGtJUlzm6w10G2iwXR3VQ9xDEL85IO H6jheDQ+JjSkkZysS7aEz8jjXcC+LDodyK893R7j1M9l/q+Dgm5HMpFm1NUezfjIUecH AzTLUPTvSbvQTSVDQgjW0lqZSHucScURcgaoln8x+XPxMZEIQ6ADh3VWmER7MEvfGMq+ 8jzBfEjGaTUA9c8n4Xei33IphgZaxgDW8LKDcjQNcvtl/4+yodWdSiIuvwr4mq3W9DiX mnxfxw331/BfYDpfwGysFRnJ3BP/R20E0B5m9pPhjAHAjqZkBTIJ+6Kp0voJ4J63e/iS dPnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DJQupuIzp7Dz/FBzKFgu59W2T/cdM57ymWlMr3XvSBE=; b=C+12xazFcEvLE68xxh7HL9KzYEVrGDUAjlw1WKuJRbOjuaA/RDGgtjx0TUdyWQgYQl K3hiEU09tw24bz57kJdgj2STU8d740+kwpOq0gYOuJmOrs05IlDUcpYGEqL5n7mP2CrL 6QwLy9kzpjR3T/bpJsbMTc+Nq6tL8Nlw0X9GuV5ezGnG+I+LB+ZZrU4ngpWpsel8FN/9 youM5mWIrICd76t3ZSTvpoi0bbuTEBOnCpYpJ3RLyh8gO04adOOakHNJyi7s/g/YiZe2 8rx+y7myRExG0uJLsc0HukpO0sNJ5RI5GLOcY9c3WSLs70BqzLuOaP7Op18VFqZCQUnE ACRw== X-Gm-Message-State: AOAM533uJcXlRIlzDVaeZGpb06+uqtovKAUdEHEqRt2Oxhb4SdkV/68k Iljxlu/uLYcThnOzrkO1u6UY1twXsPCNCg== X-Google-Smtp-Source: ABdhPJxRNU2patrzoSMrwJWuYORKi8e1h+UIb3knctSjn1G3RKGsKDmvBvjKtTtiFrP0ZB3Z3TT4Fg== X-Received: by 2002:a5d:4e41:: with SMTP id r1mr11676141wrt.6.1613350384091; Sun, 14 Feb 2021 16:53:04 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:03 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 06/20] userdiff: remove support for "broken" tests Date: Mon, 15 Feb 2021 01:52:22 +0100 Message-Id: <20210215005236.11313-7-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org There have been no "broken" tests since 75c3b6b2e8 (userdiff: improve Fortran xfuncname regex, 2020-08-12). Let's remove the test support for them, this is in preparation for a more general refactoring of the tests. Signed-off-by: Ævar Arnfjörð Bjarmason --- t/t4018-diff-funcname.sh | 8 +------- t/t4018/README | 3 --- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/t/t4018-diff-funcname.sh b/t/t4018-diff-funcname.sh index 11ac648451..5fb5b0a651 100755 --- a/t/t4018-diff-funcname.sh +++ b/t/t4018-diff-funcname.sh @@ -83,13 +83,7 @@ test_expect_success 'setup hunk header tests' ' # check each individual file for i in $(git ls-files) do - if grep broken "$i" >/dev/null 2>&1 - then - result=failure - else - result=success - fi - test_expect_$result "hunk header: $i" " + test_expect_success "hunk header: $i" " git diff -U1 $i >actual && grep '@@ .* @@.*RIGHT' actual " diff --git a/t/t4018/README b/t/t4018/README index 283e01cca1..2d25b2b4fc 100644 --- a/t/t4018/README +++ b/t/t4018/README @@ -7,9 +7,6 @@ at least two lines from the line that must appear in the hunk header. The text that must appear in the hunk header must contain the word "right", but in all upper-case, like in the title above. -To mark a test case that highlights a malfunction, insert the word -BROKEN in all lower-case somewhere in the file. - This text is a bit twisted and out of order, but it is itself a test case for the default hunk header pattern. Know what you are doing if you change it. From patchwork Mon Feb 15 00:52:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087541 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C8B19C433DB for ; Mon, 15 Feb 2021 00:54:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8B7F564DBA for ; Mon, 15 Feb 2021 00:54:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230132AbhBOAy1 (ORCPT ); Sun, 14 Feb 2021 19:54:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49272 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230055AbhBOAyY (ORCPT ); Sun, 14 Feb 2021 19:54:24 -0500 Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com [IPv6:2a00:1450:4864:20::435]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3CBE7C06178C for ; Sun, 14 Feb 2021 16:53:07 -0800 (PST) Received: by mail-wr1-x435.google.com with SMTP id v14so7147792wro.7 for ; Sun, 14 Feb 2021 16:53:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TuY9Bm806qnPHztDetPrG5cyVmwvwW01t6LP8F/X2FU=; b=rvCkM5B8VRDDzCb8pHT7EnVcJJySXfw9dM50BlMLQeFfLFkN9LrF/WJhPlvD3iIxWf 6qPRACslb3Gw+lFMlRbBLK3zdWHWD9qFSQ1lp9H05PrUPv50ihYQv+H1KbSikWK6Q/rC xTvY3VM0HrITDKI0h05f9Roz+i6nr/7PhQ7FkVGzHaMvORWWTdtV+QNb1g6C9EpghPg0 ROuhvAiG0cMN3PcrfPgoNliXCe9CgkGcOGzG244TGi9uuUbpXGb37KUDbmpLleNeOS42 P36t1TDhNKVVpfHbyKGkJY4PiFfG2qRWuKKOtiYjAff5xM9sWpjdwP7Bu0/bpLLS01Gb 1VAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TuY9Bm806qnPHztDetPrG5cyVmwvwW01t6LP8F/X2FU=; b=SR6xImLmBpGjHQHdH4DJt7BmnMRJaDZr04TzsDdErci3ZNV+i7YcXezg3iB7zt9OjB YPjEfD7sgMSJ6p9fKZPXHQVTtVWey+GCLOZ5PkwV5W0RoC/I1KWlhv3rXPUrRJbFDgWm PbAaD76q7Ow5BIYqBlllMBJguMRyBLDk4jQhYLgwL8YUuzVXHvIqkd5Oge8i4tHwTKHS QtjLnoHi0ooipij3maVlMbB8VCHpBkxabkVjGddg+CIuA+XeoX0Zim8BJ0X/sE4NvZAB STj6ftPSgHE+3kYNFukPAJoeL7rXMC2cYHFfB+5NTE4EAKFUceXpVggoW9LT/iPEFw/W GjwA== X-Gm-Message-State: AOAM530ygWuWp2iTpjvrv3bqyJqEWLyeyKy0XmreLy3Rm1sJneyyKEgV jfN04ZQfPI49C+jRxsDssoO8Ft0+Ng5Z9Q== X-Google-Smtp-Source: ABdhPJzm2B7NE7FO3csY4AV0XtOq0x9gWtnEdkpZqwpyDvyZIQGZr3oJjpNFf9Dg2iTzdDLrnmYqLw== X-Received: by 2002:adf:efc9:: with SMTP id i9mr15597015wrp.177.1613350384811; Sun, 14 Feb 2021 16:53:04 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:04 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 07/20] userdiff tests: match full hunk headers Date: Mon, 15 Feb 2021 01:52:23 +0100 Message-Id: <20210215005236.11313-8-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Fix a regression in the test framework for userdiff added in bfa7d01413 (t4018: an infrastructure to test hunk headers, 2014-03-21). The testing infrastructure added in that change went overboard with simplifying the tests, to the point where we lost test coverage. Before that we'd been able to test the full context line, or ever since the feature was originally added in f258475a6e (Per-path attribute based hunk header selection., 2007-07-06). After bfa7d01413 all we cared about was whether "RIGHT" appeared on the line. We thus lost the information about whether or not "RIGHT" was extracted from the line for the hunk header, or the line appeared in full (or other subset of the line). Let's bring back coverage for that by adding corresponding *.ctx files, this has the added advantage that we're doing a "test_cmp", so when we have failures it's just a non-zero exit code from "grep", we'll actually have something meaningful in the "-v" output. As we'll see in a follow-up commit this is an intermediate step towards even better test coverage. I'm structuring these tests in such a way as to benefit from the diff.colorMove detection. Signed-off-by: Ævar Arnfjörð Bjarmason --- t/t4018-diff-funcname.sh | 7 +++--- t/t4018/README | 22 +++++++++---------- t/t4018/README.ctx | 1 + t/t4018/bash-arithmetic-function.ctx | 1 + t/t4018/bash-bashism-style-compact.ctx | 1 + t/t4018/bash-bashism-style-function.ctx | 1 + t/t4018/bash-bashism-style-whitespace.ctx | 1 + t/t4018/bash-conditional-function.ctx | 1 + t/t4018/bash-missing-parentheses.ctx | 1 + t/t4018/bash-mixed-style-compact.ctx | 1 + t/t4018/bash-mixed-style-function.ctx | 1 + t/t4018/bash-nested-functions.ctx | 1 + t/t4018/bash-other-characters.ctx | 1 + t/t4018/bash-posix-style-compact.ctx | 1 + t/t4018/bash-posix-style-function.ctx | 1 + t/t4018/bash-posix-style-whitespace.ctx | 1 + t/t4018/bash-subshell-function.ctx | 1 + t/t4018/bash-trailing-comment.ctx | 1 + t/t4018/cpp-c++-function.ctx | 1 + t/t4018/cpp-class-constructor-mem-init.ctx | 1 + t/t4018/cpp-class-constructor.ctx | 1 + t/t4018/cpp-class-definition-derived.ctx | 1 + t/t4018/cpp-class-definition.ctx | 1 + t/t4018/cpp-class-destructor.ctx | 1 + .../cpp-function-returning-global-type.ctx | 1 + t/t4018/cpp-function-returning-nested.ctx | 1 + t/t4018/cpp-function-returning-pointer.ctx | 1 + t/t4018/cpp-function-returning-reference.ctx | 1 + t/t4018/cpp-gnu-style-function.ctx | 1 + t/t4018/cpp-namespace-definition.ctx | 1 + t/t4018/cpp-operator-definition.ctx | 1 + t/t4018/cpp-skip-access-specifiers.ctx | 1 + t/t4018/cpp-skip-comment-block.ctx | 1 + t/t4018/cpp-skip-labels.ctx | 1 + t/t4018/cpp-struct-definition.ctx | 1 + t/t4018/cpp-struct-single-line.ctx | 1 + t/t4018/cpp-template-function-definition.ctx | 1 + t/t4018/cpp-union-definition.ctx | 1 + t/t4018/cpp-void-c-function.ctx | 1 + t/t4018/css-attribute-value-selector.ctx | 1 + t/t4018/css-block-level-@-statements.ctx | 1 + t/t4018/css-brace-in-col-1.ctx | 1 + t/t4018/css-class-selector.ctx | 1 + t/t4018/css-colon-eol.ctx | 1 + t/t4018/css-colon-selector.ctx | 1 + t/t4018/css-common.ctx | 1 + t/t4018/css-id-selector.ctx | 1 + t/t4018/css-long-selector-list.ctx | 1 + t/t4018/css-prop-sans-indent.ctx | 1 + t/t4018/css-root-selector.ctx | 1 + t/t4018/css-short-selector-list.ctx | 1 + t/t4018/css-trailing-space.ctx | 1 + t/t4018/custom1-pattern.ctx | 1 + t/t4018/custom2-match-to-end-of-line.ctx | 1 + t/t4018/custom3-alternation-in-pattern.ctx | 1 + t/t4018/dts-labels.ctx | 1 + t/t4018/dts-node-unitless.ctx | 1 + t/t4018/dts-nodes-boolean-prop.ctx | 1 + t/t4018/dts-nodes-comment1.ctx | 1 + t/t4018/dts-nodes-comment2.ctx | 1 + t/t4018/dts-nodes-multiline-prop.ctx | 1 + t/t4018/dts-nodes.ctx | 1 + t/t4018/dts-reference.ctx | 1 + t/t4018/dts-root-comment.ctx | 1 + t/t4018/dts-root.ctx | 1 + t/t4018/elixir-do-not-pick-end.ctx | 1 + t/t4018/elixir-ex-unit-test.ctx | 1 + t/t4018/elixir-function.ctx | 1 + t/t4018/elixir-macro.ctx | 1 + t/t4018/elixir-module-func.ctx | 1 + t/t4018/elixir-module.ctx | 1 + t/t4018/elixir-nested-module.ctx | 1 + t/t4018/elixir-private-function.ctx | 1 + t/t4018/elixir-protocol-implementation.ctx | 1 + t/t4018/elixir-protocol.ctx | 1 + t/t4018/fortran-block-data.ctx | 1 + t/t4018/fortran-comment-keyword.ctx | 1 + t/t4018/fortran-comment-legacy-star.ctx | 1 + t/t4018/fortran-comment-legacy.ctx | 1 + t/t4018/fortran-comment.ctx | 1 + t/t4018/fortran-external-function.ctx | 1 + t/t4018/fortran-external-subroutine.ctx | 1 + t/t4018/fortran-module-procedure.ctx | 1 + t/t4018/fortran-module.ctx | 1 + t/t4018/fortran-program.ctx | 1 + t/t4018/fountain-scene.ctx | 1 + t/t4018/golang-complex-function.ctx | 1 + t/t4018/golang-func.ctx | 1 + t/t4018/golang-interface.ctx | 1 + t/t4018/golang-long-func.ctx | 1 + t/t4018/golang-struct.ctx | 1 + t/t4018/java-class-member-function.ctx | 1 + t/t4018/markdown-heading-indented.ctx | 1 + t/t4018/markdown-heading-non-headings.ctx | 1 + t/t4018/matlab-class-definition.ctx | 1 + t/t4018/matlab-function.ctx | 1 + t/t4018/matlab-octave-section-1.ctx | 1 + t/t4018/matlab-octave-section-2.ctx | 1 + t/t4018/matlab-section.ctx | 1 + t/t4018/perl-skip-end-of-heredoc.ctx | 1 + t/t4018/perl-skip-forward-decl.ctx | 1 + t/t4018/perl-skip-sub-in-pod.ctx | 1 + t/t4018/perl-sub-definition-kr-brace.ctx | 1 + t/t4018/perl-sub-definition.ctx | 1 + t/t4018/php-abstract-class.ctx | 1 + t/t4018/php-abstract-method.ctx | 1 + t/t4018/php-class.ctx | 1 + t/t4018/php-final-class.ctx | 1 + t/t4018/php-final-method.ctx | 1 + t/t4018/php-function.ctx | 1 + t/t4018/php-interface.ctx | 1 + t/t4018/php-method.ctx | 1 + t/t4018/php-trait.ctx | 1 + t/t4018/python-async-def.ctx | 1 + t/t4018/python-class.ctx | 1 + t/t4018/python-def.ctx | 1 + t/t4018/python-indented-async-def.ctx | 1 + t/t4018/python-indented-class.ctx | 1 + t/t4018/python-indented-def.ctx | 1 + t/t4018/rust-fn.ctx | 1 + t/t4018/rust-impl.ctx | 1 + t/t4018/rust-macro-rules.ctx | 1 + t/t4018/rust-struct.ctx | 1 + t/t4018/rust-trait.ctx | 1 + 124 files changed, 137 insertions(+), 14 deletions(-) create mode 100644 t/t4018/README.ctx create mode 100644 t/t4018/bash-arithmetic-function.ctx create mode 100644 t/t4018/bash-bashism-style-compact.ctx create mode 100644 t/t4018/bash-bashism-style-function.ctx create mode 100644 t/t4018/bash-bashism-style-whitespace.ctx create mode 100644 t/t4018/bash-conditional-function.ctx create mode 100644 t/t4018/bash-missing-parentheses.ctx create mode 100644 t/t4018/bash-mixed-style-compact.ctx create mode 100644 t/t4018/bash-mixed-style-function.ctx create mode 100644 t/t4018/bash-nested-functions.ctx create mode 100644 t/t4018/bash-other-characters.ctx create mode 100644 t/t4018/bash-posix-style-compact.ctx create mode 100644 t/t4018/bash-posix-style-function.ctx create mode 100644 t/t4018/bash-posix-style-whitespace.ctx create mode 100644 t/t4018/bash-subshell-function.ctx create mode 100644 t/t4018/bash-trailing-comment.ctx create mode 100644 t/t4018/cpp-c++-function.ctx create mode 100644 t/t4018/cpp-class-constructor-mem-init.ctx create mode 100644 t/t4018/cpp-class-constructor.ctx create mode 100644 t/t4018/cpp-class-definition-derived.ctx create mode 100644 t/t4018/cpp-class-definition.ctx create mode 100644 t/t4018/cpp-class-destructor.ctx create mode 100644 t/t4018/cpp-function-returning-global-type.ctx create mode 100644 t/t4018/cpp-function-returning-nested.ctx create mode 100644 t/t4018/cpp-function-returning-pointer.ctx create mode 100644 t/t4018/cpp-function-returning-reference.ctx create mode 100644 t/t4018/cpp-gnu-style-function.ctx create mode 100644 t/t4018/cpp-namespace-definition.ctx create mode 100644 t/t4018/cpp-operator-definition.ctx create mode 100644 t/t4018/cpp-skip-access-specifiers.ctx create mode 100644 t/t4018/cpp-skip-comment-block.ctx create mode 100644 t/t4018/cpp-skip-labels.ctx create mode 100644 t/t4018/cpp-struct-definition.ctx create mode 100644 t/t4018/cpp-struct-single-line.ctx create mode 100644 t/t4018/cpp-template-function-definition.ctx create mode 100644 t/t4018/cpp-union-definition.ctx create mode 100644 t/t4018/cpp-void-c-function.ctx create mode 100644 t/t4018/css-attribute-value-selector.ctx create mode 100644 t/t4018/css-block-level-@-statements.ctx create mode 100644 t/t4018/css-brace-in-col-1.ctx create mode 100644 t/t4018/css-class-selector.ctx create mode 100644 t/t4018/css-colon-eol.ctx create mode 100644 t/t4018/css-colon-selector.ctx create mode 100644 t/t4018/css-common.ctx create mode 100644 t/t4018/css-id-selector.ctx create mode 100644 t/t4018/css-long-selector-list.ctx create mode 100644 t/t4018/css-prop-sans-indent.ctx create mode 100644 t/t4018/css-root-selector.ctx create mode 100644 t/t4018/css-short-selector-list.ctx create mode 100644 t/t4018/css-trailing-space.ctx create mode 100644 t/t4018/custom1-pattern.ctx create mode 100644 t/t4018/custom2-match-to-end-of-line.ctx create mode 100644 t/t4018/custom3-alternation-in-pattern.ctx create mode 100644 t/t4018/dts-labels.ctx create mode 100644 t/t4018/dts-node-unitless.ctx create mode 100644 t/t4018/dts-nodes-boolean-prop.ctx create mode 100644 t/t4018/dts-nodes-comment1.ctx create mode 100644 t/t4018/dts-nodes-comment2.ctx create mode 100644 t/t4018/dts-nodes-multiline-prop.ctx create mode 100644 t/t4018/dts-nodes.ctx create mode 100644 t/t4018/dts-reference.ctx create mode 100644 t/t4018/dts-root-comment.ctx create mode 100644 t/t4018/dts-root.ctx create mode 100644 t/t4018/elixir-do-not-pick-end.ctx create mode 100644 t/t4018/elixir-ex-unit-test.ctx create mode 100644 t/t4018/elixir-function.ctx create mode 100644 t/t4018/elixir-macro.ctx create mode 100644 t/t4018/elixir-module-func.ctx create mode 100644 t/t4018/elixir-module.ctx create mode 100644 t/t4018/elixir-nested-module.ctx create mode 100644 t/t4018/elixir-private-function.ctx create mode 100644 t/t4018/elixir-protocol-implementation.ctx create mode 100644 t/t4018/elixir-protocol.ctx create mode 100644 t/t4018/fortran-block-data.ctx create mode 100644 t/t4018/fortran-comment-keyword.ctx create mode 100644 t/t4018/fortran-comment-legacy-star.ctx create mode 100644 t/t4018/fortran-comment-legacy.ctx create mode 100644 t/t4018/fortran-comment.ctx create mode 100644 t/t4018/fortran-external-function.ctx create mode 100644 t/t4018/fortran-external-subroutine.ctx create mode 100644 t/t4018/fortran-module-procedure.ctx create mode 100644 t/t4018/fortran-module.ctx create mode 100644 t/t4018/fortran-program.ctx create mode 100644 t/t4018/fountain-scene.ctx create mode 100644 t/t4018/golang-complex-function.ctx create mode 100644 t/t4018/golang-func.ctx create mode 100644 t/t4018/golang-interface.ctx create mode 100644 t/t4018/golang-long-func.ctx create mode 100644 t/t4018/golang-struct.ctx create mode 100644 t/t4018/java-class-member-function.ctx create mode 100644 t/t4018/markdown-heading-indented.ctx create mode 100644 t/t4018/markdown-heading-non-headings.ctx create mode 100644 t/t4018/matlab-class-definition.ctx create mode 100644 t/t4018/matlab-function.ctx create mode 100644 t/t4018/matlab-octave-section-1.ctx create mode 100644 t/t4018/matlab-octave-section-2.ctx create mode 100644 t/t4018/matlab-section.ctx create mode 100644 t/t4018/perl-skip-end-of-heredoc.ctx create mode 100644 t/t4018/perl-skip-forward-decl.ctx create mode 100644 t/t4018/perl-skip-sub-in-pod.ctx create mode 100644 t/t4018/perl-sub-definition-kr-brace.ctx create mode 100644 t/t4018/perl-sub-definition.ctx create mode 100644 t/t4018/php-abstract-class.ctx create mode 100644 t/t4018/php-abstract-method.ctx create mode 100644 t/t4018/php-class.ctx create mode 100644 t/t4018/php-final-class.ctx create mode 100644 t/t4018/php-final-method.ctx create mode 100644 t/t4018/php-function.ctx create mode 100644 t/t4018/php-interface.ctx create mode 100644 t/t4018/php-method.ctx create mode 100644 t/t4018/php-trait.ctx create mode 100644 t/t4018/python-async-def.ctx create mode 100644 t/t4018/python-class.ctx create mode 100644 t/t4018/python-def.ctx create mode 100644 t/t4018/python-indented-async-def.ctx create mode 100644 t/t4018/python-indented-class.ctx create mode 100644 t/t4018/python-indented-def.ctx create mode 100644 t/t4018/rust-fn.ctx create mode 100644 t/t4018/rust-impl.ctx create mode 100644 t/t4018/rust-macro-rules.ctx create mode 100644 t/t4018/rust-struct.ctx create mode 100644 t/t4018/rust-trait.ctx diff --git a/t/t4018-diff-funcname.sh b/t/t4018-diff-funcname.sh index 5fb5b0a651..d32c38ad1a 100755 --- a/t/t4018-diff-funcname.sh +++ b/t/t4018-diff-funcname.sh @@ -81,11 +81,12 @@ test_expect_success 'setup hunk header tests' ' ' # check each individual file -for i in $(git ls-files) +for i in $(git ls-files -- ':!*.ctx') do test_expect_success "hunk header: $i" " - git diff -U1 $i >actual && - grep '@@ .* @@.*RIGHT' actual + git diff -U1 $i >diff && + sed -n -e 's/^.*@@\( \|$\)//p' ctx && + test_cmp $i.ctx ctx " done diff --git a/t/t4018/README b/t/t4018/README index 2d25b2b4fc..2cccf8c950 100644 --- a/t/t4018/README +++ b/t/t4018/README @@ -1,15 +1,15 @@ -How to write RIGHT test cases -============================= +How to write test cases +======================= + +Create test cases called "LANG-whatever" in this directory, where +"LANG" is e.g. the userdiff driver name, where "whatever" is a brief +description of the test. Insert the word "ChangeMe" (exactly this form) at a distance of at least two lines from the line that must appear in the hunk header. -The text that must appear in the hunk header must contain the word -"right", but in all upper-case, like in the title above. - -This text is a bit twisted and out of order, but it is itself a -test case for the default hunk header pattern. Know what you are doing -if you change it. - -BTW, this tests that the head line goes to the hunk header, not the line -of equal signs. +The text that must appear in the hunk header must contains the word +"RIGHT" by convention. The "LANG-whatever.ctx" file contains what we +expect to appear in the hunk header. We munged the start of the line +to "@@ [...] @@" for ease of not having to hardcode the line numbers +and offsets. diff --git a/t/t4018/README.ctx b/t/t4018/README.ctx new file mode 100644 index 0000000000..cd79384b04 --- /dev/null +++ b/t/t4018/README.ctx @@ -0,0 +1 @@ +description of the test. diff --git a/t/t4018/bash-arithmetic-function.ctx b/t/t4018/bash-arithmetic-function.ctx new file mode 100644 index 0000000000..811eac7d2f --- /dev/null +++ b/t/t4018/bash-arithmetic-function.ctx @@ -0,0 +1 @@ +RIGHT() diff --git a/t/t4018/bash-bashism-style-compact.ctx b/t/t4018/bash-bashism-style-compact.ctx new file mode 100644 index 0000000000..4f8eac48c6 --- /dev/null +++ b/t/t4018/bash-bashism-style-compact.ctx @@ -0,0 +1 @@ +function RIGHT { diff --git a/t/t4018/bash-bashism-style-function.ctx b/t/t4018/bash-bashism-style-function.ctx new file mode 100644 index 0000000000..4f8eac48c6 --- /dev/null +++ b/t/t4018/bash-bashism-style-function.ctx @@ -0,0 +1 @@ +function RIGHT { diff --git a/t/t4018/bash-bashism-style-whitespace.ctx b/t/t4018/bash-bashism-style-whitespace.ctx new file mode 100644 index 0000000000..35dbd0220e --- /dev/null +++ b/t/t4018/bash-bashism-style-whitespace.ctx @@ -0,0 +1 @@ +function RIGHT ( ) { diff --git a/t/t4018/bash-conditional-function.ctx b/t/t4018/bash-conditional-function.ctx new file mode 100644 index 0000000000..811eac7d2f --- /dev/null +++ b/t/t4018/bash-conditional-function.ctx @@ -0,0 +1 @@ +RIGHT() diff --git a/t/t4018/bash-missing-parentheses.ctx b/t/t4018/bash-missing-parentheses.ctx new file mode 100644 index 0000000000..4f8eac48c6 --- /dev/null +++ b/t/t4018/bash-missing-parentheses.ctx @@ -0,0 +1 @@ +function RIGHT { diff --git a/t/t4018/bash-mixed-style-compact.ctx b/t/t4018/bash-mixed-style-compact.ctx new file mode 100644 index 0000000000..bba11074eb --- /dev/null +++ b/t/t4018/bash-mixed-style-compact.ctx @@ -0,0 +1 @@ +function RIGHT(){ diff --git a/t/t4018/bash-mixed-style-function.ctx b/t/t4018/bash-mixed-style-function.ctx new file mode 100644 index 0000000000..922b87a4aa --- /dev/null +++ b/t/t4018/bash-mixed-style-function.ctx @@ -0,0 +1 @@ +function RIGHT() { diff --git a/t/t4018/bash-nested-functions.ctx b/t/t4018/bash-nested-functions.ctx new file mode 100644 index 0000000000..811eac7d2f --- /dev/null +++ b/t/t4018/bash-nested-functions.ctx @@ -0,0 +1 @@ +RIGHT() diff --git a/t/t4018/bash-other-characters.ctx b/t/t4018/bash-other-characters.ctx new file mode 100644 index 0000000000..6a55317fdf --- /dev/null +++ b/t/t4018/bash-other-characters.ctx @@ -0,0 +1 @@ +_RIGHT_0n() diff --git a/t/t4018/bash-posix-style-compact.ctx b/t/t4018/bash-posix-style-compact.ctx new file mode 100644 index 0000000000..811eac7d2f --- /dev/null +++ b/t/t4018/bash-posix-style-compact.ctx @@ -0,0 +1 @@ +RIGHT() diff --git a/t/t4018/bash-posix-style-function.ctx b/t/t4018/bash-posix-style-function.ctx new file mode 100644 index 0000000000..811eac7d2f --- /dev/null +++ b/t/t4018/bash-posix-style-function.ctx @@ -0,0 +1 @@ +RIGHT() diff --git a/t/t4018/bash-posix-style-whitespace.ctx b/t/t4018/bash-posix-style-whitespace.ctx new file mode 100644 index 0000000000..28f8698e14 --- /dev/null +++ b/t/t4018/bash-posix-style-whitespace.ctx @@ -0,0 +1 @@ +RIGHT ( ) diff --git a/t/t4018/bash-subshell-function.ctx b/t/t4018/bash-subshell-function.ctx new file mode 100644 index 0000000000..811eac7d2f --- /dev/null +++ b/t/t4018/bash-subshell-function.ctx @@ -0,0 +1 @@ +RIGHT() diff --git a/t/t4018/bash-trailing-comment.ctx b/t/t4018/bash-trailing-comment.ctx new file mode 100644 index 0000000000..811eac7d2f --- /dev/null +++ b/t/t4018/bash-trailing-comment.ctx @@ -0,0 +1 @@ +RIGHT() diff --git a/t/t4018/cpp-c++-function.ctx b/t/t4018/cpp-c++-function.ctx new file mode 100644 index 0000000000..337b49dbb3 --- /dev/null +++ b/t/t4018/cpp-c++-function.ctx @@ -0,0 +1 @@ +Item RIGHT::DoSomething( Args with_spaces ) diff --git a/t/t4018/cpp-class-constructor-mem-init.ctx b/t/t4018/cpp-class-constructor-mem-init.ctx new file mode 100644 index 0000000000..6664b8b3d8 --- /dev/null +++ b/t/t4018/cpp-class-constructor-mem-init.ctx @@ -0,0 +1 @@ +Item::Item(int RIGHT) : diff --git a/t/t4018/cpp-class-constructor.ctx b/t/t4018/cpp-class-constructor.ctx new file mode 100644 index 0000000000..2dcadfc0ba --- /dev/null +++ b/t/t4018/cpp-class-constructor.ctx @@ -0,0 +1 @@ +Item::Item(int RIGHT) diff --git a/t/t4018/cpp-class-definition-derived.ctx b/t/t4018/cpp-class-definition-derived.ctx new file mode 100644 index 0000000000..146f0a7b7c --- /dev/null +++ b/t/t4018/cpp-class-definition-derived.ctx @@ -0,0 +1 @@ +class RIGHT : diff --git a/t/t4018/cpp-class-definition.ctx b/t/t4018/cpp-class-definition.ctx new file mode 100644 index 0000000000..54bff816d6 --- /dev/null +++ b/t/t4018/cpp-class-definition.ctx @@ -0,0 +1 @@ +class RIGHT diff --git a/t/t4018/cpp-class-destructor.ctx b/t/t4018/cpp-class-destructor.ctx new file mode 100644 index 0000000000..5390c17cf6 --- /dev/null +++ b/t/t4018/cpp-class-destructor.ctx @@ -0,0 +1 @@ +RIGHT::~RIGHT() diff --git a/t/t4018/cpp-function-returning-global-type.ctx b/t/t4018/cpp-function-returning-global-type.ctx new file mode 100644 index 0000000000..4dcdde25f4 --- /dev/null +++ b/t/t4018/cpp-function-returning-global-type.ctx @@ -0,0 +1 @@ +::Item get::it::RIGHT() diff --git a/t/t4018/cpp-function-returning-nested.ctx b/t/t4018/cpp-function-returning-nested.ctx new file mode 100644 index 0000000000..6ef73c8368 --- /dev/null +++ b/t/t4018/cpp-function-returning-nested.ctx @@ -0,0 +1 @@ +get::Item get::it::RIGHT() diff --git a/t/t4018/cpp-function-returning-pointer.ctx b/t/t4018/cpp-function-returning-pointer.ctx new file mode 100644 index 0000000000..bb0acce5c7 --- /dev/null +++ b/t/t4018/cpp-function-returning-pointer.ctx @@ -0,0 +1 @@ +const char *get_it_RIGHT(char *ptr) diff --git a/t/t4018/cpp-function-returning-reference.ctx b/t/t4018/cpp-function-returning-reference.ctx new file mode 100644 index 0000000000..76afe381fd --- /dev/null +++ b/t/t4018/cpp-function-returning-reference.ctx @@ -0,0 +1 @@ +string& get::it::RIGHT(char *ptr) diff --git a/t/t4018/cpp-gnu-style-function.ctx b/t/t4018/cpp-gnu-style-function.ctx new file mode 100644 index 0000000000..1858287812 --- /dev/null +++ b/t/t4018/cpp-gnu-style-function.ctx @@ -0,0 +1 @@ +RIGHT(int arg) diff --git a/t/t4018/cpp-namespace-definition.ctx b/t/t4018/cpp-namespace-definition.ctx new file mode 100644 index 0000000000..14c29c4638 --- /dev/null +++ b/t/t4018/cpp-namespace-definition.ctx @@ -0,0 +1 @@ +namespace RIGHT diff --git a/t/t4018/cpp-operator-definition.ctx b/t/t4018/cpp-operator-definition.ctx new file mode 100644 index 0000000000..5b56778961 --- /dev/null +++ b/t/t4018/cpp-operator-definition.ctx @@ -0,0 +1 @@ +Value operator+(Value LEFT, Value RIGHT) diff --git a/t/t4018/cpp-skip-access-specifiers.ctx b/t/t4018/cpp-skip-access-specifiers.ctx new file mode 100644 index 0000000000..075bcd883b --- /dev/null +++ b/t/t4018/cpp-skip-access-specifiers.ctx @@ -0,0 +1 @@ +class RIGHT : public Baseclass diff --git a/t/t4018/cpp-skip-comment-block.ctx b/t/t4018/cpp-skip-comment-block.ctx new file mode 100644 index 0000000000..656c59893d --- /dev/null +++ b/t/t4018/cpp-skip-comment-block.ctx @@ -0,0 +1 @@ +struct item RIGHT(int i) diff --git a/t/t4018/cpp-skip-labels.ctx b/t/t4018/cpp-skip-labels.ctx new file mode 100644 index 0000000000..6b0635f7f7 --- /dev/null +++ b/t/t4018/cpp-skip-labels.ctx @@ -0,0 +1 @@ +void RIGHT (void) diff --git a/t/t4018/cpp-struct-definition.ctx b/t/t4018/cpp-struct-definition.ctx new file mode 100644 index 0000000000..48ed893279 --- /dev/null +++ b/t/t4018/cpp-struct-definition.ctx @@ -0,0 +1 @@ +struct RIGHT { diff --git a/t/t4018/cpp-struct-single-line.ctx b/t/t4018/cpp-struct-single-line.ctx new file mode 100644 index 0000000000..e3bc9d5017 --- /dev/null +++ b/t/t4018/cpp-struct-single-line.ctx @@ -0,0 +1 @@ +struct RIGHT_iterator_tag {}; diff --git a/t/t4018/cpp-template-function-definition.ctx b/t/t4018/cpp-template-function-definition.ctx new file mode 100644 index 0000000000..c9da39cf65 --- /dev/null +++ b/t/t4018/cpp-template-function-definition.ctx @@ -0,0 +1 @@ +template int RIGHT(T arg) diff --git a/t/t4018/cpp-union-definition.ctx b/t/t4018/cpp-union-definition.ctx new file mode 100644 index 0000000000..2fc7b54fb8 --- /dev/null +++ b/t/t4018/cpp-union-definition.ctx @@ -0,0 +1 @@ +union RIGHT { diff --git a/t/t4018/cpp-void-c-function.ctx b/t/t4018/cpp-void-c-function.ctx new file mode 100644 index 0000000000..6b0635f7f7 --- /dev/null +++ b/t/t4018/cpp-void-c-function.ctx @@ -0,0 +1 @@ +void RIGHT (void) diff --git a/t/t4018/css-attribute-value-selector.ctx b/t/t4018/css-attribute-value-selector.ctx new file mode 100644 index 0000000000..7f8956251c --- /dev/null +++ b/t/t4018/css-attribute-value-selector.ctx @@ -0,0 +1 @@ +[class*="RIGHT"] { diff --git a/t/t4018/css-block-level-@-statements.ctx b/t/t4018/css-block-level-@-statements.ctx new file mode 100644 index 0000000000..7f5e90468c --- /dev/null +++ b/t/t4018/css-block-level-@-statements.ctx @@ -0,0 +1 @@ +@keyframes RIGHT { diff --git a/t/t4018/css-brace-in-col-1.ctx b/t/t4018/css-brace-in-col-1.ctx new file mode 100644 index 0000000000..91a9105c6a --- /dev/null +++ b/t/t4018/css-brace-in-col-1.ctx @@ -0,0 +1 @@ +RIGHT label.control-label diff --git a/t/t4018/css-class-selector.ctx b/t/t4018/css-class-selector.ctx new file mode 100644 index 0000000000..ac7367d7f4 --- /dev/null +++ b/t/t4018/css-class-selector.ctx @@ -0,0 +1 @@ +.RIGHT { diff --git a/t/t4018/css-colon-eol.ctx b/t/t4018/css-colon-eol.ctx new file mode 100644 index 0000000000..b68493b9b0 --- /dev/null +++ b/t/t4018/css-colon-eol.ctx @@ -0,0 +1 @@ +RIGHT h1 { diff --git a/t/t4018/css-colon-selector.ctx b/t/t4018/css-colon-selector.ctx new file mode 100644 index 0000000000..00b1a5aefe --- /dev/null +++ b/t/t4018/css-colon-selector.ctx @@ -0,0 +1 @@ +RIGHT a:hover { diff --git a/t/t4018/css-common.ctx b/t/t4018/css-common.ctx new file mode 100644 index 0000000000..43686b4081 --- /dev/null +++ b/t/t4018/css-common.ctx @@ -0,0 +1 @@ +RIGHT label.control-label { diff --git a/t/t4018/css-id-selector.ctx b/t/t4018/css-id-selector.ctx new file mode 100644 index 0000000000..ce19f6d8dc --- /dev/null +++ b/t/t4018/css-id-selector.ctx @@ -0,0 +1 @@ +#RIGHT { diff --git a/t/t4018/css-long-selector-list.ctx b/t/t4018/css-long-selector-list.ctx new file mode 100644 index 0000000000..bc8d0fb62c --- /dev/null +++ b/t/t4018/css-long-selector-list.ctx @@ -0,0 +1 @@ +div ul#RIGHT { diff --git a/t/t4018/css-prop-sans-indent.ctx b/t/t4018/css-prop-sans-indent.ctx new file mode 100644 index 0000000000..cc880b2f44 --- /dev/null +++ b/t/t4018/css-prop-sans-indent.ctx @@ -0,0 +1 @@ +RIGHT, label.control-label { diff --git a/t/t4018/css-root-selector.ctx b/t/t4018/css-root-selector.ctx new file mode 100644 index 0000000000..3010cded2a --- /dev/null +++ b/t/t4018/css-root-selector.ctx @@ -0,0 +1 @@ +:RIGHT { diff --git a/t/t4018/css-short-selector-list.ctx b/t/t4018/css-short-selector-list.ctx new file mode 100644 index 0000000000..9e5d87d126 --- /dev/null +++ b/t/t4018/css-short-selector-list.ctx @@ -0,0 +1 @@ +label.control, div ul#RIGHT { diff --git a/t/t4018/css-trailing-space.ctx b/t/t4018/css-trailing-space.ctx new file mode 100644 index 0000000000..43686b4081 --- /dev/null +++ b/t/t4018/css-trailing-space.ctx @@ -0,0 +1 @@ +RIGHT label.control-label { diff --git a/t/t4018/custom1-pattern.ctx b/t/t4018/custom1-pattern.ctx new file mode 100644 index 0000000000..d1609cc9a6 --- /dev/null +++ b/t/t4018/custom1-pattern.ctx @@ -0,0 +1 @@ +int special, RIGHT; diff --git a/t/t4018/custom2-match-to-end-of-line.ctx b/t/t4018/custom2-match-to-end-of-line.ctx new file mode 100644 index 0000000000..8294c6e49b --- /dev/null +++ b/t/t4018/custom2-match-to-end-of-line.ctx @@ -0,0 +1 @@ +RIGHT_Beer diff --git a/t/t4018/custom3-alternation-in-pattern.ctx b/t/t4018/custom3-alternation-in-pattern.ctx new file mode 100644 index 0000000000..2125474b68 --- /dev/null +++ b/t/t4018/custom3-alternation-in-pattern.ctx @@ -0,0 +1 @@ +public static void main(String RIGHT[]) diff --git a/t/t4018/dts-labels.ctx b/t/t4018/dts-labels.ctx new file mode 100644 index 0000000000..48d9373cab --- /dev/null +++ b/t/t4018/dts-labels.ctx @@ -0,0 +1 @@ +label2: RIGHT { diff --git a/t/t4018/dts-node-unitless.ctx b/t/t4018/dts-node-unitless.ctx new file mode 100644 index 0000000000..82c8683fa1 --- /dev/null +++ b/t/t4018/dts-node-unitless.ctx @@ -0,0 +1 @@ +RIGHT { diff --git a/t/t4018/dts-nodes-boolean-prop.ctx b/t/t4018/dts-nodes-boolean-prop.ctx new file mode 100644 index 0000000000..3a0232d55d --- /dev/null +++ b/t/t4018/dts-nodes-boolean-prop.ctx @@ -0,0 +1 @@ +RIGHT@deadf00,4000 { diff --git a/t/t4018/dts-nodes-comment1.ctx b/t/t4018/dts-nodes-comment1.ctx new file mode 100644 index 0000000000..ec364600b1 --- /dev/null +++ b/t/t4018/dts-nodes-comment1.ctx @@ -0,0 +1 @@ +RIGHT@deadf00,4000 /* &a comment */ { diff --git a/t/t4018/dts-nodes-comment2.ctx b/t/t4018/dts-nodes-comment2.ctx new file mode 100644 index 0000000000..75f0d75258 --- /dev/null +++ b/t/t4018/dts-nodes-comment2.ctx @@ -0,0 +1 @@ +RIGHT@deadf00,4000 { /* a trailing comment */ diff --git a/t/t4018/dts-nodes-multiline-prop.ctx b/t/t4018/dts-nodes-multiline-prop.ctx new file mode 100644 index 0000000000..3a0232d55d --- /dev/null +++ b/t/t4018/dts-nodes-multiline-prop.ctx @@ -0,0 +1 @@ +RIGHT@deadf00,4000 { diff --git a/t/t4018/dts-nodes.ctx b/t/t4018/dts-nodes.ctx new file mode 100644 index 0000000000..3a0232d55d --- /dev/null +++ b/t/t4018/dts-nodes.ctx @@ -0,0 +1 @@ +RIGHT@deadf00,4000 { diff --git a/t/t4018/dts-reference.ctx b/t/t4018/dts-reference.ctx new file mode 100644 index 0000000000..c1e13409ee --- /dev/null +++ b/t/t4018/dts-reference.ctx @@ -0,0 +1 @@ +&RIGHT { diff --git a/t/t4018/dts-root-comment.ctx b/t/t4018/dts-root-comment.ctx new file mode 100644 index 0000000000..656053dd42 --- /dev/null +++ b/t/t4018/dts-root-comment.ctx @@ -0,0 +1 @@ +/ { RIGHT /* Technically just supposed to be a slash and brace */ diff --git a/t/t4018/dts-root.ctx b/t/t4018/dts-root.ctx new file mode 100644 index 0000000000..656053dd42 --- /dev/null +++ b/t/t4018/dts-root.ctx @@ -0,0 +1 @@ +/ { RIGHT /* Technically just supposed to be a slash and brace */ diff --git a/t/t4018/elixir-do-not-pick-end.ctx b/t/t4018/elixir-do-not-pick-end.ctx new file mode 100644 index 0000000000..8f28a7a689 --- /dev/null +++ b/t/t4018/elixir-do-not-pick-end.ctx @@ -0,0 +1 @@ +defmodule RIGHT do diff --git a/t/t4018/elixir-ex-unit-test.ctx b/t/t4018/elixir-ex-unit-test.ctx new file mode 100644 index 0000000000..a55e3de2cc --- /dev/null +++ b/t/t4018/elixir-ex-unit-test.ctx @@ -0,0 +1 @@ +test "RIGHT" do diff --git a/t/t4018/elixir-function.ctx b/t/t4018/elixir-function.ctx new file mode 100644 index 0000000000..62aee9c8b1 --- /dev/null +++ b/t/t4018/elixir-function.ctx @@ -0,0 +1 @@ +def function(RIGHT, arg) do diff --git a/t/t4018/elixir-macro.ctx b/t/t4018/elixir-macro.ctx new file mode 100644 index 0000000000..fc1d3b85e8 --- /dev/null +++ b/t/t4018/elixir-macro.ctx @@ -0,0 +1 @@ +defmacro foo(RIGHT) do diff --git a/t/t4018/elixir-module-func.ctx b/t/t4018/elixir-module-func.ctx new file mode 100644 index 0000000000..8239214386 --- /dev/null +++ b/t/t4018/elixir-module-func.ctx @@ -0,0 +1 @@ +def fun(RIGHT) do diff --git a/t/t4018/elixir-module.ctx b/t/t4018/elixir-module.ctx new file mode 100644 index 0000000000..8f28a7a689 --- /dev/null +++ b/t/t4018/elixir-module.ctx @@ -0,0 +1 @@ +defmodule RIGHT do diff --git a/t/t4018/elixir-nested-module.ctx b/t/t4018/elixir-nested-module.ctx new file mode 100644 index 0000000000..3ffbdd18b1 --- /dev/null +++ b/t/t4018/elixir-nested-module.ctx @@ -0,0 +1 @@ +defmodule MyApp.RIGHT do diff --git a/t/t4018/elixir-private-function.ctx b/t/t4018/elixir-private-function.ctx new file mode 100644 index 0000000000..1c4eba44f7 --- /dev/null +++ b/t/t4018/elixir-private-function.ctx @@ -0,0 +1 @@ +defp function(RIGHT, arg) do diff --git a/t/t4018/elixir-protocol-implementation.ctx b/t/t4018/elixir-protocol-implementation.ctx new file mode 100644 index 0000000000..efb758aea6 --- /dev/null +++ b/t/t4018/elixir-protocol-implementation.ctx @@ -0,0 +1 @@ +defimpl RIGHT do diff --git a/t/t4018/elixir-protocol.ctx b/t/t4018/elixir-protocol.ctx new file mode 100644 index 0000000000..d0204e9f14 --- /dev/null +++ b/t/t4018/elixir-protocol.ctx @@ -0,0 +1 @@ +defprotocol RIGHT do diff --git a/t/t4018/fortran-block-data.ctx b/t/t4018/fortran-block-data.ctx new file mode 100644 index 0000000000..c3db084ccc --- /dev/null +++ b/t/t4018/fortran-block-data.ctx @@ -0,0 +1 @@ +BLOCK DATA RIGHT diff --git a/t/t4018/fortran-comment-keyword.ctx b/t/t4018/fortran-comment-keyword.ctx new file mode 100644 index 0000000000..0b9220b355 --- /dev/null +++ b/t/t4018/fortran-comment-keyword.ctx @@ -0,0 +1 @@ +subroutine RIGHT (funcA, funcB) diff --git a/t/t4018/fortran-comment-legacy-star.ctx b/t/t4018/fortran-comment-legacy-star.ctx new file mode 100644 index 0000000000..6a34203f80 --- /dev/null +++ b/t/t4018/fortran-comment-legacy-star.ctx @@ -0,0 +1 @@ +subroutine RIGHT diff --git a/t/t4018/fortran-comment-legacy.ctx b/t/t4018/fortran-comment-legacy.ctx new file mode 100644 index 0000000000..6a34203f80 --- /dev/null +++ b/t/t4018/fortran-comment-legacy.ctx @@ -0,0 +1 @@ +subroutine RIGHT diff --git a/t/t4018/fortran-comment.ctx b/t/t4018/fortran-comment.ctx new file mode 100644 index 0000000000..6a34203f80 --- /dev/null +++ b/t/t4018/fortran-comment.ctx @@ -0,0 +1 @@ +subroutine RIGHT diff --git a/t/t4018/fortran-external-function.ctx b/t/t4018/fortran-external-function.ctx new file mode 100644 index 0000000000..56ec4d8eca --- /dev/null +++ b/t/t4018/fortran-external-function.ctx @@ -0,0 +1 @@ +function RIGHT(a, b) result(c) diff --git a/t/t4018/fortran-external-subroutine.ctx b/t/t4018/fortran-external-subroutine.ctx new file mode 100644 index 0000000000..6a34203f80 --- /dev/null +++ b/t/t4018/fortran-external-subroutine.ctx @@ -0,0 +1 @@ +subroutine RIGHT diff --git a/t/t4018/fortran-module-procedure.ctx b/t/t4018/fortran-module-procedure.ctx new file mode 100644 index 0000000000..4f5ff2e4b8 --- /dev/null +++ b/t/t4018/fortran-module-procedure.ctx @@ -0,0 +1 @@ +module RIGHT diff --git a/t/t4018/fortran-module.ctx b/t/t4018/fortran-module.ctx new file mode 100644 index 0000000000..4f5ff2e4b8 --- /dev/null +++ b/t/t4018/fortran-module.ctx @@ -0,0 +1 @@ +module RIGHT diff --git a/t/t4018/fortran-program.ctx b/t/t4018/fortran-program.ctx new file mode 100644 index 0000000000..c4e844df30 --- /dev/null +++ b/t/t4018/fortran-program.ctx @@ -0,0 +1 @@ +program RIGHT diff --git a/t/t4018/fountain-scene.ctx b/t/t4018/fountain-scene.ctx new file mode 100644 index 0000000000..bf10171418 --- /dev/null +++ b/t/t4018/fountain-scene.ctx @@ -0,0 +1 @@ +EXT. STREET RIGHT OUTSIDE - DAY diff --git a/t/t4018/golang-complex-function.ctx b/t/t4018/golang-complex-function.ctx new file mode 100644 index 0000000000..8e8d5582ff --- /dev/null +++ b/t/t4018/golang-complex-function.ctx @@ -0,0 +1 @@ +func (t *Test) RIGHT(a Type) (Type, error) { diff --git a/t/t4018/golang-func.ctx b/t/t4018/golang-func.ctx new file mode 100644 index 0000000000..88bc823813 --- /dev/null +++ b/t/t4018/golang-func.ctx @@ -0,0 +1 @@ +func RIGHT() { diff --git a/t/t4018/golang-interface.ctx b/t/t4018/golang-interface.ctx new file mode 100644 index 0000000000..2d07f5a383 --- /dev/null +++ b/t/t4018/golang-interface.ctx @@ -0,0 +1 @@ +type RIGHT interface { diff --git a/t/t4018/golang-long-func.ctx b/t/t4018/golang-long-func.ctx new file mode 100644 index 0000000000..25635e712e --- /dev/null +++ b/t/t4018/golang-long-func.ctx @@ -0,0 +1 @@ +func RIGHT(aVeryVeryVeryLongVariableName AVeryVeryVeryLongType, diff --git a/t/t4018/golang-struct.ctx b/t/t4018/golang-struct.ctx new file mode 100644 index 0000000000..8a1240699d --- /dev/null +++ b/t/t4018/golang-struct.ctx @@ -0,0 +1 @@ +type RIGHT struct { diff --git a/t/t4018/java-class-member-function.ctx b/t/t4018/java-class-member-function.ctx new file mode 100644 index 0000000000..2125474b68 --- /dev/null +++ b/t/t4018/java-class-member-function.ctx @@ -0,0 +1 @@ +public static void main(String RIGHT[]) diff --git a/t/t4018/markdown-heading-indented.ctx b/t/t4018/markdown-heading-indented.ctx new file mode 100644 index 0000000000..5938336743 --- /dev/null +++ b/t/t4018/markdown-heading-indented.ctx @@ -0,0 +1 @@ + ### RIGHT diff --git a/t/t4018/markdown-heading-non-headings.ctx b/t/t4018/markdown-heading-non-headings.ctx new file mode 100644 index 0000000000..7e2165be6e --- /dev/null +++ b/t/t4018/markdown-heading-non-headings.ctx @@ -0,0 +1 @@ +# RIGHT diff --git a/t/t4018/matlab-class-definition.ctx b/t/t4018/matlab-class-definition.ctx new file mode 100644 index 0000000000..5dd5b45628 --- /dev/null +++ b/t/t4018/matlab-class-definition.ctx @@ -0,0 +1 @@ +classdef RIGHT diff --git a/t/t4018/matlab-function.ctx b/t/t4018/matlab-function.ctx new file mode 100644 index 0000000000..72d2350b13 --- /dev/null +++ b/t/t4018/matlab-function.ctx @@ -0,0 +1 @@ +function y = RIGHT() diff --git a/t/t4018/matlab-octave-section-1.ctx b/t/t4018/matlab-octave-section-1.ctx new file mode 100644 index 0000000000..ca9b349f94 --- /dev/null +++ b/t/t4018/matlab-octave-section-1.ctx @@ -0,0 +1 @@ +%%% RIGHT section diff --git a/t/t4018/matlab-octave-section-2.ctx b/t/t4018/matlab-octave-section-2.ctx new file mode 100644 index 0000000000..5cbb77faf5 --- /dev/null +++ b/t/t4018/matlab-octave-section-2.ctx @@ -0,0 +1 @@ +## RIGHT section diff --git a/t/t4018/matlab-section.ctx b/t/t4018/matlab-section.ctx new file mode 100644 index 0000000000..e83fee6f4d --- /dev/null +++ b/t/t4018/matlab-section.ctx @@ -0,0 +1 @@ +%% RIGHT section diff --git a/t/t4018/perl-skip-end-of-heredoc.ctx b/t/t4018/perl-skip-end-of-heredoc.ctx new file mode 100644 index 0000000000..c15f4b78bd --- /dev/null +++ b/t/t4018/perl-skip-end-of-heredoc.ctx @@ -0,0 +1 @@ +sub RIGHTwithheredocument { diff --git a/t/t4018/perl-skip-forward-decl.ctx b/t/t4018/perl-skip-forward-decl.ctx new file mode 100644 index 0000000000..e0c51599ad --- /dev/null +++ b/t/t4018/perl-skip-forward-decl.ctx @@ -0,0 +1 @@ +package RIGHT; diff --git a/t/t4018/perl-skip-sub-in-pod.ctx b/t/t4018/perl-skip-sub-in-pod.ctx new file mode 100644 index 0000000000..abddd76655 --- /dev/null +++ b/t/t4018/perl-skip-sub-in-pod.ctx @@ -0,0 +1 @@ +=head1 SYNOPSIS_RIGHT diff --git a/t/t4018/perl-sub-definition-kr-brace.ctx b/t/t4018/perl-sub-definition-kr-brace.ctx new file mode 100644 index 0000000000..7e5aee5cde --- /dev/null +++ b/t/t4018/perl-sub-definition-kr-brace.ctx @@ -0,0 +1 @@ +sub RIGHT diff --git a/t/t4018/perl-sub-definition.ctx b/t/t4018/perl-sub-definition.ctx new file mode 100644 index 0000000000..d49a63598e --- /dev/null +++ b/t/t4018/perl-sub-definition.ctx @@ -0,0 +1 @@ +sub RIGHT { diff --git a/t/t4018/php-abstract-class.ctx b/t/t4018/php-abstract-class.ctx new file mode 100644 index 0000000000..f572d2129b --- /dev/null +++ b/t/t4018/php-abstract-class.ctx @@ -0,0 +1 @@ +abstract class RIGHT diff --git a/t/t4018/php-abstract-method.ctx b/t/t4018/php-abstract-method.ctx new file mode 100644 index 0000000000..14cb6df42e --- /dev/null +++ b/t/t4018/php-abstract-method.ctx @@ -0,0 +1 @@ +abstract public function RIGHT(): ?string diff --git a/t/t4018/php-class.ctx b/t/t4018/php-class.ctx new file mode 100644 index 0000000000..54bff816d6 --- /dev/null +++ b/t/t4018/php-class.ctx @@ -0,0 +1 @@ +class RIGHT diff --git a/t/t4018/php-final-class.ctx b/t/t4018/php-final-class.ctx new file mode 100644 index 0000000000..4d59fb749b --- /dev/null +++ b/t/t4018/php-final-class.ctx @@ -0,0 +1 @@ +final class RIGHT diff --git a/t/t4018/php-final-method.ctx b/t/t4018/php-final-method.ctx new file mode 100644 index 0000000000..b7da8f8082 --- /dev/null +++ b/t/t4018/php-final-method.ctx @@ -0,0 +1 @@ +final public function RIGHT(): string diff --git a/t/t4018/php-function.ctx b/t/t4018/php-function.ctx new file mode 100644 index 0000000000..c5f3e55302 --- /dev/null +++ b/t/t4018/php-function.ctx @@ -0,0 +1 @@ +function RIGHT() diff --git a/t/t4018/php-interface.ctx b/t/t4018/php-interface.ctx new file mode 100644 index 0000000000..a45fa0532a --- /dev/null +++ b/t/t4018/php-interface.ctx @@ -0,0 +1 @@ +interface RIGHT diff --git a/t/t4018/php-method.ctx b/t/t4018/php-method.ctx new file mode 100644 index 0000000000..eb1659ff9f --- /dev/null +++ b/t/t4018/php-method.ctx @@ -0,0 +1 @@ +public static function RIGHT() diff --git a/t/t4018/php-trait.ctx b/t/t4018/php-trait.ctx new file mode 100644 index 0000000000..57aa4c6267 --- /dev/null +++ b/t/t4018/php-trait.ctx @@ -0,0 +1 @@ +trait RIGHT diff --git a/t/t4018/python-async-def.ctx b/t/t4018/python-async-def.ctx new file mode 100644 index 0000000000..468c548bbe --- /dev/null +++ b/t/t4018/python-async-def.ctx @@ -0,0 +1 @@ +async def RIGHT(pi: int = 3.14): diff --git a/t/t4018/python-class.ctx b/t/t4018/python-class.ctx new file mode 100644 index 0000000000..a40b755e29 --- /dev/null +++ b/t/t4018/python-class.ctx @@ -0,0 +1 @@ +class RIGHT(int, str): diff --git a/t/t4018/python-def.ctx b/t/t4018/python-def.ctx new file mode 100644 index 0000000000..a1a9cbad63 --- /dev/null +++ b/t/t4018/python-def.ctx @@ -0,0 +1 @@ +def RIGHT(pi: int = 3.14): diff --git a/t/t4018/python-indented-async-def.ctx b/t/t4018/python-indented-async-def.ctx new file mode 100644 index 0000000000..d393620a1e --- /dev/null +++ b/t/t4018/python-indented-async-def.ctx @@ -0,0 +1 @@ +async def RIGHT(self, x: int): diff --git a/t/t4018/python-indented-class.ctx b/t/t4018/python-indented-class.ctx new file mode 100644 index 0000000000..0881c84dba --- /dev/null +++ b/t/t4018/python-indented-class.ctx @@ -0,0 +1 @@ +class RIGHT: diff --git a/t/t4018/python-indented-def.ctx b/t/t4018/python-indented-def.ctx new file mode 100644 index 0000000000..6e5a44b391 --- /dev/null +++ b/t/t4018/python-indented-def.ctx @@ -0,0 +1 @@ +def RIGHT(self, x: int): diff --git a/t/t4018/rust-fn.ctx b/t/t4018/rust-fn.ctx new file mode 100644 index 0000000000..baa37cf253 --- /dev/null +++ b/t/t4018/rust-fn.ctx @@ -0,0 +1 @@ +pub(self) fn RIGHT(x: &[T]) where T: Debug { diff --git a/t/t4018/rust-impl.ctx b/t/t4018/rust-impl.ctx new file mode 100644 index 0000000000..5344c35f3f --- /dev/null +++ b/t/t4018/rust-impl.ctx @@ -0,0 +1 @@ +impl<'a, T: AsRef<[u8]>> std::RIGHT for Git<'a> { diff --git a/t/t4018/rust-macro-rules.ctx b/t/t4018/rust-macro-rules.ctx new file mode 100644 index 0000000000..7520463aa0 --- /dev/null +++ b/t/t4018/rust-macro-rules.ctx @@ -0,0 +1 @@ +macro_rules! RIGHT { diff --git a/t/t4018/rust-struct.ctx b/t/t4018/rust-struct.ctx new file mode 100644 index 0000000000..c1e09dc808 --- /dev/null +++ b/t/t4018/rust-struct.ctx @@ -0,0 +1 @@ +pub(super) struct RIGHT<'a> { diff --git a/t/t4018/rust-trait.ctx b/t/t4018/rust-trait.ctx new file mode 100644 index 0000000000..6af803db29 --- /dev/null +++ b/t/t4018/rust-trait.ctx @@ -0,0 +1 @@ +unsafe trait RIGHT { From patchwork Mon Feb 15 00:52:24 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087545 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D59C4C433E0 for ; Mon, 15 Feb 2021 00:54:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8E6C764E27 for ; Mon, 15 Feb 2021 00:54:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230166AbhBOAyl (ORCPT ); Sun, 14 Feb 2021 19:54:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49280 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230030AbhBOAyZ (ORCPT ); Sun, 14 Feb 2021 19:54:25 -0500 Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 32EEAC061797 for ; Sun, 14 Feb 2021 16:53:09 -0800 (PST) Received: by mail-wr1-x430.google.com with SMTP id b3so7163202wrj.5 for ; Sun, 14 Feb 2021 16:53:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=sDQWtdsqgVP1xzGMMHIVLBQnHWWFVNNWVvtxfSvgY9I=; b=euY04mrbJncKl/qZs/phTOAycw3nkuXp4qqKTwrW1Wb4tEH7hbVJwJYw4a2+KGyahx kEeLJvLpADXcLeaRpyUHJTErgnfbd6/IDlNbXTVauZks1jy5Mm3r+FZGOql20tIgJlLw WMMnt3YGqcP0EgEYo5YSE82YqbFHtoGdYqIFl7PnBDDzutLW89Wjkq/d3tlZGk9sAo5p 48cIZwpvS+UmwhdbNymYM4q0W15FBw3t7qmOv/2AIyaVIhEreqmlUveLI6wGrPO8NfdB 5ZRY4nw2YlApJO45T0c+C/FJFCOI4M7FtBTfB8gFXmAqpHhcqYRbDPmAunlQIPwQkmj6 e25Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=sDQWtdsqgVP1xzGMMHIVLBQnHWWFVNNWVvtxfSvgY9I=; b=JqFU79SO+RkPnEFV645H/X6AkO8KjymuwSskl5rxADu0Sz/MvgnINp+3+xc8gZCHeM g0l7N+vRyR2Am6jdV04lUQHWxG6wEGniV69IVRYhknbvQRTTvwQKMa7gZz32JhrrDeKL /Kl3kXQxqHss4fWno+OQOwMFzJSmjqs9ZpbTB2yM2UNk0DIBq2qeoNw5imPRW8wf/foI xGsH+tYwSj3rPnLEU4KCDnR3ly/THrhBWNgKbDkunANIGjtwYZyGvf+kIyU6RKNJNkwd qVIYi6MJx0oCWNHd2KAkqPmLyHwOq3XAZJGxL7SmQ6iFKKSIUegtWWqIKV+vD6JuPQsK Cbyw== X-Gm-Message-State: AOAM5333yL1HY+bpH3nhEQ5iEjSgNK6mQN967Y4z0Pb7ETNagd5+ZumP ggOyUFd/qPOSzcftlAbdTw/YI3ilXqkIWQ== X-Google-Smtp-Source: ABdhPJzH30SmzT7zAq+wD5mCJMwEiciDtCI8qiIQRWuQFo0mH4mxcFU20hFPctes1++xKXfbDl8qIA== X-Received: by 2002:a5d:6d06:: with SMTP id e6mr16146104wrq.425.1613350385822; Sun, 14 Feb 2021 16:53:05 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:05 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 08/20] userdiff tests: rewrite hunk header test infrastructure Date: Mon, 15 Feb 2021 01:52:24 +0100 Message-Id: <20210215005236.11313-9-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Rewrite the hunk header test infrastructure introduced in bfa7d01413 (t4018: an infrastructure to test hunk headers, 2014-03-21). See c228a5c077 (Merge branch 'js/userdiff-cc', 2014-03-31) for the whole series that commit was part of. As noted in an earlier commit that change introduced the regression of not testing for the full hunk line, but just whether "RIGHT" appeared on it[1]. A preceding commit fixed that specific issue, but we were still left with the inflexibility of the approach described in the now-deleted t/t4018/README. I.e. to add any sort of new tests that used the existing test data we'd either need to add more files like the recently added (but now deleted) *.ctx) files, using the filesystem as our test datastructure, or introduce more parsing for the custom file format we were growing here. Let's instead just move this over to using a custom test function. This makes it trivial to add new tests by adding new optional parameters to the function. Let's still keep the relevant files in the "t/t4018/" subdirectory instead of adding ~1.5k lines (and growing) to "t/t4018-diff-funcname.sh" If this diff is viewed with "--color-moved=plain" we can see that there's no changes to the lines being moved into the new *.sh files, i.e. all the deletions are moves. I'm just adding boilerplate around those existing lines. The one-off refactoring was performed by an ad-hoc shellscript [2]. 1. https://lore.kernel.org/git/87wnvbbf2y.fsf@evledraar.gmail.com/ 2. #!/bin/sh set -ex git rm README* for t in $(git ls-files ':!*.ctx') do lang=$(echo $t | sed 's/-.*//') desc=$(echo $t | sed -E 's/^[^-]*-//' | tr - " ") if ! test -e $lang.sh then cat >$lang.sh <<-EOF #!/bin/sh # # See ../t4018-diff-funcname.sh's test_diff_funcname() # EOF else echo >>$lang.sh fi ( printf "test_diff_funcname '%s: %s' \\" "$lang" "$desc" echo printf "\t8<<%sEOF_HUNK 9<<%sEOF_TEST\n" '\' '\' cat $t.ctx printf "EOF_HUNK\n" cat $t printf "EOF_TEST\n" ) >>$lang.sh chmod +x $lang.sh git add $lang.sh git rm $t $t.ctx done Signed-off-by: Ævar Arnfjörð Bjarmason --- t/t4018-diff-funcname.sh | 59 +++-- t/t4018/README | 15 -- t/t4018/README.ctx | 1 - t/t4018/bash-arithmetic-function | 4 - t/t4018/bash-arithmetic-function.ctx | 1 - t/t4018/bash-bashism-style-compact | 6 - t/t4018/bash-bashism-style-compact.ctx | 1 - t/t4018/bash-bashism-style-function | 4 - t/t4018/bash-bashism-style-function.ctx | 1 - t/t4018/bash-bashism-style-whitespace | 4 - t/t4018/bash-bashism-style-whitespace.ctx | 1 - t/t4018/bash-conditional-function | 4 - t/t4018/bash-conditional-function.ctx | 1 - t/t4018/bash-missing-parentheses | 6 - t/t4018/bash-missing-parentheses.ctx | 1 - t/t4018/bash-mixed-style-compact | 4 - t/t4018/bash-mixed-style-compact.ctx | 1 - t/t4018/bash-mixed-style-function | 4 - t/t4018/bash-mixed-style-function.ctx | 1 - t/t4018/bash-nested-functions | 6 - t/t4018/bash-nested-functions.ctx | 1 - t/t4018/bash-other-characters | 4 - t/t4018/bash-other-characters.ctx | 1 - t/t4018/bash-posix-style-compact | 4 - t/t4018/bash-posix-style-compact.ctx | 1 - t/t4018/bash-posix-style-function | 4 - t/t4018/bash-posix-style-function.ctx | 1 - t/t4018/bash-posix-style-whitespace | 4 - t/t4018/bash-posix-style-whitespace.ctx | 1 - t/t4018/bash-subshell-function | 4 - t/t4018/bash-subshell-function.ctx | 1 - t/t4018/bash-trailing-comment | 4 - t/t4018/bash-trailing-comment.ctx | 1 - t/t4018/bash.sh | 160 ++++++++++++ t/t4018/cpp-c++-function | 4 - t/t4018/cpp-c++-function.ctx | 1 - t/t4018/cpp-class-constructor | 4 - t/t4018/cpp-class-constructor-mem-init | 5 - t/t4018/cpp-class-constructor-mem-init.ctx | 1 - t/t4018/cpp-class-constructor.ctx | 1 - t/t4018/cpp-class-definition | 4 - t/t4018/cpp-class-definition-derived | 5 - t/t4018/cpp-class-definition-derived.ctx | 1 - t/t4018/cpp-class-definition.ctx | 1 - t/t4018/cpp-class-destructor | 4 - t/t4018/cpp-class-destructor.ctx | 1 - t/t4018/cpp-function-returning-global-type | 4 - .../cpp-function-returning-global-type.ctx | 1 - t/t4018/cpp-function-returning-nested | 5 - t/t4018/cpp-function-returning-nested.ctx | 1 - t/t4018/cpp-function-returning-pointer | 4 - t/t4018/cpp-function-returning-pointer.ctx | 1 - t/t4018/cpp-function-returning-reference | 4 - t/t4018/cpp-function-returning-reference.ctx | 1 - t/t4018/cpp-gnu-style-function | 5 - t/t4018/cpp-gnu-style-function.ctx | 1 - t/t4018/cpp-namespace-definition | 4 - t/t4018/cpp-namespace-definition.ctx | 1 - t/t4018/cpp-operator-definition | 4 - t/t4018/cpp-operator-definition.ctx | 1 - t/t4018/cpp-skip-access-specifiers | 8 - t/t4018/cpp-skip-access-specifiers.ctx | 1 - t/t4018/cpp-skip-comment-block | 9 - t/t4018/cpp-skip-comment-block.ctx | 1 - t/t4018/cpp-skip-labels | 8 - t/t4018/cpp-skip-labels.ctx | 1 - t/t4018/cpp-struct-definition | 9 - t/t4018/cpp-struct-definition.ctx | 1 - t/t4018/cpp-struct-single-line | 7 - t/t4018/cpp-struct-single-line.ctx | 1 - t/t4018/cpp-template-function-definition | 4 - t/t4018/cpp-template-function-definition.ctx | 1 - t/t4018/cpp-union-definition | 4 - t/t4018/cpp-union-definition.ctx | 1 - t/t4018/cpp-void-c-function | 4 - t/t4018/cpp-void-c-function.ctx | 1 - t/t4018/cpp.sh | 239 ++++++++++++++++++ t/t4018/css-attribute-value-selector | 4 - t/t4018/css-attribute-value-selector.ctx | 1 - t/t4018/css-block-level-@-statements | 10 - t/t4018/css-block-level-@-statements.ctx | 1 - t/t4018/css-brace-in-col-1 | 5 - t/t4018/css-brace-in-col-1.ctx | 1 - t/t4018/css-class-selector | 4 - t/t4018/css-class-selector.ctx | 1 - t/t4018/css-colon-eol | 4 - t/t4018/css-colon-eol.ctx | 1 - t/t4018/css-colon-selector | 5 - t/t4018/css-colon-selector.ctx | 1 - t/t4018/css-common | 4 - t/t4018/css-common.ctx | 1 - t/t4018/css-id-selector | 4 - t/t4018/css-id-selector.ctx | 1 - t/t4018/css-long-selector-list | 6 - t/t4018/css-long-selector-list.ctx | 1 - t/t4018/css-prop-sans-indent | 5 - t/t4018/css-prop-sans-indent.ctx | 1 - t/t4018/css-root-selector | 4 - t/t4018/css-root-selector.ctx | 1 - t/t4018/css-short-selector-list | 4 - t/t4018/css-short-selector-list.ctx | 1 - t/t4018/css-trailing-space | 5 - t/t4018/css-trailing-space.ctx | 1 - t/t4018/css.sh | 146 +++++++++++ t/t4018/custom1-pattern.ctx | 1 - t/t4018/{custom1-pattern => custom1.sh} | 10 + t/t4018/custom2-match-to-end-of-line | 8 - t/t4018/custom2-match-to-end-of-line.ctx | 1 - t/t4018/custom2.sh | 18 ++ t/t4018/custom3-alternation-in-pattern.ctx | 1 - ...tom3-alternation-in-pattern => custom3.sh} | 10 + t/t4018/dts-labels | 9 - t/t4018/dts-labels.ctx | 1 - t/t4018/dts-node-unitless | 8 - t/t4018/dts-node-unitless.ctx | 1 - t/t4018/dts-nodes | 8 - t/t4018/dts-nodes-boolean-prop | 9 - t/t4018/dts-nodes-boolean-prop.ctx | 1 - t/t4018/dts-nodes-comment1 | 8 - t/t4018/dts-nodes-comment1.ctx | 1 - t/t4018/dts-nodes-comment2 | 8 - t/t4018/dts-nodes-comment2.ctx | 1 - t/t4018/dts-nodes-multiline-prop | 13 - t/t4018/dts-nodes-multiline-prop.ctx | 1 - t/t4018/dts-nodes.ctx | 1 - t/t4018/dts-reference | 9 - t/t4018/dts-reference.ctx | 1 - t/t4018/dts-root | 5 - t/t4018/dts-root-comment | 8 - t/t4018/dts-root-comment.ctx | 1 - t/t4018/dts-root.ctx | 1 - t/t4018/dts.sh | 149 +++++++++++ t/t4018/elixir-do-not-pick-end | 5 - t/t4018/elixir-do-not-pick-end.ctx | 1 - t/t4018/elixir-ex-unit-test | 6 - t/t4018/elixir-ex-unit-test.ctx | 1 - t/t4018/elixir-function | 5 - t/t4018/elixir-function.ctx | 1 - t/t4018/elixir-macro | 5 - t/t4018/elixir-macro.ctx | 1 - t/t4018/elixir-module | 9 - t/t4018/elixir-module-func | 8 - t/t4018/elixir-module-func.ctx | 1 - t/t4018/elixir-module.ctx | 1 - t/t4018/elixir-nested-module | 9 - t/t4018/elixir-nested-module.ctx | 1 - t/t4018/elixir-private-function | 5 - t/t4018/elixir-private-function.ctx | 1 - t/t4018/elixir-protocol | 6 - t/t4018/elixir-protocol-implementation | 5 - t/t4018/elixir-protocol-implementation.ctx | 1 - t/t4018/elixir-protocol.ctx | 1 - t/t4018/elixir.sh | 127 ++++++++++ t/t4018/fortran-block-data | 5 - t/t4018/fortran-block-data.ctx | 1 - t/t4018/fortran-comment | 13 - t/t4018/fortran-comment-keyword | 14 - t/t4018/fortran-comment-keyword.ctx | 1 - t/t4018/fortran-comment-legacy | 13 - t/t4018/fortran-comment-legacy-star | 13 - t/t4018/fortran-comment-legacy-star.ctx | 1 - t/t4018/fortran-comment-legacy.ctx | 1 - t/t4018/fortran-comment.ctx | 1 - t/t4018/fortran-external-function | 9 - t/t4018/fortran-external-function.ctx | 1 - t/t4018/fortran-external-subroutine | 5 - t/t4018/fortran-external-subroutine.ctx | 1 - t/t4018/fortran-module | 5 - t/t4018/fortran-module-procedure | 13 - t/t4018/fortran-module-procedure.ctx | 1 - t/t4018/fortran-module.ctx | 1 - t/t4018/fortran-program | 5 - t/t4018/fortran-program.ctx | 1 - t/t4018/fortran.sh | 159 ++++++++++++ t/t4018/fountain-scene | 4 - t/t4018/fountain-scene.ctx | 1 - t/t4018/fountain.sh | 14 + t/t4018/golang-complex-function | 8 - t/t4018/golang-complex-function.ctx | 1 - t/t4018/golang-func | 4 - t/t4018/golang-func.ctx | 1 - t/t4018/golang-interface | 4 - t/t4018/golang-interface.ctx | 1 - t/t4018/golang-long-func | 5 - t/t4018/golang-long-func.ctx | 1 - t/t4018/golang-struct | 4 - t/t4018/golang-struct.ctx | 1 - t/t4018/golang.sh | 59 +++++ t/t4018/java-class-member-function | 8 - t/t4018/java-class-member-function.ctx | 1 - t/t4018/java.sh | 18 ++ t/t4018/markdown-heading-indented | 6 - t/t4018/markdown-heading-indented.ctx | 1 - t/t4018/markdown-heading-non-headings | 17 -- t/t4018/markdown-heading-non-headings.ctx | 1 - t/t4018/markdown.sh | 39 +++ t/t4018/matlab-class-definition | 5 - t/t4018/matlab-class-definition.ctx | 1 - t/t4018/matlab-function | 4 - t/t4018/matlab-function.ctx | 1 - t/t4018/matlab-octave-section-1 | 3 - t/t4018/matlab-octave-section-1.ctx | 1 - t/t4018/matlab-octave-section-2 | 3 - t/t4018/matlab-octave-section-2.ctx | 1 - t/t4018/matlab-section | 3 - t/t4018/matlab-section.ctx | 1 - t/t4018/matlab.sh | 52 ++++ t/t4018/perl-skip-end-of-heredoc | 8 - t/t4018/perl-skip-end-of-heredoc.ctx | 1 - t/t4018/perl-skip-forward-decl | 10 - t/t4018/perl-skip-forward-decl.ctx | 1 - t/t4018/perl-skip-sub-in-pod | 18 -- t/t4018/perl-skip-sub-in-pod.ctx | 1 - t/t4018/perl-sub-definition | 4 - t/t4018/perl-sub-definition-kr-brace | 4 - t/t4018/perl-sub-definition-kr-brace.ctx | 1 - t/t4018/perl-sub-definition.ctx | 1 - t/t4018/perl.sh | 78 ++++++ t/t4018/php-abstract-class | 4 - t/t4018/php-abstract-class.ctx | 1 - t/t4018/php-abstract-method | 7 - t/t4018/php-abstract-method.ctx | 1 - t/t4018/php-class | 4 - t/t4018/php-class.ctx | 1 - t/t4018/php-final-class | 4 - t/t4018/php-final-class.ctx | 1 - t/t4018/php-final-method | 7 - t/t4018/php-final-method.ctx | 1 - t/t4018/php-function | 4 - t/t4018/php-function.ctx | 1 - t/t4018/php-interface | 4 - t/t4018/php-interface.ctx | 1 - t/t4018/php-method | 7 - t/t4018/php-method.ctx | 1 - t/t4018/php-trait | 7 - t/t4018/php-trait.ctx | 1 - t/t4018/php.sh | 106 ++++++++ t/t4018/python-async-def | 4 - t/t4018/python-async-def.ctx | 1 - t/t4018/python-class | 4 - t/t4018/python-class.ctx | 1 - t/t4018/python-def | 4 - t/t4018/python-def.ctx | 1 - t/t4018/python-indented-async-def | 7 - t/t4018/python-indented-async-def.ctx | 1 - t/t4018/python-indented-class | 5 - t/t4018/python-indented-class.ctx | 1 - t/t4018/python-indented-def | 7 - t/t4018/python-indented-def.ctx | 1 - t/t4018/python.sh | 71 ++++++ t/t4018/rust-fn | 5 - t/t4018/rust-fn.ctx | 1 - t/t4018/rust-impl | 5 - t/t4018/rust-impl.ctx | 1 - t/t4018/rust-macro-rules | 6 - t/t4018/rust-macro-rules.ctx | 1 - t/t4018/rust-struct | 5 - t/t4018/rust-struct.ctx | 1 - t/t4018/rust-trait | 5 - t/t4018/rust-trait.ctx | 1 - t/t4018/rust.sh | 60 +++++ 261 files changed, 1549 insertions(+), 879 deletions(-) delete mode 100644 t/t4018/README delete mode 100644 t/t4018/README.ctx delete mode 100644 t/t4018/bash-arithmetic-function delete mode 100644 t/t4018/bash-arithmetic-function.ctx delete mode 100644 t/t4018/bash-bashism-style-compact delete mode 100644 t/t4018/bash-bashism-style-compact.ctx delete mode 100644 t/t4018/bash-bashism-style-function delete mode 100644 t/t4018/bash-bashism-style-function.ctx delete mode 100644 t/t4018/bash-bashism-style-whitespace delete mode 100644 t/t4018/bash-bashism-style-whitespace.ctx delete mode 100644 t/t4018/bash-conditional-function delete mode 100644 t/t4018/bash-conditional-function.ctx delete mode 100644 t/t4018/bash-missing-parentheses delete mode 100644 t/t4018/bash-missing-parentheses.ctx delete mode 100644 t/t4018/bash-mixed-style-compact delete mode 100644 t/t4018/bash-mixed-style-compact.ctx delete mode 100644 t/t4018/bash-mixed-style-function delete mode 100644 t/t4018/bash-mixed-style-function.ctx delete mode 100644 t/t4018/bash-nested-functions delete mode 100644 t/t4018/bash-nested-functions.ctx delete mode 100644 t/t4018/bash-other-characters delete mode 100644 t/t4018/bash-other-characters.ctx delete mode 100644 t/t4018/bash-posix-style-compact delete mode 100644 t/t4018/bash-posix-style-compact.ctx delete mode 100644 t/t4018/bash-posix-style-function delete mode 100644 t/t4018/bash-posix-style-function.ctx delete mode 100644 t/t4018/bash-posix-style-whitespace delete mode 100644 t/t4018/bash-posix-style-whitespace.ctx delete mode 100644 t/t4018/bash-subshell-function delete mode 100644 t/t4018/bash-subshell-function.ctx delete mode 100644 t/t4018/bash-trailing-comment delete mode 100644 t/t4018/bash-trailing-comment.ctx create mode 100755 t/t4018/bash.sh delete mode 100644 t/t4018/cpp-c++-function delete mode 100644 t/t4018/cpp-c++-function.ctx delete mode 100644 t/t4018/cpp-class-constructor delete mode 100644 t/t4018/cpp-class-constructor-mem-init delete mode 100644 t/t4018/cpp-class-constructor-mem-init.ctx delete mode 100644 t/t4018/cpp-class-constructor.ctx delete mode 100644 t/t4018/cpp-class-definition delete mode 100644 t/t4018/cpp-class-definition-derived delete mode 100644 t/t4018/cpp-class-definition-derived.ctx delete mode 100644 t/t4018/cpp-class-definition.ctx delete mode 100644 t/t4018/cpp-class-destructor delete mode 100644 t/t4018/cpp-class-destructor.ctx delete mode 100644 t/t4018/cpp-function-returning-global-type delete mode 100644 t/t4018/cpp-function-returning-global-type.ctx delete mode 100644 t/t4018/cpp-function-returning-nested delete mode 100644 t/t4018/cpp-function-returning-nested.ctx delete mode 100644 t/t4018/cpp-function-returning-pointer delete mode 100644 t/t4018/cpp-function-returning-pointer.ctx delete mode 100644 t/t4018/cpp-function-returning-reference delete mode 100644 t/t4018/cpp-function-returning-reference.ctx delete mode 100644 t/t4018/cpp-gnu-style-function delete mode 100644 t/t4018/cpp-gnu-style-function.ctx delete mode 100644 t/t4018/cpp-namespace-definition delete mode 100644 t/t4018/cpp-namespace-definition.ctx delete mode 100644 t/t4018/cpp-operator-definition delete mode 100644 t/t4018/cpp-operator-definition.ctx delete mode 100644 t/t4018/cpp-skip-access-specifiers delete mode 100644 t/t4018/cpp-skip-access-specifiers.ctx delete mode 100644 t/t4018/cpp-skip-comment-block delete mode 100644 t/t4018/cpp-skip-comment-block.ctx delete mode 100644 t/t4018/cpp-skip-labels delete mode 100644 t/t4018/cpp-skip-labels.ctx delete mode 100644 t/t4018/cpp-struct-definition delete mode 100644 t/t4018/cpp-struct-definition.ctx delete mode 100644 t/t4018/cpp-struct-single-line delete mode 100644 t/t4018/cpp-struct-single-line.ctx delete mode 100644 t/t4018/cpp-template-function-definition delete mode 100644 t/t4018/cpp-template-function-definition.ctx delete mode 100644 t/t4018/cpp-union-definition delete mode 100644 t/t4018/cpp-union-definition.ctx delete mode 100644 t/t4018/cpp-void-c-function delete mode 100644 t/t4018/cpp-void-c-function.ctx create mode 100755 t/t4018/cpp.sh delete mode 100644 t/t4018/css-attribute-value-selector delete mode 100644 t/t4018/css-attribute-value-selector.ctx delete mode 100644 t/t4018/css-block-level-@-statements delete mode 100644 t/t4018/css-block-level-@-statements.ctx delete mode 100644 t/t4018/css-brace-in-col-1 delete mode 100644 t/t4018/css-brace-in-col-1.ctx delete mode 100644 t/t4018/css-class-selector delete mode 100644 t/t4018/css-class-selector.ctx delete mode 100644 t/t4018/css-colon-eol delete mode 100644 t/t4018/css-colon-eol.ctx delete mode 100644 t/t4018/css-colon-selector delete mode 100644 t/t4018/css-colon-selector.ctx delete mode 100644 t/t4018/css-common delete mode 100644 t/t4018/css-common.ctx delete mode 100644 t/t4018/css-id-selector delete mode 100644 t/t4018/css-id-selector.ctx delete mode 100644 t/t4018/css-long-selector-list delete mode 100644 t/t4018/css-long-selector-list.ctx delete mode 100644 t/t4018/css-prop-sans-indent delete mode 100644 t/t4018/css-prop-sans-indent.ctx delete mode 100644 t/t4018/css-root-selector delete mode 100644 t/t4018/css-root-selector.ctx delete mode 100644 t/t4018/css-short-selector-list delete mode 100644 t/t4018/css-short-selector-list.ctx delete mode 100644 t/t4018/css-trailing-space delete mode 100644 t/t4018/css-trailing-space.ctx create mode 100755 t/t4018/css.sh delete mode 100644 t/t4018/custom1-pattern.ctx rename t/t4018/{custom1-pattern => custom1.sh} (71%) mode change 100644 => 100755 delete mode 100644 t/t4018/custom2-match-to-end-of-line delete mode 100644 t/t4018/custom2-match-to-end-of-line.ctx create mode 100755 t/t4018/custom2.sh delete mode 100644 t/t4018/custom3-alternation-in-pattern.ctx rename t/t4018/{custom3-alternation-in-pattern => custom3.sh} (66%) mode change 100644 => 100755 delete mode 100644 t/t4018/dts-labels delete mode 100644 t/t4018/dts-labels.ctx delete mode 100644 t/t4018/dts-node-unitless delete mode 100644 t/t4018/dts-node-unitless.ctx delete mode 100644 t/t4018/dts-nodes delete mode 100644 t/t4018/dts-nodes-boolean-prop delete mode 100644 t/t4018/dts-nodes-boolean-prop.ctx delete mode 100644 t/t4018/dts-nodes-comment1 delete mode 100644 t/t4018/dts-nodes-comment1.ctx delete mode 100644 t/t4018/dts-nodes-comment2 delete mode 100644 t/t4018/dts-nodes-comment2.ctx delete mode 100644 t/t4018/dts-nodes-multiline-prop delete mode 100644 t/t4018/dts-nodes-multiline-prop.ctx delete mode 100644 t/t4018/dts-nodes.ctx delete mode 100644 t/t4018/dts-reference delete mode 100644 t/t4018/dts-reference.ctx delete mode 100644 t/t4018/dts-root delete mode 100644 t/t4018/dts-root-comment delete mode 100644 t/t4018/dts-root-comment.ctx delete mode 100644 t/t4018/dts-root.ctx create mode 100755 t/t4018/dts.sh delete mode 100644 t/t4018/elixir-do-not-pick-end delete mode 100644 t/t4018/elixir-do-not-pick-end.ctx delete mode 100644 t/t4018/elixir-ex-unit-test delete mode 100644 t/t4018/elixir-ex-unit-test.ctx delete mode 100644 t/t4018/elixir-function delete mode 100644 t/t4018/elixir-function.ctx delete mode 100644 t/t4018/elixir-macro delete mode 100644 t/t4018/elixir-macro.ctx delete mode 100644 t/t4018/elixir-module delete mode 100644 t/t4018/elixir-module-func delete mode 100644 t/t4018/elixir-module-func.ctx delete mode 100644 t/t4018/elixir-module.ctx delete mode 100644 t/t4018/elixir-nested-module delete mode 100644 t/t4018/elixir-nested-module.ctx delete mode 100644 t/t4018/elixir-private-function delete mode 100644 t/t4018/elixir-private-function.ctx delete mode 100644 t/t4018/elixir-protocol delete mode 100644 t/t4018/elixir-protocol-implementation delete mode 100644 t/t4018/elixir-protocol-implementation.ctx delete mode 100644 t/t4018/elixir-protocol.ctx create mode 100755 t/t4018/elixir.sh delete mode 100644 t/t4018/fortran-block-data delete mode 100644 t/t4018/fortran-block-data.ctx delete mode 100644 t/t4018/fortran-comment delete mode 100644 t/t4018/fortran-comment-keyword delete mode 100644 t/t4018/fortran-comment-keyword.ctx delete mode 100644 t/t4018/fortran-comment-legacy delete mode 100644 t/t4018/fortran-comment-legacy-star delete mode 100644 t/t4018/fortran-comment-legacy-star.ctx delete mode 100644 t/t4018/fortran-comment-legacy.ctx delete mode 100644 t/t4018/fortran-comment.ctx delete mode 100644 t/t4018/fortran-external-function delete mode 100644 t/t4018/fortran-external-function.ctx delete mode 100644 t/t4018/fortran-external-subroutine delete mode 100644 t/t4018/fortran-external-subroutine.ctx delete mode 100644 t/t4018/fortran-module delete mode 100644 t/t4018/fortran-module-procedure delete mode 100644 t/t4018/fortran-module-procedure.ctx delete mode 100644 t/t4018/fortran-module.ctx delete mode 100644 t/t4018/fortran-program delete mode 100644 t/t4018/fortran-program.ctx create mode 100755 t/t4018/fortran.sh delete mode 100644 t/t4018/fountain-scene delete mode 100644 t/t4018/fountain-scene.ctx create mode 100755 t/t4018/fountain.sh delete mode 100644 t/t4018/golang-complex-function delete mode 100644 t/t4018/golang-complex-function.ctx delete mode 100644 t/t4018/golang-func delete mode 100644 t/t4018/golang-func.ctx delete mode 100644 t/t4018/golang-interface delete mode 100644 t/t4018/golang-interface.ctx delete mode 100644 t/t4018/golang-long-func delete mode 100644 t/t4018/golang-long-func.ctx delete mode 100644 t/t4018/golang-struct delete mode 100644 t/t4018/golang-struct.ctx create mode 100755 t/t4018/golang.sh delete mode 100644 t/t4018/java-class-member-function delete mode 100644 t/t4018/java-class-member-function.ctx create mode 100755 t/t4018/java.sh delete mode 100644 t/t4018/markdown-heading-indented delete mode 100644 t/t4018/markdown-heading-indented.ctx delete mode 100644 t/t4018/markdown-heading-non-headings delete mode 100644 t/t4018/markdown-heading-non-headings.ctx create mode 100755 t/t4018/markdown.sh delete mode 100644 t/t4018/matlab-class-definition delete mode 100644 t/t4018/matlab-class-definition.ctx delete mode 100644 t/t4018/matlab-function delete mode 100644 t/t4018/matlab-function.ctx delete mode 100644 t/t4018/matlab-octave-section-1 delete mode 100644 t/t4018/matlab-octave-section-1.ctx delete mode 100644 t/t4018/matlab-octave-section-2 delete mode 100644 t/t4018/matlab-octave-section-2.ctx delete mode 100644 t/t4018/matlab-section delete mode 100644 t/t4018/matlab-section.ctx create mode 100755 t/t4018/matlab.sh delete mode 100644 t/t4018/perl-skip-end-of-heredoc delete mode 100644 t/t4018/perl-skip-end-of-heredoc.ctx delete mode 100644 t/t4018/perl-skip-forward-decl delete mode 100644 t/t4018/perl-skip-forward-decl.ctx delete mode 100644 t/t4018/perl-skip-sub-in-pod delete mode 100644 t/t4018/perl-skip-sub-in-pod.ctx delete mode 100644 t/t4018/perl-sub-definition delete mode 100644 t/t4018/perl-sub-definition-kr-brace delete mode 100644 t/t4018/perl-sub-definition-kr-brace.ctx delete mode 100644 t/t4018/perl-sub-definition.ctx create mode 100755 t/t4018/perl.sh delete mode 100644 t/t4018/php-abstract-class delete mode 100644 t/t4018/php-abstract-class.ctx delete mode 100644 t/t4018/php-abstract-method delete mode 100644 t/t4018/php-abstract-method.ctx delete mode 100644 t/t4018/php-class delete mode 100644 t/t4018/php-class.ctx delete mode 100644 t/t4018/php-final-class delete mode 100644 t/t4018/php-final-class.ctx delete mode 100644 t/t4018/php-final-method delete mode 100644 t/t4018/php-final-method.ctx delete mode 100644 t/t4018/php-function delete mode 100644 t/t4018/php-function.ctx delete mode 100644 t/t4018/php-interface delete mode 100644 t/t4018/php-interface.ctx delete mode 100644 t/t4018/php-method delete mode 100644 t/t4018/php-method.ctx delete mode 100644 t/t4018/php-trait delete mode 100644 t/t4018/php-trait.ctx create mode 100755 t/t4018/php.sh delete mode 100644 t/t4018/python-async-def delete mode 100644 t/t4018/python-async-def.ctx delete mode 100644 t/t4018/python-class delete mode 100644 t/t4018/python-class.ctx delete mode 100644 t/t4018/python-def delete mode 100644 t/t4018/python-def.ctx delete mode 100644 t/t4018/python-indented-async-def delete mode 100644 t/t4018/python-indented-async-def.ctx delete mode 100644 t/t4018/python-indented-class delete mode 100644 t/t4018/python-indented-class.ctx delete mode 100644 t/t4018/python-indented-def delete mode 100644 t/t4018/python-indented-def.ctx create mode 100755 t/t4018/python.sh delete mode 100644 t/t4018/rust-fn delete mode 100644 t/t4018/rust-fn.ctx delete mode 100644 t/t4018/rust-impl delete mode 100644 t/t4018/rust-impl.ctx delete mode 100644 t/t4018/rust-macro-rules delete mode 100644 t/t4018/rust-macro-rules.ctx delete mode 100644 t/t4018/rust-struct delete mode 100644 t/t4018/rust-struct.ctx delete mode 100644 t/t4018/rust-trait delete mode 100644 t/t4018/rust-trait.ctx create mode 100755 t/t4018/rust.sh diff --git a/t/t4018-diff-funcname.sh b/t/t4018-diff-funcname.sh index d32c38ad1a..3ff34c13d7 100755 --- a/t/t4018-diff-funcname.sh +++ b/t/t4018-diff-funcname.sh @@ -61,33 +61,42 @@ test_expect_success 'last regexp must not be negated' ' test_i18ngrep ": Last expression must not be negated:" msg ' -test_expect_success 'setup hunk header tests' ' - for i in $diffpatterns - do - echo "$i-* diff=$i" - done > .gitattributes && - - # add all test files to the index - ( - cd "$TEST_DIRECTORY"/t4018 && - git --git-dir="$TRASH_DIRECTORY/.git" add . - ) && - - # place modified files in the worktree - for i in $(git ls-files) - do - sed -e "s/ChangeMe/IWasChanged/" <"$TEST_DIRECTORY/t4018/$i" >"$i" || return 1 - done -' +test_diff_funcname () { + desc=$1 + cat <&8 >arg.header && + cat <&9 >arg.test && + what=$(cat arg.what) && + + test_expect_success "setup: $desc" ' + cp arg.test "$what" && + cp arg.header expected && + git add "$what" && + sed -e "s/ChangeMe/IWasChanged/" <"$what" >tmp && + mv tmp "$what" + ' && + + test_expect_success "$desc" ' + git diff -U1 "$what" >diff && + sed -n -e "s/^.*@@\( \|$\)//p" actual && + test_cmp expected actual + ' +} -# check each individual file -for i in $(git ls-files -- ':!*.ctx') +for what in $diffpatterns do - test_expect_success "hunk header: $i" " - git diff -U1 $i >diff && - sed -n -e 's/^.*@@\( \|$\)//p' ctx && - test_cmp $i.ctx ctx - " + test="$TEST_DIRECTORY/t4018/$what.sh" + if ! test -e "$test" + then + test_expect_failure "$what: no tests" 'false' + continue + fi && + + test_expect_success "setup: hunk header for $what" ' + echo "$what diff=$what" >.gitattributes && + echo "$what" >arg.what + ' && + + . "$test" done test_done diff --git a/t/t4018/README b/t/t4018/README deleted file mode 100644 index 2cccf8c950..0000000000 --- a/t/t4018/README +++ /dev/null @@ -1,15 +0,0 @@ -How to write test cases -======================= - -Create test cases called "LANG-whatever" in this directory, where -"LANG" is e.g. the userdiff driver name, where "whatever" is a brief -description of the test. - -Insert the word "ChangeMe" (exactly this form) at a distance of -at least two lines from the line that must appear in the hunk header. - -The text that must appear in the hunk header must contains the word -"RIGHT" by convention. The "LANG-whatever.ctx" file contains what we -expect to appear in the hunk header. We munged the start of the line -to "@@ [...] @@" for ease of not having to hardcode the line numbers -and offsets. diff --git a/t/t4018/README.ctx b/t/t4018/README.ctx deleted file mode 100644 index cd79384b04..0000000000 --- a/t/t4018/README.ctx +++ /dev/null @@ -1 +0,0 @@ -description of the test. diff --git a/t/t4018/bash-arithmetic-function b/t/t4018/bash-arithmetic-function deleted file mode 100644 index c0b276cb50..0000000000 --- a/t/t4018/bash-arithmetic-function +++ /dev/null @@ -1,4 +0,0 @@ -RIGHT() (( - - ChangeMe = "$x" + "$y" -)) diff --git a/t/t4018/bash-arithmetic-function.ctx b/t/t4018/bash-arithmetic-function.ctx deleted file mode 100644 index 811eac7d2f..0000000000 --- a/t/t4018/bash-arithmetic-function.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT() diff --git a/t/t4018/bash-bashism-style-compact b/t/t4018/bash-bashism-style-compact deleted file mode 100644 index 1ca3126f61..0000000000 --- a/t/t4018/bash-bashism-style-compact +++ /dev/null @@ -1,6 +0,0 @@ -function RIGHT { - function InvalidSyntax{ - : - echo 'ChangeMe' - } -} diff --git a/t/t4018/bash-bashism-style-compact.ctx b/t/t4018/bash-bashism-style-compact.ctx deleted file mode 100644 index 4f8eac48c6..0000000000 --- a/t/t4018/bash-bashism-style-compact.ctx +++ /dev/null @@ -1 +0,0 @@ -function RIGHT { diff --git a/t/t4018/bash-bashism-style-function b/t/t4018/bash-bashism-style-function deleted file mode 100644 index f1de4fa831..0000000000 --- a/t/t4018/bash-bashism-style-function +++ /dev/null @@ -1,4 +0,0 @@ -function RIGHT { - : - echo 'ChangeMe' -} diff --git a/t/t4018/bash-bashism-style-function.ctx b/t/t4018/bash-bashism-style-function.ctx deleted file mode 100644 index 4f8eac48c6..0000000000 --- a/t/t4018/bash-bashism-style-function.ctx +++ /dev/null @@ -1 +0,0 @@ -function RIGHT { diff --git a/t/t4018/bash-bashism-style-whitespace b/t/t4018/bash-bashism-style-whitespace deleted file mode 100644 index ade85dd3a5..0000000000 --- a/t/t4018/bash-bashism-style-whitespace +++ /dev/null @@ -1,4 +0,0 @@ - function RIGHT ( ) { - - ChangeMe - } diff --git a/t/t4018/bash-bashism-style-whitespace.ctx b/t/t4018/bash-bashism-style-whitespace.ctx deleted file mode 100644 index 35dbd0220e..0000000000 --- a/t/t4018/bash-bashism-style-whitespace.ctx +++ /dev/null @@ -1 +0,0 @@ -function RIGHT ( ) { diff --git a/t/t4018/bash-conditional-function b/t/t4018/bash-conditional-function deleted file mode 100644 index c5949e829b..0000000000 --- a/t/t4018/bash-conditional-function +++ /dev/null @@ -1,4 +0,0 @@ -RIGHT() [[ \ - - "$a" > "$ChangeMe" -]] diff --git a/t/t4018/bash-conditional-function.ctx b/t/t4018/bash-conditional-function.ctx deleted file mode 100644 index 811eac7d2f..0000000000 --- a/t/t4018/bash-conditional-function.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT() diff --git a/t/t4018/bash-missing-parentheses b/t/t4018/bash-missing-parentheses deleted file mode 100644 index 8c8a05dd7a..0000000000 --- a/t/t4018/bash-missing-parentheses +++ /dev/null @@ -1,6 +0,0 @@ -function RIGHT { - functionInvalidSyntax { - : - echo 'ChangeMe' - } -} diff --git a/t/t4018/bash-missing-parentheses.ctx b/t/t4018/bash-missing-parentheses.ctx deleted file mode 100644 index 4f8eac48c6..0000000000 --- a/t/t4018/bash-missing-parentheses.ctx +++ /dev/null @@ -1 +0,0 @@ -function RIGHT { diff --git a/t/t4018/bash-mixed-style-compact b/t/t4018/bash-mixed-style-compact deleted file mode 100644 index d9364cba67..0000000000 --- a/t/t4018/bash-mixed-style-compact +++ /dev/null @@ -1,4 +0,0 @@ -function RIGHT(){ - : - echo 'ChangeMe' -} diff --git a/t/t4018/bash-mixed-style-compact.ctx b/t/t4018/bash-mixed-style-compact.ctx deleted file mode 100644 index bba11074eb..0000000000 --- a/t/t4018/bash-mixed-style-compact.ctx +++ /dev/null @@ -1 +0,0 @@ -function RIGHT(){ diff --git a/t/t4018/bash-mixed-style-function b/t/t4018/bash-mixed-style-function deleted file mode 100644 index 555f9b2466..0000000000 --- a/t/t4018/bash-mixed-style-function +++ /dev/null @@ -1,4 +0,0 @@ -function RIGHT() { - - ChangeMe -} diff --git a/t/t4018/bash-mixed-style-function.ctx b/t/t4018/bash-mixed-style-function.ctx deleted file mode 100644 index 922b87a4aa..0000000000 --- a/t/t4018/bash-mixed-style-function.ctx +++ /dev/null @@ -1 +0,0 @@ -function RIGHT() { diff --git a/t/t4018/bash-nested-functions b/t/t4018/bash-nested-functions deleted file mode 100644 index 2c9237ead4..0000000000 --- a/t/t4018/bash-nested-functions +++ /dev/null @@ -1,6 +0,0 @@ -outer() { - RIGHT() { - : - echo 'ChangeMe' - } -} diff --git a/t/t4018/bash-nested-functions.ctx b/t/t4018/bash-nested-functions.ctx deleted file mode 100644 index 811eac7d2f..0000000000 --- a/t/t4018/bash-nested-functions.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT() diff --git a/t/t4018/bash-other-characters b/t/t4018/bash-other-characters deleted file mode 100644 index a3f390d525..0000000000 --- a/t/t4018/bash-other-characters +++ /dev/null @@ -1,4 +0,0 @@ -_RIGHT_0n() { - - ChangeMe -} diff --git a/t/t4018/bash-other-characters.ctx b/t/t4018/bash-other-characters.ctx deleted file mode 100644 index 6a55317fdf..0000000000 --- a/t/t4018/bash-other-characters.ctx +++ /dev/null @@ -1 +0,0 @@ -_RIGHT_0n() diff --git a/t/t4018/bash-posix-style-compact b/t/t4018/bash-posix-style-compact deleted file mode 100644 index 045bd2029b..0000000000 --- a/t/t4018/bash-posix-style-compact +++ /dev/null @@ -1,4 +0,0 @@ -RIGHT(){ - - ChangeMe -} diff --git a/t/t4018/bash-posix-style-compact.ctx b/t/t4018/bash-posix-style-compact.ctx deleted file mode 100644 index 811eac7d2f..0000000000 --- a/t/t4018/bash-posix-style-compact.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT() diff --git a/t/t4018/bash-posix-style-function b/t/t4018/bash-posix-style-function deleted file mode 100644 index a4d144856e..0000000000 --- a/t/t4018/bash-posix-style-function +++ /dev/null @@ -1,4 +0,0 @@ -RIGHT() { - - ChangeMe -} diff --git a/t/t4018/bash-posix-style-function.ctx b/t/t4018/bash-posix-style-function.ctx deleted file mode 100644 index 811eac7d2f..0000000000 --- a/t/t4018/bash-posix-style-function.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT() diff --git a/t/t4018/bash-posix-style-whitespace b/t/t4018/bash-posix-style-whitespace deleted file mode 100644 index 4d984f0aa4..0000000000 --- a/t/t4018/bash-posix-style-whitespace +++ /dev/null @@ -1,4 +0,0 @@ - RIGHT ( ) { - - ChangeMe - } diff --git a/t/t4018/bash-posix-style-whitespace.ctx b/t/t4018/bash-posix-style-whitespace.ctx deleted file mode 100644 index 28f8698e14..0000000000 --- a/t/t4018/bash-posix-style-whitespace.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT ( ) diff --git a/t/t4018/bash-subshell-function b/t/t4018/bash-subshell-function deleted file mode 100644 index 80baa09484..0000000000 --- a/t/t4018/bash-subshell-function +++ /dev/null @@ -1,4 +0,0 @@ -RIGHT() ( - - ChangeMe=2 -) diff --git a/t/t4018/bash-subshell-function.ctx b/t/t4018/bash-subshell-function.ctx deleted file mode 100644 index 811eac7d2f..0000000000 --- a/t/t4018/bash-subshell-function.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT() diff --git a/t/t4018/bash-trailing-comment b/t/t4018/bash-trailing-comment deleted file mode 100644 index f1edbeda31..0000000000 --- a/t/t4018/bash-trailing-comment +++ /dev/null @@ -1,4 +0,0 @@ -RIGHT() { # Comment - - ChangeMe -} diff --git a/t/t4018/bash-trailing-comment.ctx b/t/t4018/bash-trailing-comment.ctx deleted file mode 100644 index 811eac7d2f..0000000000 --- a/t/t4018/bash-trailing-comment.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT() diff --git a/t/t4018/bash.sh b/t/t4018/bash.sh new file mode 100755 index 0000000000..69144d9144 --- /dev/null +++ b/t/t4018/bash.sh @@ -0,0 +1,160 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'bash: arithmetic function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT() +EOF_HUNK +RIGHT() (( + + ChangeMe = "$x" + "$y" +)) +EOF_TEST + +test_diff_funcname 'bash: bashism style compact' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +function RIGHT { +EOF_HUNK +function RIGHT { + function InvalidSyntax{ + : + echo 'ChangeMe' + } +} +EOF_TEST + +test_diff_funcname 'bash: bashism style function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +function RIGHT { +EOF_HUNK +function RIGHT { + : + echo 'ChangeMe' +} +EOF_TEST + +test_diff_funcname 'bash: bashism style whitespace' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +function RIGHT ( ) { +EOF_HUNK + function RIGHT ( ) { + + ChangeMe + } +EOF_TEST + +test_diff_funcname 'bash: conditional function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT() +EOF_HUNK +RIGHT() [[ \ + + "$a" > "$ChangeMe" +]] +EOF_TEST + +test_diff_funcname 'bash: missing parentheses' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +function RIGHT { +EOF_HUNK +function RIGHT { + functionInvalidSyntax { + : + echo 'ChangeMe' + } +} +EOF_TEST + +test_diff_funcname 'bash: mixed style compact' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +function RIGHT(){ +EOF_HUNK +function RIGHT(){ + : + echo 'ChangeMe' +} +EOF_TEST + +test_diff_funcname 'bash: mixed style function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +function RIGHT() { +EOF_HUNK +function RIGHT() { + + ChangeMe +} +EOF_TEST + +test_diff_funcname 'bash: nested functions' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT() +EOF_HUNK +outer() { + RIGHT() { + : + echo 'ChangeMe' + } +} +EOF_TEST + +test_diff_funcname 'bash: other characters' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +_RIGHT_0n() +EOF_HUNK +_RIGHT_0n() { + + ChangeMe +} +EOF_TEST + +test_diff_funcname 'bash: posix style compact' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT() +EOF_HUNK +RIGHT(){ + + ChangeMe +} +EOF_TEST + +test_diff_funcname 'bash: posix style function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT() +EOF_HUNK +RIGHT() { + + ChangeMe +} +EOF_TEST + +test_diff_funcname 'bash: posix style whitespace' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT ( ) +EOF_HUNK + RIGHT ( ) { + + ChangeMe + } +EOF_TEST + +test_diff_funcname 'bash: subshell function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT() +EOF_HUNK +RIGHT() ( + + ChangeMe=2 +) +EOF_TEST + +test_diff_funcname 'bash: trailing comment' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT() +EOF_HUNK +RIGHT() { # Comment + + ChangeMe +} +EOF_TEST diff --git a/t/t4018/cpp-c++-function b/t/t4018/cpp-c++-function deleted file mode 100644 index 9ee6bbef55..0000000000 --- a/t/t4018/cpp-c++-function +++ /dev/null @@ -1,4 +0,0 @@ -Item RIGHT::DoSomething( Args with_spaces ) -{ - ChangeMe; -} diff --git a/t/t4018/cpp-c++-function.ctx b/t/t4018/cpp-c++-function.ctx deleted file mode 100644 index 337b49dbb3..0000000000 --- a/t/t4018/cpp-c++-function.ctx +++ /dev/null @@ -1 +0,0 @@ -Item RIGHT::DoSomething( Args with_spaces ) diff --git a/t/t4018/cpp-class-constructor b/t/t4018/cpp-class-constructor deleted file mode 100644 index ec4f115c25..0000000000 --- a/t/t4018/cpp-class-constructor +++ /dev/null @@ -1,4 +0,0 @@ -Item::Item(int RIGHT) -{ - ChangeMe; -} diff --git a/t/t4018/cpp-class-constructor-mem-init b/t/t4018/cpp-class-constructor-mem-init deleted file mode 100644 index 49a69f37e1..0000000000 --- a/t/t4018/cpp-class-constructor-mem-init +++ /dev/null @@ -1,5 +0,0 @@ -Item::Item(int RIGHT) : - member(0) -{ - ChangeMe; -} diff --git a/t/t4018/cpp-class-constructor-mem-init.ctx b/t/t4018/cpp-class-constructor-mem-init.ctx deleted file mode 100644 index 6664b8b3d8..0000000000 --- a/t/t4018/cpp-class-constructor-mem-init.ctx +++ /dev/null @@ -1 +0,0 @@ -Item::Item(int RIGHT) : diff --git a/t/t4018/cpp-class-constructor.ctx b/t/t4018/cpp-class-constructor.ctx deleted file mode 100644 index 2dcadfc0ba..0000000000 --- a/t/t4018/cpp-class-constructor.ctx +++ /dev/null @@ -1 +0,0 @@ -Item::Item(int RIGHT) diff --git a/t/t4018/cpp-class-definition b/t/t4018/cpp-class-definition deleted file mode 100644 index 11b61da3b7..0000000000 --- a/t/t4018/cpp-class-definition +++ /dev/null @@ -1,4 +0,0 @@ -class RIGHT -{ - int ChangeMe; -}; diff --git a/t/t4018/cpp-class-definition-derived b/t/t4018/cpp-class-definition-derived deleted file mode 100644 index 3b98cd09ab..0000000000 --- a/t/t4018/cpp-class-definition-derived +++ /dev/null @@ -1,5 +0,0 @@ -class RIGHT : - public Baseclass -{ - int ChangeMe; -}; diff --git a/t/t4018/cpp-class-definition-derived.ctx b/t/t4018/cpp-class-definition-derived.ctx deleted file mode 100644 index 146f0a7b7c..0000000000 --- a/t/t4018/cpp-class-definition-derived.ctx +++ /dev/null @@ -1 +0,0 @@ -class RIGHT : diff --git a/t/t4018/cpp-class-definition.ctx b/t/t4018/cpp-class-definition.ctx deleted file mode 100644 index 54bff816d6..0000000000 --- a/t/t4018/cpp-class-definition.ctx +++ /dev/null @@ -1 +0,0 @@ -class RIGHT diff --git a/t/t4018/cpp-class-destructor b/t/t4018/cpp-class-destructor deleted file mode 100644 index 5487665096..0000000000 --- a/t/t4018/cpp-class-destructor +++ /dev/null @@ -1,4 +0,0 @@ -RIGHT::~RIGHT() -{ - ChangeMe; -} diff --git a/t/t4018/cpp-class-destructor.ctx b/t/t4018/cpp-class-destructor.ctx deleted file mode 100644 index 5390c17cf6..0000000000 --- a/t/t4018/cpp-class-destructor.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT::~RIGHT() diff --git a/t/t4018/cpp-function-returning-global-type b/t/t4018/cpp-function-returning-global-type deleted file mode 100644 index 1084d5990e..0000000000 --- a/t/t4018/cpp-function-returning-global-type +++ /dev/null @@ -1,4 +0,0 @@ -::Item get::it::RIGHT() -{ - ChangeMe; -} diff --git a/t/t4018/cpp-function-returning-global-type.ctx b/t/t4018/cpp-function-returning-global-type.ctx deleted file mode 100644 index 4dcdde25f4..0000000000 --- a/t/t4018/cpp-function-returning-global-type.ctx +++ /dev/null @@ -1 +0,0 @@ -::Item get::it::RIGHT() diff --git a/t/t4018/cpp-function-returning-nested b/t/t4018/cpp-function-returning-nested deleted file mode 100644 index d9750aa61a..0000000000 --- a/t/t4018/cpp-function-returning-nested +++ /dev/null @@ -1,5 +0,0 @@ -get::Item get::it::RIGHT() -{ - ChangeMe; -} - diff --git a/t/t4018/cpp-function-returning-nested.ctx b/t/t4018/cpp-function-returning-nested.ctx deleted file mode 100644 index 6ef73c8368..0000000000 --- a/t/t4018/cpp-function-returning-nested.ctx +++ /dev/null @@ -1 +0,0 @@ -get::Item get::it::RIGHT() diff --git a/t/t4018/cpp-function-returning-pointer b/t/t4018/cpp-function-returning-pointer deleted file mode 100644 index ef15657ea8..0000000000 --- a/t/t4018/cpp-function-returning-pointer +++ /dev/null @@ -1,4 +0,0 @@ -const char *get_it_RIGHT(char *ptr) -{ - ChangeMe; -} diff --git a/t/t4018/cpp-function-returning-pointer.ctx b/t/t4018/cpp-function-returning-pointer.ctx deleted file mode 100644 index bb0acce5c7..0000000000 --- a/t/t4018/cpp-function-returning-pointer.ctx +++ /dev/null @@ -1 +0,0 @@ -const char *get_it_RIGHT(char *ptr) diff --git a/t/t4018/cpp-function-returning-reference b/t/t4018/cpp-function-returning-reference deleted file mode 100644 index 01b051df70..0000000000 --- a/t/t4018/cpp-function-returning-reference +++ /dev/null @@ -1,4 +0,0 @@ -string& get::it::RIGHT(char *ptr) -{ - ChangeMe; -} diff --git a/t/t4018/cpp-function-returning-reference.ctx b/t/t4018/cpp-function-returning-reference.ctx deleted file mode 100644 index 76afe381fd..0000000000 --- a/t/t4018/cpp-function-returning-reference.ctx +++ /dev/null @@ -1 +0,0 @@ -string& get::it::RIGHT(char *ptr) diff --git a/t/t4018/cpp-gnu-style-function b/t/t4018/cpp-gnu-style-function deleted file mode 100644 index 08c7c7565a..0000000000 --- a/t/t4018/cpp-gnu-style-function +++ /dev/null @@ -1,5 +0,0 @@ -const char * -RIGHT(int arg) -{ - ChangeMe; -} diff --git a/t/t4018/cpp-gnu-style-function.ctx b/t/t4018/cpp-gnu-style-function.ctx deleted file mode 100644 index 1858287812..0000000000 --- a/t/t4018/cpp-gnu-style-function.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT(int arg) diff --git a/t/t4018/cpp-namespace-definition b/t/t4018/cpp-namespace-definition deleted file mode 100644 index 6749980241..0000000000 --- a/t/t4018/cpp-namespace-definition +++ /dev/null @@ -1,4 +0,0 @@ -namespace RIGHT -{ - ChangeMe; -} diff --git a/t/t4018/cpp-namespace-definition.ctx b/t/t4018/cpp-namespace-definition.ctx deleted file mode 100644 index 14c29c4638..0000000000 --- a/t/t4018/cpp-namespace-definition.ctx +++ /dev/null @@ -1 +0,0 @@ -namespace RIGHT diff --git a/t/t4018/cpp-operator-definition b/t/t4018/cpp-operator-definition deleted file mode 100644 index 1acd827159..0000000000 --- a/t/t4018/cpp-operator-definition +++ /dev/null @@ -1,4 +0,0 @@ -Value operator+(Value LEFT, Value RIGHT) -{ - ChangeMe; -} diff --git a/t/t4018/cpp-operator-definition.ctx b/t/t4018/cpp-operator-definition.ctx deleted file mode 100644 index 5b56778961..0000000000 --- a/t/t4018/cpp-operator-definition.ctx +++ /dev/null @@ -1 +0,0 @@ -Value operator+(Value LEFT, Value RIGHT) diff --git a/t/t4018/cpp-skip-access-specifiers b/t/t4018/cpp-skip-access-specifiers deleted file mode 100644 index 4d4a9dbb9d..0000000000 --- a/t/t4018/cpp-skip-access-specifiers +++ /dev/null @@ -1,8 +0,0 @@ -class RIGHT : public Baseclass -{ -public: -protected: -private: - void DoSomething(); - int ChangeMe; -}; diff --git a/t/t4018/cpp-skip-access-specifiers.ctx b/t/t4018/cpp-skip-access-specifiers.ctx deleted file mode 100644 index 075bcd883b..0000000000 --- a/t/t4018/cpp-skip-access-specifiers.ctx +++ /dev/null @@ -1 +0,0 @@ -class RIGHT : public Baseclass diff --git a/t/t4018/cpp-skip-comment-block b/t/t4018/cpp-skip-comment-block deleted file mode 100644 index 3800b9967a..0000000000 --- a/t/t4018/cpp-skip-comment-block +++ /dev/null @@ -1,9 +0,0 @@ -struct item RIGHT(int i) -// Do not -// pick up -/* these -** comments. -*/ -{ - ChangeMe; -} diff --git a/t/t4018/cpp-skip-comment-block.ctx b/t/t4018/cpp-skip-comment-block.ctx deleted file mode 100644 index 656c59893d..0000000000 --- a/t/t4018/cpp-skip-comment-block.ctx +++ /dev/null @@ -1 +0,0 @@ -struct item RIGHT(int i) diff --git a/t/t4018/cpp-skip-labels b/t/t4018/cpp-skip-labels deleted file mode 100644 index b9c10aba22..0000000000 --- a/t/t4018/cpp-skip-labels +++ /dev/null @@ -1,8 +0,0 @@ -void RIGHT (void) -{ -repeat: // C++ comment -next: /* C comment */ - do_something(); - - ChangeMe; -} diff --git a/t/t4018/cpp-skip-labels.ctx b/t/t4018/cpp-skip-labels.ctx deleted file mode 100644 index 6b0635f7f7..0000000000 --- a/t/t4018/cpp-skip-labels.ctx +++ /dev/null @@ -1 +0,0 @@ -void RIGHT (void) diff --git a/t/t4018/cpp-struct-definition b/t/t4018/cpp-struct-definition deleted file mode 100644 index 521c59fd15..0000000000 --- a/t/t4018/cpp-struct-definition +++ /dev/null @@ -1,9 +0,0 @@ -struct RIGHT { - unsigned - /* this bit field looks like a label and should not be picked up */ - decoy_bitfield: 2, - more : 1; - int filler; - - int ChangeMe; -}; diff --git a/t/t4018/cpp-struct-definition.ctx b/t/t4018/cpp-struct-definition.ctx deleted file mode 100644 index 48ed893279..0000000000 --- a/t/t4018/cpp-struct-definition.ctx +++ /dev/null @@ -1 +0,0 @@ -struct RIGHT { diff --git a/t/t4018/cpp-struct-single-line b/t/t4018/cpp-struct-single-line deleted file mode 100644 index a0de5fb800..0000000000 --- a/t/t4018/cpp-struct-single-line +++ /dev/null @@ -1,7 +0,0 @@ -void wrong() -{ -} - -struct RIGHT_iterator_tag {}; - -int ChangeMe; diff --git a/t/t4018/cpp-struct-single-line.ctx b/t/t4018/cpp-struct-single-line.ctx deleted file mode 100644 index e3bc9d5017..0000000000 --- a/t/t4018/cpp-struct-single-line.ctx +++ /dev/null @@ -1 +0,0 @@ -struct RIGHT_iterator_tag {}; diff --git a/t/t4018/cpp-template-function-definition b/t/t4018/cpp-template-function-definition deleted file mode 100644 index 0cdf5ba5bd..0000000000 --- a/t/t4018/cpp-template-function-definition +++ /dev/null @@ -1,4 +0,0 @@ -template int RIGHT(T arg) -{ - ChangeMe; -} diff --git a/t/t4018/cpp-template-function-definition.ctx b/t/t4018/cpp-template-function-definition.ctx deleted file mode 100644 index c9da39cf65..0000000000 --- a/t/t4018/cpp-template-function-definition.ctx +++ /dev/null @@ -1 +0,0 @@ -template int RIGHT(T arg) diff --git a/t/t4018/cpp-union-definition b/t/t4018/cpp-union-definition deleted file mode 100644 index 7ec94df697..0000000000 --- a/t/t4018/cpp-union-definition +++ /dev/null @@ -1,4 +0,0 @@ -union RIGHT { - double v; - int ChangeMe; -}; diff --git a/t/t4018/cpp-union-definition.ctx b/t/t4018/cpp-union-definition.ctx deleted file mode 100644 index 2fc7b54fb8..0000000000 --- a/t/t4018/cpp-union-definition.ctx +++ /dev/null @@ -1 +0,0 @@ -union RIGHT { diff --git a/t/t4018/cpp-void-c-function b/t/t4018/cpp-void-c-function deleted file mode 100644 index 153081e872..0000000000 --- a/t/t4018/cpp-void-c-function +++ /dev/null @@ -1,4 +0,0 @@ -void RIGHT (void) -{ - ChangeMe; -} diff --git a/t/t4018/cpp-void-c-function.ctx b/t/t4018/cpp-void-c-function.ctx deleted file mode 100644 index 6b0635f7f7..0000000000 --- a/t/t4018/cpp-void-c-function.ctx +++ /dev/null @@ -1 +0,0 @@ -void RIGHT (void) diff --git a/t/t4018/cpp.sh b/t/t4018/cpp.sh new file mode 100755 index 0000000000..185d40d5ef --- /dev/null +++ b/t/t4018/cpp.sh @@ -0,0 +1,239 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'cpp: c++ function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +Item RIGHT::DoSomething( Args with_spaces ) +EOF_HUNK +Item RIGHT::DoSomething( Args with_spaces ) +{ + ChangeMe; +} +EOF_TEST + +test_diff_funcname 'cpp: class constructor' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +Item::Item(int RIGHT) +EOF_HUNK +Item::Item(int RIGHT) +{ + ChangeMe; +} +EOF_TEST + +test_diff_funcname 'cpp: class constructor mem init' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +Item::Item(int RIGHT) : +EOF_HUNK +Item::Item(int RIGHT) : + member(0) +{ + ChangeMe; +} +EOF_TEST + +test_diff_funcname 'cpp: class definition' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +class RIGHT +EOF_HUNK +class RIGHT +{ + int ChangeMe; +}; +EOF_TEST + +test_diff_funcname 'cpp: class definition derived' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +class RIGHT : +EOF_HUNK +class RIGHT : + public Baseclass +{ + int ChangeMe; +}; +EOF_TEST + +test_diff_funcname 'cpp: class destructor' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT::~RIGHT() +EOF_HUNK +RIGHT::~RIGHT() +{ + ChangeMe; +} +EOF_TEST + +test_diff_funcname 'cpp: function returning global type' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +::Item get::it::RIGHT() +EOF_HUNK +::Item get::it::RIGHT() +{ + ChangeMe; +} +EOF_TEST + +test_diff_funcname 'cpp: function returning nested' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +get::Item get::it::RIGHT() +EOF_HUNK +get::Item get::it::RIGHT() +{ + ChangeMe; +} + +EOF_TEST + +test_diff_funcname 'cpp: function returning pointer' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +const char *get_it_RIGHT(char *ptr) +EOF_HUNK +const char *get_it_RIGHT(char *ptr) +{ + ChangeMe; +} +EOF_TEST + +test_diff_funcname 'cpp: function returning reference' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +string& get::it::RIGHT(char *ptr) +EOF_HUNK +string& get::it::RIGHT(char *ptr) +{ + ChangeMe; +} +EOF_TEST + +test_diff_funcname 'cpp: gnu style function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT(int arg) +EOF_HUNK +const char * +RIGHT(int arg) +{ + ChangeMe; +} +EOF_TEST + +test_diff_funcname 'cpp: namespace definition' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +namespace RIGHT +EOF_HUNK +namespace RIGHT +{ + ChangeMe; +} +EOF_TEST + +test_diff_funcname 'cpp: operator definition' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +Value operator+(Value LEFT, Value RIGHT) +EOF_HUNK +Value operator+(Value LEFT, Value RIGHT) +{ + ChangeMe; +} +EOF_TEST + +test_diff_funcname 'cpp: skip access specifiers' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +class RIGHT : public Baseclass +EOF_HUNK +class RIGHT : public Baseclass +{ +public: +protected: +private: + void DoSomething(); + int ChangeMe; +}; +EOF_TEST + +test_diff_funcname 'cpp: skip comment block' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +struct item RIGHT(int i) +EOF_HUNK +struct item RIGHT(int i) +// Do not +// pick up +/* these +** comments. +*/ +{ + ChangeMe; +} +EOF_TEST + +test_diff_funcname 'cpp: skip labels' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +void RIGHT (void) +EOF_HUNK +void RIGHT (void) +{ +repeat: // C++ comment +next: /* C comment */ + do_something(); + + ChangeMe; +} +EOF_TEST + +test_diff_funcname 'cpp: struct definition' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +struct RIGHT { +EOF_HUNK +struct RIGHT { + unsigned + /* this bit field looks like a label and should not be picked up */ + decoy_bitfield: 2, + more : 1; + int filler; + + int ChangeMe; +}; +EOF_TEST + +test_diff_funcname 'cpp: struct single line' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +struct RIGHT_iterator_tag {}; +EOF_HUNK +void wrong() +{ +} + +struct RIGHT_iterator_tag {}; + +int ChangeMe; +EOF_TEST + +test_diff_funcname 'cpp: template function definition' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +template int RIGHT(T arg) +EOF_HUNK +template int RIGHT(T arg) +{ + ChangeMe; +} +EOF_TEST + +test_diff_funcname 'cpp: union definition' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +union RIGHT { +EOF_HUNK +union RIGHT { + double v; + int ChangeMe; +}; +EOF_TEST + +test_diff_funcname 'cpp: void c function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +void RIGHT (void) +EOF_HUNK +void RIGHT (void) +{ + ChangeMe; +} +EOF_TEST diff --git a/t/t4018/css-attribute-value-selector b/t/t4018/css-attribute-value-selector deleted file mode 100644 index 918256b20c..0000000000 --- a/t/t4018/css-attribute-value-selector +++ /dev/null @@ -1,4 +0,0 @@ -[class*="RIGHT"] { - background : #000; - border : 10px ChangeMe #C6C6C6; -} diff --git a/t/t4018/css-attribute-value-selector.ctx b/t/t4018/css-attribute-value-selector.ctx deleted file mode 100644 index 7f8956251c..0000000000 --- a/t/t4018/css-attribute-value-selector.ctx +++ /dev/null @@ -1 +0,0 @@ -[class*="RIGHT"] { diff --git a/t/t4018/css-block-level-@-statements b/t/t4018/css-block-level-@-statements deleted file mode 100644 index d6755f2f3d..0000000000 --- a/t/t4018/css-block-level-@-statements +++ /dev/null @@ -1,10 +0,0 @@ -@keyframes RIGHT { - from { - background : #000; - border : 10px ChangeMe #C6C6C6; - } - to { - background : #fff; - border : 10px solid #C6C6C6; - } -} diff --git a/t/t4018/css-block-level-@-statements.ctx b/t/t4018/css-block-level-@-statements.ctx deleted file mode 100644 index 7f5e90468c..0000000000 --- a/t/t4018/css-block-level-@-statements.ctx +++ /dev/null @@ -1 +0,0 @@ -@keyframes RIGHT { diff --git a/t/t4018/css-brace-in-col-1 b/t/t4018/css-brace-in-col-1 deleted file mode 100644 index 7831577506..0000000000 --- a/t/t4018/css-brace-in-col-1 +++ /dev/null @@ -1,5 +0,0 @@ -RIGHT label.control-label -{ - margin-top: 10px!important; - border : 10px ChangeMe #C6C6C6; -} diff --git a/t/t4018/css-brace-in-col-1.ctx b/t/t4018/css-brace-in-col-1.ctx deleted file mode 100644 index 91a9105c6a..0000000000 --- a/t/t4018/css-brace-in-col-1.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT label.control-label diff --git a/t/t4018/css-class-selector b/t/t4018/css-class-selector deleted file mode 100644 index f790a0062f..0000000000 --- a/t/t4018/css-class-selector +++ /dev/null @@ -1,4 +0,0 @@ -.RIGHT { - background : #000; - border : 10px ChangeMe #C6C6C6; -} diff --git a/t/t4018/css-class-selector.ctx b/t/t4018/css-class-selector.ctx deleted file mode 100644 index ac7367d7f4..0000000000 --- a/t/t4018/css-class-selector.ctx +++ /dev/null @@ -1 +0,0 @@ -.RIGHT { diff --git a/t/t4018/css-colon-eol b/t/t4018/css-colon-eol deleted file mode 100644 index 5a30553d29..0000000000 --- a/t/t4018/css-colon-eol +++ /dev/null @@ -1,4 +0,0 @@ -RIGHT h1 { -color: -ChangeMe; -} diff --git a/t/t4018/css-colon-eol.ctx b/t/t4018/css-colon-eol.ctx deleted file mode 100644 index b68493b9b0..0000000000 --- a/t/t4018/css-colon-eol.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT h1 { diff --git a/t/t4018/css-colon-selector b/t/t4018/css-colon-selector deleted file mode 100644 index c6d71fb42d..0000000000 --- a/t/t4018/css-colon-selector +++ /dev/null @@ -1,5 +0,0 @@ -RIGHT a:hover { - margin-top: - 10px!important; - border : 10px ChangeMe #C6C6C6; -} diff --git a/t/t4018/css-colon-selector.ctx b/t/t4018/css-colon-selector.ctx deleted file mode 100644 index 00b1a5aefe..0000000000 --- a/t/t4018/css-colon-selector.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT a:hover { diff --git a/t/t4018/css-common b/t/t4018/css-common deleted file mode 100644 index 84ed754b33..0000000000 --- a/t/t4018/css-common +++ /dev/null @@ -1,4 +0,0 @@ -RIGHT label.control-label { - margin-top: 10px!important; - border : 10px ChangeMe #C6C6C6; -} diff --git a/t/t4018/css-common.ctx b/t/t4018/css-common.ctx deleted file mode 100644 index 43686b4081..0000000000 --- a/t/t4018/css-common.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT label.control-label { diff --git a/t/t4018/css-id-selector b/t/t4018/css-id-selector deleted file mode 100644 index 17c5111052..0000000000 --- a/t/t4018/css-id-selector +++ /dev/null @@ -1,4 +0,0 @@ -#RIGHT { - background : #000; - border : 10px ChangeMe #C6C6C6; -} diff --git a/t/t4018/css-id-selector.ctx b/t/t4018/css-id-selector.ctx deleted file mode 100644 index ce19f6d8dc..0000000000 --- a/t/t4018/css-id-selector.ctx +++ /dev/null @@ -1 +0,0 @@ -#RIGHT { diff --git a/t/t4018/css-long-selector-list b/t/t4018/css-long-selector-list deleted file mode 100644 index 7ccd25d9ed..0000000000 --- a/t/t4018/css-long-selector-list +++ /dev/null @@ -1,6 +0,0 @@ -p.header, -label.control-label, -div ul#RIGHT { - margin-top: 10px!important; - border : 10px ChangeMe #C6C6C6; -} diff --git a/t/t4018/css-long-selector-list.ctx b/t/t4018/css-long-selector-list.ctx deleted file mode 100644 index bc8d0fb62c..0000000000 --- a/t/t4018/css-long-selector-list.ctx +++ /dev/null @@ -1 +0,0 @@ -div ul#RIGHT { diff --git a/t/t4018/css-prop-sans-indent b/t/t4018/css-prop-sans-indent deleted file mode 100644 index a9e3c86b3c..0000000000 --- a/t/t4018/css-prop-sans-indent +++ /dev/null @@ -1,5 +0,0 @@ -RIGHT, label.control-label { -margin-top: 10px!important; -padding: 0; -border : 10px ChangeMe #C6C6C6; -} diff --git a/t/t4018/css-prop-sans-indent.ctx b/t/t4018/css-prop-sans-indent.ctx deleted file mode 100644 index cc880b2f44..0000000000 --- a/t/t4018/css-prop-sans-indent.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT, label.control-label { diff --git a/t/t4018/css-root-selector b/t/t4018/css-root-selector deleted file mode 100644 index 22b958e369..0000000000 --- a/t/t4018/css-root-selector +++ /dev/null @@ -1,4 +0,0 @@ -:RIGHT { - background : #000; - border : 10px ChangeMe #C6C6C6; -} diff --git a/t/t4018/css-root-selector.ctx b/t/t4018/css-root-selector.ctx deleted file mode 100644 index 3010cded2a..0000000000 --- a/t/t4018/css-root-selector.ctx +++ /dev/null @@ -1 +0,0 @@ -:RIGHT { diff --git a/t/t4018/css-short-selector-list b/t/t4018/css-short-selector-list deleted file mode 100644 index 6a0bdee336..0000000000 --- a/t/t4018/css-short-selector-list +++ /dev/null @@ -1,4 +0,0 @@ -label.control, div ul#RIGHT { - margin-top: 10px!important; - border : 10px ChangeMe #C6C6C6; -} diff --git a/t/t4018/css-short-selector-list.ctx b/t/t4018/css-short-selector-list.ctx deleted file mode 100644 index 9e5d87d126..0000000000 --- a/t/t4018/css-short-selector-list.ctx +++ /dev/null @@ -1 +0,0 @@ -label.control, div ul#RIGHT { diff --git a/t/t4018/css-trailing-space b/t/t4018/css-trailing-space deleted file mode 100644 index 32b5606c70..0000000000 --- a/t/t4018/css-trailing-space +++ /dev/null @@ -1,5 +0,0 @@ -RIGHT label.control-label { - margin:10px; - padding:10px; - border : 10px ChangeMe #C6C6C6; -} diff --git a/t/t4018/css-trailing-space.ctx b/t/t4018/css-trailing-space.ctx deleted file mode 100644 index 43686b4081..0000000000 --- a/t/t4018/css-trailing-space.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT label.control-label { diff --git a/t/t4018/css.sh b/t/t4018/css.sh new file mode 100755 index 0000000000..106a3de242 --- /dev/null +++ b/t/t4018/css.sh @@ -0,0 +1,146 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'css: attribute value selector' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +[class*="RIGHT"] { +EOF_HUNK +[class*="RIGHT"] { + background : #000; + border : 10px ChangeMe #C6C6C6; +} +EOF_TEST + +test_diff_funcname 'css: block level @ statements' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +@keyframes RIGHT { +EOF_HUNK +@keyframes RIGHT { + from { + background : #000; + border : 10px ChangeMe #C6C6C6; + } + to { + background : #fff; + border : 10px solid #C6C6C6; + } +} +EOF_TEST + +test_diff_funcname 'css: brace in col 1' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT label.control-label +EOF_HUNK +RIGHT label.control-label +{ + margin-top: 10px!important; + border : 10px ChangeMe #C6C6C6; +} +EOF_TEST + +test_diff_funcname 'css: class selector' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +.RIGHT { +EOF_HUNK +.RIGHT { + background : #000; + border : 10px ChangeMe #C6C6C6; +} +EOF_TEST + +test_diff_funcname 'css: colon eol' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT h1 { +EOF_HUNK +RIGHT h1 { +color: +ChangeMe; +} +EOF_TEST + +test_diff_funcname 'css: colon selector' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT a:hover { +EOF_HUNK +RIGHT a:hover { + margin-top: + 10px!important; + border : 10px ChangeMe #C6C6C6; +} +EOF_TEST + +test_diff_funcname 'css: common' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT label.control-label { +EOF_HUNK +RIGHT label.control-label { + margin-top: 10px!important; + border : 10px ChangeMe #C6C6C6; +} +EOF_TEST + +test_diff_funcname 'css: id selector' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +#RIGHT { +EOF_HUNK +#RIGHT { + background : #000; + border : 10px ChangeMe #C6C6C6; +} +EOF_TEST + +test_diff_funcname 'css: long selector list' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +div ul#RIGHT { +EOF_HUNK +p.header, +label.control-label, +div ul#RIGHT { + margin-top: 10px!important; + border : 10px ChangeMe #C6C6C6; +} +EOF_TEST + +test_diff_funcname 'css: prop sans indent' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT, label.control-label { +EOF_HUNK +RIGHT, label.control-label { +margin-top: 10px!important; +padding: 0; +border : 10px ChangeMe #C6C6C6; +} +EOF_TEST + +test_diff_funcname 'css: root selector' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +:RIGHT { +EOF_HUNK +:RIGHT { + background : #000; + border : 10px ChangeMe #C6C6C6; +} +EOF_TEST + +test_diff_funcname 'css: short selector list' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +label.control, div ul#RIGHT { +EOF_HUNK +label.control, div ul#RIGHT { + margin-top: 10px!important; + border : 10px ChangeMe #C6C6C6; +} +EOF_TEST + +test_diff_funcname 'css: trailing space' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT label.control-label { +EOF_HUNK +RIGHT label.control-label { + margin:10px; + padding:10px; + border : 10px ChangeMe #C6C6C6; +} +EOF_TEST diff --git a/t/t4018/custom1-pattern.ctx b/t/t4018/custom1-pattern.ctx deleted file mode 100644 index d1609cc9a6..0000000000 --- a/t/t4018/custom1-pattern.ctx +++ /dev/null @@ -1 +0,0 @@ -int special, RIGHT; diff --git a/t/t4018/custom1-pattern b/t/t4018/custom1.sh old mode 100644 new mode 100755 similarity index 71% rename from t/t4018/custom1-pattern rename to t/t4018/custom1.sh index e8fd59f884..f8bbccadb4 --- a/t/t4018/custom1-pattern +++ b/t/t4018/custom1.sh @@ -1,3 +1,12 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'custom1: pattern' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +int special, RIGHT; +EOF_HUNK public class Beer { int special, RIGHT; @@ -15,3 +24,4 @@ public class Beer + "99 bottles of beer on the wall.\n"); } } +EOF_TEST diff --git a/t/t4018/custom2-match-to-end-of-line b/t/t4018/custom2-match-to-end-of-line deleted file mode 100644 index f88ac318b7..0000000000 --- a/t/t4018/custom2-match-to-end-of-line +++ /dev/null @@ -1,8 +0,0 @@ -public class RIGHT_Beer -{ - int special; - public static void main(String args[]) - { - System.out.print("ChangeMe"); - } -} diff --git a/t/t4018/custom2-match-to-end-of-line.ctx b/t/t4018/custom2-match-to-end-of-line.ctx deleted file mode 100644 index 8294c6e49b..0000000000 --- a/t/t4018/custom2-match-to-end-of-line.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT_Beer diff --git a/t/t4018/custom2.sh b/t/t4018/custom2.sh new file mode 100755 index 0000000000..c68421f788 --- /dev/null +++ b/t/t4018/custom2.sh @@ -0,0 +1,18 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'custom2: match to end of line' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT_Beer +EOF_HUNK +public class RIGHT_Beer +{ + int special; + public static void main(String args[]) + { + System.out.print("ChangeMe"); + } +} +EOF_TEST diff --git a/t/t4018/custom3-alternation-in-pattern.ctx b/t/t4018/custom3-alternation-in-pattern.ctx deleted file mode 100644 index 2125474b68..0000000000 --- a/t/t4018/custom3-alternation-in-pattern.ctx +++ /dev/null @@ -1 +0,0 @@ -public static void main(String RIGHT[]) diff --git a/t/t4018/custom3-alternation-in-pattern b/t/t4018/custom3.sh old mode 100644 new mode 100755 similarity index 66% rename from t/t4018/custom3-alternation-in-pattern rename to t/t4018/custom3.sh index 5f3769c64f..07c5c134ff --- a/t/t4018/custom3-alternation-in-pattern +++ b/t/t4018/custom3.sh @@ -1,3 +1,12 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'custom3: alternation in pattern' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +public static void main(String RIGHT[]) +EOF_HUNK public class Beer { int special; @@ -15,3 +24,4 @@ public class Beer + "99 bottles of beer on the wall.\n"); } } +EOF_TEST diff --git a/t/t4018/dts-labels b/t/t4018/dts-labels deleted file mode 100644 index b21ef8737b..0000000000 --- a/t/t4018/dts-labels +++ /dev/null @@ -1,9 +0,0 @@ -/ { - label_1: node1@ff00 { - label2: RIGHT { - vendor,some-property; - - ChangeMe = <0x45-30>; - }; - }; -}; diff --git a/t/t4018/dts-labels.ctx b/t/t4018/dts-labels.ctx deleted file mode 100644 index 48d9373cab..0000000000 --- a/t/t4018/dts-labels.ctx +++ /dev/null @@ -1 +0,0 @@ -label2: RIGHT { diff --git a/t/t4018/dts-node-unitless b/t/t4018/dts-node-unitless deleted file mode 100644 index c5287d9141..0000000000 --- a/t/t4018/dts-node-unitless +++ /dev/null @@ -1,8 +0,0 @@ -/ { - label_1: node1 { - RIGHT { - prop-array = <1>, <4>; - ChangeMe = <0xffeedd00>; - }; - }; -}; diff --git a/t/t4018/dts-node-unitless.ctx b/t/t4018/dts-node-unitless.ctx deleted file mode 100644 index 82c8683fa1..0000000000 --- a/t/t4018/dts-node-unitless.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT { diff --git a/t/t4018/dts-nodes b/t/t4018/dts-nodes deleted file mode 100644 index 5a4334bb16..0000000000 --- a/t/t4018/dts-nodes +++ /dev/null @@ -1,8 +0,0 @@ -/ { - label_1: node1@ff00 { - RIGHT@deadf00,4000 { - #size-cells = <1>; - ChangeMe = <0xffeedd00>; - }; - }; -}; diff --git a/t/t4018/dts-nodes-boolean-prop b/t/t4018/dts-nodes-boolean-prop deleted file mode 100644 index afc6b5b404..0000000000 --- a/t/t4018/dts-nodes-boolean-prop +++ /dev/null @@ -1,9 +0,0 @@ -/ { - label_1: node1@ff00 { - RIGHT@deadf00,4000 { - boolean-prop1; - - ChangeMe; - }; - }; -}; diff --git a/t/t4018/dts-nodes-boolean-prop.ctx b/t/t4018/dts-nodes-boolean-prop.ctx deleted file mode 100644 index 3a0232d55d..0000000000 --- a/t/t4018/dts-nodes-boolean-prop.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT@deadf00,4000 { diff --git a/t/t4018/dts-nodes-comment1 b/t/t4018/dts-nodes-comment1 deleted file mode 100644 index 559dfce9b3..0000000000 --- a/t/t4018/dts-nodes-comment1 +++ /dev/null @@ -1,8 +0,0 @@ -/ { - label_1: node1@ff00 { - RIGHT@deadf00,4000 /* &a comment */ { - #size-cells = <1>; - ChangeMe = <0xffeedd00>; - }; - }; -}; diff --git a/t/t4018/dts-nodes-comment1.ctx b/t/t4018/dts-nodes-comment1.ctx deleted file mode 100644 index ec364600b1..0000000000 --- a/t/t4018/dts-nodes-comment1.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT@deadf00,4000 /* &a comment */ { diff --git a/t/t4018/dts-nodes-comment2 b/t/t4018/dts-nodes-comment2 deleted file mode 100644 index 27e9718b31..0000000000 --- a/t/t4018/dts-nodes-comment2 +++ /dev/null @@ -1,8 +0,0 @@ -/ { - label_1: node1@ff00 { - RIGHT@deadf00,4000 { /* a trailing comment */ - #size-cells = <1>; - ChangeMe = <0xffeedd00>; - }; - }; -}; diff --git a/t/t4018/dts-nodes-comment2.ctx b/t/t4018/dts-nodes-comment2.ctx deleted file mode 100644 index 75f0d75258..0000000000 --- a/t/t4018/dts-nodes-comment2.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT@deadf00,4000 { /* a trailing comment */ diff --git a/t/t4018/dts-nodes-multiline-prop b/t/t4018/dts-nodes-multiline-prop deleted file mode 100644 index 072d58b69d..0000000000 --- a/t/t4018/dts-nodes-multiline-prop +++ /dev/null @@ -1,13 +0,0 @@ -/ { - label_1: node1@ff00 { - RIGHT@deadf00,4000 { - multilineprop = <3>, - <4>, - <5>, - <6>, - <7>; - - ChangeMe = <0xffeedd00>; - }; - }; -}; diff --git a/t/t4018/dts-nodes-multiline-prop.ctx b/t/t4018/dts-nodes-multiline-prop.ctx deleted file mode 100644 index 3a0232d55d..0000000000 --- a/t/t4018/dts-nodes-multiline-prop.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT@deadf00,4000 { diff --git a/t/t4018/dts-nodes.ctx b/t/t4018/dts-nodes.ctx deleted file mode 100644 index 3a0232d55d..0000000000 --- a/t/t4018/dts-nodes.ctx +++ /dev/null @@ -1 +0,0 @@ -RIGHT@deadf00,4000 { diff --git a/t/t4018/dts-reference b/t/t4018/dts-reference deleted file mode 100644 index 8f0c87d863..0000000000 --- a/t/t4018/dts-reference +++ /dev/null @@ -1,9 +0,0 @@ -&label_1 { - TEST = <455>; -}; - -&RIGHT { - vendor,some-property; - - ChangeMe = <0x45-30>; -}; diff --git a/t/t4018/dts-reference.ctx b/t/t4018/dts-reference.ctx deleted file mode 100644 index c1e13409ee..0000000000 --- a/t/t4018/dts-reference.ctx +++ /dev/null @@ -1 +0,0 @@ -&RIGHT { diff --git a/t/t4018/dts-root b/t/t4018/dts-root deleted file mode 100644 index 4353b8220c..0000000000 --- a/t/t4018/dts-root +++ /dev/null @@ -1,5 +0,0 @@ -/ { RIGHT /* Technically just supposed to be a slash and brace */ - #size-cells = <1>; - - ChangeMe = <0xffeedd00>; -}; diff --git a/t/t4018/dts-root-comment b/t/t4018/dts-root-comment deleted file mode 100644 index 333a625c70..0000000000 --- a/t/t4018/dts-root-comment +++ /dev/null @@ -1,8 +0,0 @@ -/ { RIGHT /* Technically just supposed to be a slash and brace */ - #size-cells = <1>; - - /* This comment should be ignored */ - - some-property = <40+2>; - ChangeMe = <0xffeedd00>; -}; diff --git a/t/t4018/dts-root-comment.ctx b/t/t4018/dts-root-comment.ctx deleted file mode 100644 index 656053dd42..0000000000 --- a/t/t4018/dts-root-comment.ctx +++ /dev/null @@ -1 +0,0 @@ -/ { RIGHT /* Technically just supposed to be a slash and brace */ diff --git a/t/t4018/dts-root.ctx b/t/t4018/dts-root.ctx deleted file mode 100644 index 656053dd42..0000000000 --- a/t/t4018/dts-root.ctx +++ /dev/null @@ -1 +0,0 @@ -/ { RIGHT /* Technically just supposed to be a slash and brace */ diff --git a/t/t4018/dts.sh b/t/t4018/dts.sh new file mode 100755 index 0000000000..304c131d86 --- /dev/null +++ b/t/t4018/dts.sh @@ -0,0 +1,149 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'dts: labels' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +label2: RIGHT { +EOF_HUNK +/ { + label_1: node1@ff00 { + label2: RIGHT { + vendor,some-property; + + ChangeMe = <0x45-30>; + }; + }; +}; +EOF_TEST + +test_diff_funcname 'dts: node unitless' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT { +EOF_HUNK +/ { + label_1: node1 { + RIGHT { + prop-array = <1>, <4>; + ChangeMe = <0xffeedd00>; + }; + }; +}; +EOF_TEST + +test_diff_funcname 'dts: nodes' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT@deadf00,4000 { +EOF_HUNK +/ { + label_1: node1@ff00 { + RIGHT@deadf00,4000 { + #size-cells = <1>; + ChangeMe = <0xffeedd00>; + }; + }; +}; +EOF_TEST + +test_diff_funcname 'dts: nodes boolean prop' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT@deadf00,4000 { +EOF_HUNK +/ { + label_1: node1@ff00 { + RIGHT@deadf00,4000 { + boolean-prop1; + + ChangeMe; + }; + }; +}; +EOF_TEST + +test_diff_funcname 'dts: nodes comment1' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT@deadf00,4000 /* &a comment */ { +EOF_HUNK +/ { + label_1: node1@ff00 { + RIGHT@deadf00,4000 /* &a comment */ { + #size-cells = <1>; + ChangeMe = <0xffeedd00>; + }; + }; +}; +EOF_TEST + +test_diff_funcname 'dts: nodes comment2' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT@deadf00,4000 { /* a trailing comment */ +EOF_HUNK +/ { + label_1: node1@ff00 { + RIGHT@deadf00,4000 { /* a trailing comment */ + #size-cells = <1>; + ChangeMe = <0xffeedd00>; + }; + }; +}; +EOF_TEST + +test_diff_funcname 'dts: nodes multiline prop' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT@deadf00,4000 { +EOF_HUNK +/ { + label_1: node1@ff00 { + RIGHT@deadf00,4000 { + multilineprop = <3>, + <4>, + <5>, + <6>, + <7>; + + ChangeMe = <0xffeedd00>; + }; + }; +}; +EOF_TEST + +test_diff_funcname 'dts: reference' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +&RIGHT { +EOF_HUNK +&label_1 { + TEST = <455>; +}; + +&RIGHT { + vendor,some-property; + + ChangeMe = <0x45-30>; +}; +EOF_TEST + +test_diff_funcname 'dts: root' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +/ { RIGHT /* Technically just supposed to be a slash and brace */ +EOF_HUNK +/ { RIGHT /* Technically just supposed to be a slash and brace */ + #size-cells = <1>; + + ChangeMe = <0xffeedd00>; +}; +EOF_TEST + +test_diff_funcname 'dts: root comment' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +/ { RIGHT /* Technically just supposed to be a slash and brace */ +EOF_HUNK +/ { RIGHT /* Technically just supposed to be a slash and brace */ + #size-cells = <1>; + + /* This comment should be ignored */ + + some-property = <40+2>; + ChangeMe = <0xffeedd00>; +}; +EOF_TEST diff --git a/t/t4018/elixir-do-not-pick-end b/t/t4018/elixir-do-not-pick-end deleted file mode 100644 index fae08ba7e8..0000000000 --- a/t/t4018/elixir-do-not-pick-end +++ /dev/null @@ -1,5 +0,0 @@ -defmodule RIGHT do -end -# -# -# ChangeMe; do not pick up 'end' line diff --git a/t/t4018/elixir-do-not-pick-end.ctx b/t/t4018/elixir-do-not-pick-end.ctx deleted file mode 100644 index 8f28a7a689..0000000000 --- a/t/t4018/elixir-do-not-pick-end.ctx +++ /dev/null @@ -1 +0,0 @@ -defmodule RIGHT do diff --git a/t/t4018/elixir-ex-unit-test b/t/t4018/elixir-ex-unit-test deleted file mode 100644 index 0560a2b697..0000000000 --- a/t/t4018/elixir-ex-unit-test +++ /dev/null @@ -1,6 +0,0 @@ -defmodule Test do - test "RIGHT" do - assert true == true - assert ChangeMe - end -end diff --git a/t/t4018/elixir-ex-unit-test.ctx b/t/t4018/elixir-ex-unit-test.ctx deleted file mode 100644 index a55e3de2cc..0000000000 --- a/t/t4018/elixir-ex-unit-test.ctx +++ /dev/null @@ -1 +0,0 @@ -test "RIGHT" do diff --git a/t/t4018/elixir-function b/t/t4018/elixir-function deleted file mode 100644 index d452f495a7..0000000000 --- a/t/t4018/elixir-function +++ /dev/null @@ -1,5 +0,0 @@ -def function(RIGHT, arg) do - # comment - # comment - ChangeMe -end diff --git a/t/t4018/elixir-function.ctx b/t/t4018/elixir-function.ctx deleted file mode 100644 index 62aee9c8b1..0000000000 --- a/t/t4018/elixir-function.ctx +++ /dev/null @@ -1 +0,0 @@ -def function(RIGHT, arg) do diff --git a/t/t4018/elixir-macro b/t/t4018/elixir-macro deleted file mode 100644 index 4f925e9ad4..0000000000 --- a/t/t4018/elixir-macro +++ /dev/null @@ -1,5 +0,0 @@ -defmacro foo(RIGHT) do - # Code - # Code - ChangeMe -end diff --git a/t/t4018/elixir-macro.ctx b/t/t4018/elixir-macro.ctx deleted file mode 100644 index fc1d3b85e8..0000000000 --- a/t/t4018/elixir-macro.ctx +++ /dev/null @@ -1 +0,0 @@ -defmacro foo(RIGHT) do diff --git a/t/t4018/elixir-module b/t/t4018/elixir-module deleted file mode 100644 index 91a4e7aa20..0000000000 --- a/t/t4018/elixir-module +++ /dev/null @@ -1,9 +0,0 @@ -defmodule RIGHT do - @moduledoc """ - Foo bar - """ - - def ChangeMe(a) where is_map(a) do - a - end -end diff --git a/t/t4018/elixir-module-func b/t/t4018/elixir-module-func deleted file mode 100644 index c9910d0675..0000000000 --- a/t/t4018/elixir-module-func +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Foo do - def fun(RIGHT) do - # Code - # Code - # Code - ChangeMe - end -end diff --git a/t/t4018/elixir-module-func.ctx b/t/t4018/elixir-module-func.ctx deleted file mode 100644 index 8239214386..0000000000 --- a/t/t4018/elixir-module-func.ctx +++ /dev/null @@ -1 +0,0 @@ -def fun(RIGHT) do diff --git a/t/t4018/elixir-module.ctx b/t/t4018/elixir-module.ctx deleted file mode 100644 index 8f28a7a689..0000000000 --- a/t/t4018/elixir-module.ctx +++ /dev/null @@ -1 +0,0 @@ -defmodule RIGHT do diff --git a/t/t4018/elixir-nested-module b/t/t4018/elixir-nested-module deleted file mode 100644 index 771ebc5c42..0000000000 --- a/t/t4018/elixir-nested-module +++ /dev/null @@ -1,9 +0,0 @@ -defmodule MyApp.RIGHT do - @moduledoc """ - Foo bar - """ - - def ChangeMe(a) where is_map(a) do - a - end -end diff --git a/t/t4018/elixir-nested-module.ctx b/t/t4018/elixir-nested-module.ctx deleted file mode 100644 index 3ffbdd18b1..0000000000 --- a/t/t4018/elixir-nested-module.ctx +++ /dev/null @@ -1 +0,0 @@ -defmodule MyApp.RIGHT do diff --git a/t/t4018/elixir-private-function b/t/t4018/elixir-private-function deleted file mode 100644 index 1aabe33b7a..0000000000 --- a/t/t4018/elixir-private-function +++ /dev/null @@ -1,5 +0,0 @@ -defp function(RIGHT, arg) do - # comment - # comment - ChangeMe -end diff --git a/t/t4018/elixir-private-function.ctx b/t/t4018/elixir-private-function.ctx deleted file mode 100644 index 1c4eba44f7..0000000000 --- a/t/t4018/elixir-private-function.ctx +++ /dev/null @@ -1 +0,0 @@ -defp function(RIGHT, arg) do diff --git a/t/t4018/elixir-protocol b/t/t4018/elixir-protocol deleted file mode 100644 index 7d9173691e..0000000000 --- a/t/t4018/elixir-protocol +++ /dev/null @@ -1,6 +0,0 @@ -defprotocol RIGHT do - @doc """ - Calculates the size (and not the length!) of a data structure - """ - def size(data, ChangeMe) -end diff --git a/t/t4018/elixir-protocol-implementation b/t/t4018/elixir-protocol-implementation deleted file mode 100644 index f9234bbfc4..0000000000 --- a/t/t4018/elixir-protocol-implementation +++ /dev/null @@ -1,5 +0,0 @@ -defimpl RIGHT do - # Docs - # Docs - def foo(ChangeMe), do: :ok -end diff --git a/t/t4018/elixir-protocol-implementation.ctx b/t/t4018/elixir-protocol-implementation.ctx deleted file mode 100644 index efb758aea6..0000000000 --- a/t/t4018/elixir-protocol-implementation.ctx +++ /dev/null @@ -1 +0,0 @@ -defimpl RIGHT do diff --git a/t/t4018/elixir-protocol.ctx b/t/t4018/elixir-protocol.ctx deleted file mode 100644 index d0204e9f14..0000000000 --- a/t/t4018/elixir-protocol.ctx +++ /dev/null @@ -1 +0,0 @@ -defprotocol RIGHT do diff --git a/t/t4018/elixir.sh b/t/t4018/elixir.sh new file mode 100755 index 0000000000..6b09df9520 --- /dev/null +++ b/t/t4018/elixir.sh @@ -0,0 +1,127 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'elixir: do not pick end' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +defmodule RIGHT do +EOF_HUNK +defmodule RIGHT do +end +# +# +# ChangeMe; do not pick up 'end' line +EOF_TEST + +test_diff_funcname 'elixir: ex unit test' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +test "RIGHT" do +EOF_HUNK +defmodule Test do + test "RIGHT" do + assert true == true + assert ChangeMe + end +end +EOF_TEST + +test_diff_funcname 'elixir: function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +def function(RIGHT, arg) do +EOF_HUNK +def function(RIGHT, arg) do + # comment + # comment + ChangeMe +end +EOF_TEST + +test_diff_funcname 'elixir: macro' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +defmacro foo(RIGHT) do +EOF_HUNK +defmacro foo(RIGHT) do + # Code + # Code + ChangeMe +end +EOF_TEST + +test_diff_funcname 'elixir: module' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +defmodule RIGHT do +EOF_HUNK +defmodule RIGHT do + @moduledoc """ + Foo bar + """ + + def ChangeMe(a) where is_map(a) do + a + end +end +EOF_TEST + +test_diff_funcname 'elixir: module func' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +def fun(RIGHT) do +EOF_HUNK +defmodule Foo do + def fun(RIGHT) do + # Code + # Code + # Code + ChangeMe + end +end +EOF_TEST + +test_diff_funcname 'elixir: nested module' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +defmodule MyApp.RIGHT do +EOF_HUNK +defmodule MyApp.RIGHT do + @moduledoc """ + Foo bar + """ + + def ChangeMe(a) where is_map(a) do + a + end +end +EOF_TEST + +test_diff_funcname 'elixir: private function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +defp function(RIGHT, arg) do +EOF_HUNK +defp function(RIGHT, arg) do + # comment + # comment + ChangeMe +end +EOF_TEST + +test_diff_funcname 'elixir: protocol' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +defprotocol RIGHT do +EOF_HUNK +defprotocol RIGHT do + @doc """ + Calculates the size (and not the length!) of a data structure + """ + def size(data, ChangeMe) +end +EOF_TEST + +test_diff_funcname 'elixir: protocol implementation' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +defimpl RIGHT do +EOF_HUNK +defimpl RIGHT do + # Docs + # Docs + def foo(ChangeMe), do: :ok +end +EOF_TEST diff --git a/t/t4018/fortran-block-data b/t/t4018/fortran-block-data deleted file mode 100644 index 63d4e21d0a..0000000000 --- a/t/t4018/fortran-block-data +++ /dev/null @@ -1,5 +0,0 @@ - BLOCK DATA RIGHT - - COMMON /B/ C, ChangeMe - DATA C, ChangeMe / 2.0, 6.0 / - END diff --git a/t/t4018/fortran-block-data.ctx b/t/t4018/fortran-block-data.ctx deleted file mode 100644 index c3db084ccc..0000000000 --- a/t/t4018/fortran-block-data.ctx +++ /dev/null @@ -1 +0,0 @@ -BLOCK DATA RIGHT diff --git a/t/t4018/fortran-comment b/t/t4018/fortran-comment deleted file mode 100644 index 7b10d17658..0000000000 --- a/t/t4018/fortran-comment +++ /dev/null @@ -1,13 +0,0 @@ - module a - - contains - - ! subroutine wrong - subroutine RIGHT - ! subroutine wrong - - real ChangeMe - - end subroutine RIGHT - - end module a diff --git a/t/t4018/fortran-comment-keyword b/t/t4018/fortran-comment-keyword deleted file mode 100644 index e9206a5379..0000000000 --- a/t/t4018/fortran-comment-keyword +++ /dev/null @@ -1,14 +0,0 @@ - module a - - contains - - subroutine RIGHT (funcA, funcB) - - real funcA ! grid function a - real funcB ! grid function b - - real ChangeMe - - end subroutine RIGHT - - end module a diff --git a/t/t4018/fortran-comment-keyword.ctx b/t/t4018/fortran-comment-keyword.ctx deleted file mode 100644 index 0b9220b355..0000000000 --- a/t/t4018/fortran-comment-keyword.ctx +++ /dev/null @@ -1 +0,0 @@ -subroutine RIGHT (funcA, funcB) diff --git a/t/t4018/fortran-comment-legacy b/t/t4018/fortran-comment-legacy deleted file mode 100644 index 53cd062c1e..0000000000 --- a/t/t4018/fortran-comment-legacy +++ /dev/null @@ -1,13 +0,0 @@ - module a - - contains - -C subroutine wrong - subroutine RIGHT -C subroutine wrong - - real ChangeMe - - end subroutine RIGHT - - end module a diff --git a/t/t4018/fortran-comment-legacy-star b/t/t4018/fortran-comment-legacy-star deleted file mode 100644 index 2cbcdc3d8a..0000000000 --- a/t/t4018/fortran-comment-legacy-star +++ /dev/null @@ -1,13 +0,0 @@ - module a - - contains - -* subroutine wrong - subroutine RIGHT -* subroutine wrong - - real ChangeMe - - end subroutine RIGHT - - end module a diff --git a/t/t4018/fortran-comment-legacy-star.ctx b/t/t4018/fortran-comment-legacy-star.ctx deleted file mode 100644 index 6a34203f80..0000000000 --- a/t/t4018/fortran-comment-legacy-star.ctx +++ /dev/null @@ -1 +0,0 @@ -subroutine RIGHT diff --git a/t/t4018/fortran-comment-legacy.ctx b/t/t4018/fortran-comment-legacy.ctx deleted file mode 100644 index 6a34203f80..0000000000 --- a/t/t4018/fortran-comment-legacy.ctx +++ /dev/null @@ -1 +0,0 @@ -subroutine RIGHT diff --git a/t/t4018/fortran-comment.ctx b/t/t4018/fortran-comment.ctx deleted file mode 100644 index 6a34203f80..0000000000 --- a/t/t4018/fortran-comment.ctx +++ /dev/null @@ -1 +0,0 @@ -subroutine RIGHT diff --git a/t/t4018/fortran-external-function b/t/t4018/fortran-external-function deleted file mode 100644 index 5a2d85d3aa..0000000000 --- a/t/t4018/fortran-external-function +++ /dev/null @@ -1,9 +0,0 @@ -function RIGHT(a, b) result(c) - -integer, intent(in) :: ChangeMe -integer, intent(in) :: b -integer, intent(out) :: c - -c = a+b - -end function RIGHT diff --git a/t/t4018/fortran-external-function.ctx b/t/t4018/fortran-external-function.ctx deleted file mode 100644 index 56ec4d8eca..0000000000 --- a/t/t4018/fortran-external-function.ctx +++ /dev/null @@ -1 +0,0 @@ -function RIGHT(a, b) result(c) diff --git a/t/t4018/fortran-external-subroutine b/t/t4018/fortran-external-subroutine deleted file mode 100644 index 4ce85fea13..0000000000 --- a/t/t4018/fortran-external-subroutine +++ /dev/null @@ -1,5 +0,0 @@ -subroutine RIGHT - -real ChangeMe - -end subroutine RIGHT diff --git a/t/t4018/fortran-external-subroutine.ctx b/t/t4018/fortran-external-subroutine.ctx deleted file mode 100644 index 6a34203f80..0000000000 --- a/t/t4018/fortran-external-subroutine.ctx +++ /dev/null @@ -1 +0,0 @@ -subroutine RIGHT diff --git a/t/t4018/fortran-module b/t/t4018/fortran-module deleted file mode 100644 index c4b737dac3..0000000000 --- a/t/t4018/fortran-module +++ /dev/null @@ -1,5 +0,0 @@ -module RIGHT - -use ChangeMe - -end module RIGHT diff --git a/t/t4018/fortran-module-procedure b/t/t4018/fortran-module-procedure deleted file mode 100644 index 1ce6d854c2..0000000000 --- a/t/t4018/fortran-module-procedure +++ /dev/null @@ -1,13 +0,0 @@ - module RIGHT - - implicit none - private - - interface letters ! generic interface - module procedure aaaa, & - bbbb, & - ChangeMe, & - dddd - end interface - -end module RIGHT diff --git a/t/t4018/fortran-module-procedure.ctx b/t/t4018/fortran-module-procedure.ctx deleted file mode 100644 index 4f5ff2e4b8..0000000000 --- a/t/t4018/fortran-module-procedure.ctx +++ /dev/null @@ -1 +0,0 @@ -module RIGHT diff --git a/t/t4018/fortran-module.ctx b/t/t4018/fortran-module.ctx deleted file mode 100644 index 4f5ff2e4b8..0000000000 --- a/t/t4018/fortran-module.ctx +++ /dev/null @@ -1 +0,0 @@ -module RIGHT diff --git a/t/t4018/fortran-program b/t/t4018/fortran-program deleted file mode 100644 index 4616895e4b..0000000000 --- a/t/t4018/fortran-program +++ /dev/null @@ -1,5 +0,0 @@ -program RIGHT - -call ChangeMe - -end program RIGHT diff --git a/t/t4018/fortran-program.ctx b/t/t4018/fortran-program.ctx deleted file mode 100644 index c4e844df30..0000000000 --- a/t/t4018/fortran-program.ctx +++ /dev/null @@ -1 +0,0 @@ -program RIGHT diff --git a/t/t4018/fortran.sh b/t/t4018/fortran.sh new file mode 100755 index 0000000000..7b0c6789d3 --- /dev/null +++ b/t/t4018/fortran.sh @@ -0,0 +1,159 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'fortran: block data' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +BLOCK DATA RIGHT +EOF_HUNK + BLOCK DATA RIGHT + + COMMON /B/ C, ChangeMe + DATA C, ChangeMe / 2.0, 6.0 / + END +EOF_TEST + +test_diff_funcname 'fortran: comment' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +subroutine RIGHT +EOF_HUNK + module a + + contains + + ! subroutine wrong + subroutine RIGHT + ! subroutine wrong + + real ChangeMe + + end subroutine RIGHT + + end module a +EOF_TEST + +test_diff_funcname 'fortran: comment keyword' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +subroutine RIGHT (funcA, funcB) +EOF_HUNK + module a + + contains + + subroutine RIGHT (funcA, funcB) + + real funcA ! grid function a + real funcB ! grid function b + + real ChangeMe + + end subroutine RIGHT + + end module a +EOF_TEST + +test_diff_funcname 'fortran: comment legacy' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +subroutine RIGHT +EOF_HUNK + module a + + contains + +C subroutine wrong + subroutine RIGHT +C subroutine wrong + + real ChangeMe + + end subroutine RIGHT + + end module a +EOF_TEST + +test_diff_funcname 'fortran: comment legacy star' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +subroutine RIGHT +EOF_HUNK + module a + + contains + +* subroutine wrong + subroutine RIGHT +* subroutine wrong + + real ChangeMe + + end subroutine RIGHT + + end module a +EOF_TEST + +test_diff_funcname 'fortran: external function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +function RIGHT(a, b) result(c) +EOF_HUNK +function RIGHT(a, b) result(c) + +integer, intent(in) :: ChangeMe +integer, intent(in) :: b +integer, intent(out) :: c + +c = a+b + +end function RIGHT +EOF_TEST + +test_diff_funcname 'fortran: external subroutine' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +subroutine RIGHT +EOF_HUNK +subroutine RIGHT + +real ChangeMe + +end subroutine RIGHT +EOF_TEST + +test_diff_funcname 'fortran: module' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +module RIGHT +EOF_HUNK +module RIGHT + +use ChangeMe + +end module RIGHT +EOF_TEST + +test_diff_funcname 'fortran: module procedure' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +module RIGHT +EOF_HUNK + module RIGHT + + implicit none + private + + interface letters ! generic interface + module procedure aaaa, & + bbbb, & + ChangeMe, & + dddd + end interface + +end module RIGHT +EOF_TEST + +test_diff_funcname 'fortran: program' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +program RIGHT +EOF_HUNK +program RIGHT + +call ChangeMe + +end program RIGHT +EOF_TEST diff --git a/t/t4018/fountain-scene b/t/t4018/fountain-scene deleted file mode 100644 index 6b3257d680..0000000000 --- a/t/t4018/fountain-scene +++ /dev/null @@ -1,4 +0,0 @@ -EXT. STREET RIGHT OUTSIDE - DAY - -CHARACTER -You didn't say the magic phrase, "ChangeMe". diff --git a/t/t4018/fountain-scene.ctx b/t/t4018/fountain-scene.ctx deleted file mode 100644 index bf10171418..0000000000 --- a/t/t4018/fountain-scene.ctx +++ /dev/null @@ -1 +0,0 @@ -EXT. STREET RIGHT OUTSIDE - DAY diff --git a/t/t4018/fountain.sh b/t/t4018/fountain.sh new file mode 100755 index 0000000000..02b44d6a3f --- /dev/null +++ b/t/t4018/fountain.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'fountain: scene' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +EXT. STREET RIGHT OUTSIDE - DAY +EOF_HUNK +EXT. STREET RIGHT OUTSIDE - DAY + +CHARACTER +You didn't say the magic phrase, "ChangeMe". +EOF_TEST diff --git a/t/t4018/golang-complex-function b/t/t4018/golang-complex-function deleted file mode 100644 index e057dcefed..0000000000 --- a/t/t4018/golang-complex-function +++ /dev/null @@ -1,8 +0,0 @@ -type Test struct { - a Type -} - -func (t *Test) RIGHT(a Type) (Type, error) { - t.a = a - return ChangeMe, nil -} diff --git a/t/t4018/golang-complex-function.ctx b/t/t4018/golang-complex-function.ctx deleted file mode 100644 index 8e8d5582ff..0000000000 --- a/t/t4018/golang-complex-function.ctx +++ /dev/null @@ -1 +0,0 @@ -func (t *Test) RIGHT(a Type) (Type, error) { diff --git a/t/t4018/golang-func b/t/t4018/golang-func deleted file mode 100644 index 8e9c9ac7c3..0000000000 --- a/t/t4018/golang-func +++ /dev/null @@ -1,4 +0,0 @@ -func RIGHT() { - a := 5 - b := ChangeMe -} diff --git a/t/t4018/golang-func.ctx b/t/t4018/golang-func.ctx deleted file mode 100644 index 88bc823813..0000000000 --- a/t/t4018/golang-func.ctx +++ /dev/null @@ -1 +0,0 @@ -func RIGHT() { diff --git a/t/t4018/golang-interface b/t/t4018/golang-interface deleted file mode 100644 index 553bedec96..0000000000 --- a/t/t4018/golang-interface +++ /dev/null @@ -1,4 +0,0 @@ -type RIGHT interface { - a() Type - b() ChangeMe -} diff --git a/t/t4018/golang-interface.ctx b/t/t4018/golang-interface.ctx deleted file mode 100644 index 2d07f5a383..0000000000 --- a/t/t4018/golang-interface.ctx +++ /dev/null @@ -1 +0,0 @@ -type RIGHT interface { diff --git a/t/t4018/golang-long-func b/t/t4018/golang-long-func deleted file mode 100644 index ac3a77b5c4..0000000000 --- a/t/t4018/golang-long-func +++ /dev/null @@ -1,5 +0,0 @@ -func RIGHT(aVeryVeryVeryLongVariableName AVeryVeryVeryLongType, - anotherLongVariableName AnotherLongType) { - a := 5 - b := ChangeMe -} diff --git a/t/t4018/golang-long-func.ctx b/t/t4018/golang-long-func.ctx deleted file mode 100644 index 25635e712e..0000000000 --- a/t/t4018/golang-long-func.ctx +++ /dev/null @@ -1 +0,0 @@ -func RIGHT(aVeryVeryVeryLongVariableName AVeryVeryVeryLongType, diff --git a/t/t4018/golang-struct b/t/t4018/golang-struct deleted file mode 100644 index 5deda77fee..0000000000 --- a/t/t4018/golang-struct +++ /dev/null @@ -1,4 +0,0 @@ -type RIGHT struct { - a Type - b ChangeMe -} diff --git a/t/t4018/golang-struct.ctx b/t/t4018/golang-struct.ctx deleted file mode 100644 index 8a1240699d..0000000000 --- a/t/t4018/golang-struct.ctx +++ /dev/null @@ -1 +0,0 @@ -type RIGHT struct { diff --git a/t/t4018/golang.sh b/t/t4018/golang.sh new file mode 100755 index 0000000000..bf22f58c12 --- /dev/null +++ b/t/t4018/golang.sh @@ -0,0 +1,59 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'golang: complex function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +func (t *Test) RIGHT(a Type) (Type, error) { +EOF_HUNK +type Test struct { + a Type +} + +func (t *Test) RIGHT(a Type) (Type, error) { + t.a = a + return ChangeMe, nil +} +EOF_TEST + +test_diff_funcname 'golang: func' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +func RIGHT() { +EOF_HUNK +func RIGHT() { + a := 5 + b := ChangeMe +} +EOF_TEST + +test_diff_funcname 'golang: interface' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +type RIGHT interface { +EOF_HUNK +type RIGHT interface { + a() Type + b() ChangeMe +} +EOF_TEST + +test_diff_funcname 'golang: long func' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +func RIGHT(aVeryVeryVeryLongVariableName AVeryVeryVeryLongType, +EOF_HUNK +func RIGHT(aVeryVeryVeryLongVariableName AVeryVeryVeryLongType, + anotherLongVariableName AnotherLongType) { + a := 5 + b := ChangeMe +} +EOF_TEST + +test_diff_funcname 'golang: struct' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +type RIGHT struct { +EOF_HUNK +type RIGHT struct { + a Type + b ChangeMe +} +EOF_TEST diff --git a/t/t4018/java-class-member-function b/t/t4018/java-class-member-function deleted file mode 100644 index 298bc7a71b..0000000000 --- a/t/t4018/java-class-member-function +++ /dev/null @@ -1,8 +0,0 @@ -public class Beer -{ - int special; - public static void main(String RIGHT[]) - { - System.out.print("ChangeMe"); - } -} diff --git a/t/t4018/java-class-member-function.ctx b/t/t4018/java-class-member-function.ctx deleted file mode 100644 index 2125474b68..0000000000 --- a/t/t4018/java-class-member-function.ctx +++ /dev/null @@ -1 +0,0 @@ -public static void main(String RIGHT[]) diff --git a/t/t4018/java.sh b/t/t4018/java.sh new file mode 100755 index 0000000000..c89cf2f9d8 --- /dev/null +++ b/t/t4018/java.sh @@ -0,0 +1,18 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'java: class member function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +public static void main(String RIGHT[]) +EOF_HUNK +public class Beer +{ + int special; + public static void main(String RIGHT[]) + { + System.out.print("ChangeMe"); + } +} +EOF_TEST diff --git a/t/t4018/markdown-heading-indented b/t/t4018/markdown-heading-indented deleted file mode 100644 index 1991c2bd45..0000000000 --- a/t/t4018/markdown-heading-indented +++ /dev/null @@ -1,6 +0,0 @@ -Indented headings are allowed, as long as the indent is no more than 3 spaces. - - ### RIGHT - -- something -- ChangeMe diff --git a/t/t4018/markdown-heading-indented.ctx b/t/t4018/markdown-heading-indented.ctx deleted file mode 100644 index 5938336743..0000000000 --- a/t/t4018/markdown-heading-indented.ctx +++ /dev/null @@ -1 +0,0 @@ - ### RIGHT diff --git a/t/t4018/markdown-heading-non-headings b/t/t4018/markdown-heading-non-headings deleted file mode 100644 index c479c1a3f1..0000000000 --- a/t/t4018/markdown-heading-non-headings +++ /dev/null @@ -1,17 +0,0 @@ -Headings can be right next to other lines of the file: -# RIGHT -Indents of four or more spaces make a code block: - - # code comment, not heading - -If there's no space after the final hash, it's not a heading: - -#hashtag - -Sequences of more than 6 hashes don't make a heading: - -####### over-enthusiastic heading - -So the detected heading should be right up at the start of this file. - -ChangeMe diff --git a/t/t4018/markdown-heading-non-headings.ctx b/t/t4018/markdown-heading-non-headings.ctx deleted file mode 100644 index 7e2165be6e..0000000000 --- a/t/t4018/markdown-heading-non-headings.ctx +++ /dev/null @@ -1 +0,0 @@ -# RIGHT diff --git a/t/t4018/markdown.sh b/t/t4018/markdown.sh new file mode 100755 index 0000000000..3e1c79b139 --- /dev/null +++ b/t/t4018/markdown.sh @@ -0,0 +1,39 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'markdown: heading indented' \ + 8<<\EOF_HUNK 9<<\EOF_TEST + ### RIGHT +EOF_HUNK +Indented headings are allowed, as long as the indent is no more than 3 spaces. + + ### RIGHT + +- something +- ChangeMe +EOF_TEST + +test_diff_funcname 'markdown: heading non headings' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +# RIGHT +EOF_HUNK +Headings can be right next to other lines of the file: +# RIGHT +Indents of four or more spaces make a code block: + + # code comment, not heading + +If there's no space after the final hash, it's not a heading: + +#hashtag + +Sequences of more than 6 hashes don't make a heading: + +####### over-enthusiastic heading + +So the detected heading should be right up at the start of this file. + +ChangeMe +EOF_TEST diff --git a/t/t4018/matlab-class-definition b/t/t4018/matlab-class-definition deleted file mode 100644 index 84daedfb4e..0000000000 --- a/t/t4018/matlab-class-definition +++ /dev/null @@ -1,5 +0,0 @@ -classdef RIGHT - properties - ChangeMe - end -end diff --git a/t/t4018/matlab-class-definition.ctx b/t/t4018/matlab-class-definition.ctx deleted file mode 100644 index 5dd5b45628..0000000000 --- a/t/t4018/matlab-class-definition.ctx +++ /dev/null @@ -1 +0,0 @@ -classdef RIGHT diff --git a/t/t4018/matlab-function b/t/t4018/matlab-function deleted file mode 100644 index 897a9b13ff..0000000000 --- a/t/t4018/matlab-function +++ /dev/null @@ -1,4 +0,0 @@ -function y = RIGHT() -x = 5; -y = ChangeMe + x; -end diff --git a/t/t4018/matlab-function.ctx b/t/t4018/matlab-function.ctx deleted file mode 100644 index 72d2350b13..0000000000 --- a/t/t4018/matlab-function.ctx +++ /dev/null @@ -1 +0,0 @@ -function y = RIGHT() diff --git a/t/t4018/matlab-octave-section-1 b/t/t4018/matlab-octave-section-1 deleted file mode 100644 index 3bb6c4670e..0000000000 --- a/t/t4018/matlab-octave-section-1 +++ /dev/null @@ -1,3 +0,0 @@ -%%% RIGHT section -# this is octave script -ChangeMe = 1; diff --git a/t/t4018/matlab-octave-section-1.ctx b/t/t4018/matlab-octave-section-1.ctx deleted file mode 100644 index ca9b349f94..0000000000 --- a/t/t4018/matlab-octave-section-1.ctx +++ /dev/null @@ -1 +0,0 @@ -%%% RIGHT section diff --git a/t/t4018/matlab-octave-section-2 b/t/t4018/matlab-octave-section-2 deleted file mode 100644 index ab2980f7f2..0000000000 --- a/t/t4018/matlab-octave-section-2 +++ /dev/null @@ -1,3 +0,0 @@ -## RIGHT section -# this is octave script -ChangeMe = 1; diff --git a/t/t4018/matlab-octave-section-2.ctx b/t/t4018/matlab-octave-section-2.ctx deleted file mode 100644 index 5cbb77faf5..0000000000 --- a/t/t4018/matlab-octave-section-2.ctx +++ /dev/null @@ -1 +0,0 @@ -## RIGHT section diff --git a/t/t4018/matlab-section b/t/t4018/matlab-section deleted file mode 100644 index 5ea59a5de0..0000000000 --- a/t/t4018/matlab-section +++ /dev/null @@ -1,3 +0,0 @@ -%% RIGHT section -% this is understood by both matlab and octave -ChangeMe = 1; diff --git a/t/t4018/matlab-section.ctx b/t/t4018/matlab-section.ctx deleted file mode 100644 index e83fee6f4d..0000000000 --- a/t/t4018/matlab-section.ctx +++ /dev/null @@ -1 +0,0 @@ -%% RIGHT section diff --git a/t/t4018/matlab.sh b/t/t4018/matlab.sh new file mode 100755 index 0000000000..f62289148e --- /dev/null +++ b/t/t4018/matlab.sh @@ -0,0 +1,52 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'matlab: class definition' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +classdef RIGHT +EOF_HUNK +classdef RIGHT + properties + ChangeMe + end +end +EOF_TEST + +test_diff_funcname 'matlab: function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +function y = RIGHT() +EOF_HUNK +function y = RIGHT() +x = 5; +y = ChangeMe + x; +end +EOF_TEST + +test_diff_funcname 'matlab: octave section 1' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +%%% RIGHT section +EOF_HUNK +%%% RIGHT section +# this is octave script +ChangeMe = 1; +EOF_TEST + +test_diff_funcname 'matlab: octave section 2' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +## RIGHT section +EOF_HUNK +## RIGHT section +# this is octave script +ChangeMe = 1; +EOF_TEST + +test_diff_funcname 'matlab: section' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +%% RIGHT section +EOF_HUNK +%% RIGHT section +% this is understood by both matlab and octave +ChangeMe = 1; +EOF_TEST diff --git a/t/t4018/perl-skip-end-of-heredoc b/t/t4018/perl-skip-end-of-heredoc deleted file mode 100644 index c22d39b256..0000000000 --- a/t/t4018/perl-skip-end-of-heredoc +++ /dev/null @@ -1,8 +0,0 @@ -sub RIGHTwithheredocument { - print <<"EOF" -decoy here-doc -EOF - # some lines of context - # to pad it out - print "ChangeMe\n"; -} diff --git a/t/t4018/perl-skip-end-of-heredoc.ctx b/t/t4018/perl-skip-end-of-heredoc.ctx deleted file mode 100644 index c15f4b78bd..0000000000 --- a/t/t4018/perl-skip-end-of-heredoc.ctx +++ /dev/null @@ -1 +0,0 @@ -sub RIGHTwithheredocument { diff --git a/t/t4018/perl-skip-forward-decl b/t/t4018/perl-skip-forward-decl deleted file mode 100644 index a98cb8bdad..0000000000 --- a/t/t4018/perl-skip-forward-decl +++ /dev/null @@ -1,10 +0,0 @@ -package RIGHT; - -use strict; -use warnings; -use parent qw(Exporter); -our @EXPORT_OK = qw(round finalround); - -sub other; # forward declaration - -# ChangeMe diff --git a/t/t4018/perl-skip-forward-decl.ctx b/t/t4018/perl-skip-forward-decl.ctx deleted file mode 100644 index e0c51599ad..0000000000 --- a/t/t4018/perl-skip-forward-decl.ctx +++ /dev/null @@ -1 +0,0 @@ -package RIGHT; diff --git a/t/t4018/perl-skip-sub-in-pod b/t/t4018/perl-skip-sub-in-pod deleted file mode 100644 index e39f02462e..0000000000 --- a/t/t4018/perl-skip-sub-in-pod +++ /dev/null @@ -1,18 +0,0 @@ -=head1 NAME - -Beer - subroutine to output fragment of a drinking song - -=head1 SYNOPSIS_RIGHT - - use Beer qw(round finalround); - - sub song { - for (my $i = 99; $i > 0; $i--) { - round $i; - } - finalround; - } - - ChangeMe; - -=cut diff --git a/t/t4018/perl-skip-sub-in-pod.ctx b/t/t4018/perl-skip-sub-in-pod.ctx deleted file mode 100644 index abddd76655..0000000000 --- a/t/t4018/perl-skip-sub-in-pod.ctx +++ /dev/null @@ -1 +0,0 @@ -=head1 SYNOPSIS_RIGHT diff --git a/t/t4018/perl-sub-definition b/t/t4018/perl-sub-definition deleted file mode 100644 index a507d1f645..0000000000 --- a/t/t4018/perl-sub-definition +++ /dev/null @@ -1,4 +0,0 @@ -sub RIGHT { - my ($n) = @_; - print "ChangeMe"; -} diff --git a/t/t4018/perl-sub-definition-kr-brace b/t/t4018/perl-sub-definition-kr-brace deleted file mode 100644 index 330b3df114..0000000000 --- a/t/t4018/perl-sub-definition-kr-brace +++ /dev/null @@ -1,4 +0,0 @@ -sub RIGHT -{ - print "ChangeMe\n"; -} diff --git a/t/t4018/perl-sub-definition-kr-brace.ctx b/t/t4018/perl-sub-definition-kr-brace.ctx deleted file mode 100644 index 7e5aee5cde..0000000000 --- a/t/t4018/perl-sub-definition-kr-brace.ctx +++ /dev/null @@ -1 +0,0 @@ -sub RIGHT diff --git a/t/t4018/perl-sub-definition.ctx b/t/t4018/perl-sub-definition.ctx deleted file mode 100644 index d49a63598e..0000000000 --- a/t/t4018/perl-sub-definition.ctx +++ /dev/null @@ -1 +0,0 @@ -sub RIGHT { diff --git a/t/t4018/perl.sh b/t/t4018/perl.sh new file mode 100755 index 0000000000..ac8fff7417 --- /dev/null +++ b/t/t4018/perl.sh @@ -0,0 +1,78 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'perl: skip end of heredoc' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +sub RIGHTwithheredocument { +EOF_HUNK +sub RIGHTwithheredocument { + print <<"EOF" +decoy here-doc +EOF + # some lines of context + # to pad it out + print "ChangeMe\n"; +} +EOF_TEST + +test_diff_funcname 'perl: skip forward decl' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +package RIGHT; +EOF_HUNK +package RIGHT; + +use strict; +use warnings; +use parent qw(Exporter); +our @EXPORT_OK = qw(round finalround); + +sub other; # forward declaration + +# ChangeMe +EOF_TEST + +test_diff_funcname 'perl: skip sub in pod' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +=head1 SYNOPSIS_RIGHT +EOF_HUNK +=head1 NAME + +Beer - subroutine to output fragment of a drinking song + +=head1 SYNOPSIS_RIGHT + + use Beer qw(round finalround); + + sub song { + for (my $i = 99; $i > 0; $i--) { + round $i; + } + finalround; + } + + ChangeMe; + +=cut +EOF_TEST + +test_diff_funcname 'perl: sub definition' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +sub RIGHT { +EOF_HUNK +sub RIGHT { + my ($n) = @_; + print "ChangeMe"; +} +EOF_TEST + +test_diff_funcname 'perl: sub definition kr brace' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +sub RIGHT +EOF_HUNK +sub RIGHT +{ + print "ChangeMe\n"; +} +EOF_TEST diff --git a/t/t4018/php-abstract-class b/t/t4018/php-abstract-class deleted file mode 100644 index 5213e12494..0000000000 --- a/t/t4018/php-abstract-class +++ /dev/null @@ -1,4 +0,0 @@ -abstract class RIGHT -{ - const FOO = 'ChangeMe'; -} diff --git a/t/t4018/php-abstract-class.ctx b/t/t4018/php-abstract-class.ctx deleted file mode 100644 index f572d2129b..0000000000 --- a/t/t4018/php-abstract-class.ctx +++ /dev/null @@ -1 +0,0 @@ -abstract class RIGHT diff --git a/t/t4018/php-abstract-method b/t/t4018/php-abstract-method deleted file mode 100644 index ce215df75a..0000000000 --- a/t/t4018/php-abstract-method +++ /dev/null @@ -1,7 +0,0 @@ -abstract class Klass -{ - abstract public function RIGHT(): ?string - { - return 'ChangeMe'; - } -} diff --git a/t/t4018/php-abstract-method.ctx b/t/t4018/php-abstract-method.ctx deleted file mode 100644 index 14cb6df42e..0000000000 --- a/t/t4018/php-abstract-method.ctx +++ /dev/null @@ -1 +0,0 @@ -abstract public function RIGHT(): ?string diff --git a/t/t4018/php-class b/t/t4018/php-class deleted file mode 100644 index 7785b6303c..0000000000 --- a/t/t4018/php-class +++ /dev/null @@ -1,4 +0,0 @@ -class RIGHT -{ - const FOO = 'ChangeMe'; -} diff --git a/t/t4018/php-class.ctx b/t/t4018/php-class.ctx deleted file mode 100644 index 54bff816d6..0000000000 --- a/t/t4018/php-class.ctx +++ /dev/null @@ -1 +0,0 @@ -class RIGHT diff --git a/t/t4018/php-final-class b/t/t4018/php-final-class deleted file mode 100644 index 69f5710552..0000000000 --- a/t/t4018/php-final-class +++ /dev/null @@ -1,4 +0,0 @@ -final class RIGHT -{ - const FOO = 'ChangeMe'; -} diff --git a/t/t4018/php-final-class.ctx b/t/t4018/php-final-class.ctx deleted file mode 100644 index 4d59fb749b..0000000000 --- a/t/t4018/php-final-class.ctx +++ /dev/null @@ -1 +0,0 @@ -final class RIGHT diff --git a/t/t4018/php-final-method b/t/t4018/php-final-method deleted file mode 100644 index 537fb8ad9a..0000000000 --- a/t/t4018/php-final-method +++ /dev/null @@ -1,7 +0,0 @@ -class Klass -{ - final public function RIGHT(): string - { - return 'ChangeMe'; - } -} diff --git a/t/t4018/php-final-method.ctx b/t/t4018/php-final-method.ctx deleted file mode 100644 index b7da8f8082..0000000000 --- a/t/t4018/php-final-method.ctx +++ /dev/null @@ -1 +0,0 @@ -final public function RIGHT(): string diff --git a/t/t4018/php-function b/t/t4018/php-function deleted file mode 100644 index 35717c51c3..0000000000 --- a/t/t4018/php-function +++ /dev/null @@ -1,4 +0,0 @@ -function RIGHT() -{ - return 'ChangeMe'; -} diff --git a/t/t4018/php-function.ctx b/t/t4018/php-function.ctx deleted file mode 100644 index c5f3e55302..0000000000 --- a/t/t4018/php-function.ctx +++ /dev/null @@ -1 +0,0 @@ -function RIGHT() diff --git a/t/t4018/php-interface b/t/t4018/php-interface deleted file mode 100644 index 86b49ad5d9..0000000000 --- a/t/t4018/php-interface +++ /dev/null @@ -1,4 +0,0 @@ -interface RIGHT -{ - public function foo($ChangeMe); -} diff --git a/t/t4018/php-interface.ctx b/t/t4018/php-interface.ctx deleted file mode 100644 index a45fa0532a..0000000000 --- a/t/t4018/php-interface.ctx +++ /dev/null @@ -1 +0,0 @@ -interface RIGHT diff --git a/t/t4018/php-method b/t/t4018/php-method deleted file mode 100644 index 03af1a6d9d..0000000000 --- a/t/t4018/php-method +++ /dev/null @@ -1,7 +0,0 @@ -class Klass -{ - public static function RIGHT() - { - return 'ChangeMe'; - } -} diff --git a/t/t4018/php-method.ctx b/t/t4018/php-method.ctx deleted file mode 100644 index eb1659ff9f..0000000000 --- a/t/t4018/php-method.ctx +++ /dev/null @@ -1 +0,0 @@ -public static function RIGHT() diff --git a/t/t4018/php-trait b/t/t4018/php-trait deleted file mode 100644 index 65b8c82a61..0000000000 --- a/t/t4018/php-trait +++ /dev/null @@ -1,7 +0,0 @@ -trait RIGHT -{ - public function foo($ChangeMe) - { - return 'foo'; - } -} diff --git a/t/t4018/php-trait.ctx b/t/t4018/php-trait.ctx deleted file mode 100644 index 57aa4c6267..0000000000 --- a/t/t4018/php-trait.ctx +++ /dev/null @@ -1 +0,0 @@ -trait RIGHT diff --git a/t/t4018/php.sh b/t/t4018/php.sh new file mode 100755 index 0000000000..e0ccb2277b --- /dev/null +++ b/t/t4018/php.sh @@ -0,0 +1,106 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'php: abstract class' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +abstract class RIGHT +EOF_HUNK +abstract class RIGHT +{ + const FOO = 'ChangeMe'; +} +EOF_TEST + +test_diff_funcname 'php: abstract method' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +abstract public function RIGHT(): ?string +EOF_HUNK +abstract class Klass +{ + abstract public function RIGHT(): ?string + { + return 'ChangeMe'; + } +} +EOF_TEST + +test_diff_funcname 'php: class' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +class RIGHT +EOF_HUNK +class RIGHT +{ + const FOO = 'ChangeMe'; +} +EOF_TEST + +test_diff_funcname 'php: final class' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +final class RIGHT +EOF_HUNK +final class RIGHT +{ + const FOO = 'ChangeMe'; +} +EOF_TEST + +test_diff_funcname 'php: final method' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +final public function RIGHT(): string +EOF_HUNK +class Klass +{ + final public function RIGHT(): string + { + return 'ChangeMe'; + } +} +EOF_TEST + +test_diff_funcname 'php: function' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +function RIGHT() +EOF_HUNK +function RIGHT() +{ + return 'ChangeMe'; +} +EOF_TEST + +test_diff_funcname 'php: interface' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +interface RIGHT +EOF_HUNK +interface RIGHT +{ + public function foo($ChangeMe); +} +EOF_TEST + +test_diff_funcname 'php: method' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +public static function RIGHT() +EOF_HUNK +class Klass +{ + public static function RIGHT() + { + return 'ChangeMe'; + } +} +EOF_TEST + +test_diff_funcname 'php: trait' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +trait RIGHT +EOF_HUNK +trait RIGHT +{ + public function foo($ChangeMe) + { + return 'foo'; + } +} +EOF_TEST diff --git a/t/t4018/python-async-def b/t/t4018/python-async-def deleted file mode 100644 index 87640e03d2..0000000000 --- a/t/t4018/python-async-def +++ /dev/null @@ -1,4 +0,0 @@ -async def RIGHT(pi: int = 3.14): - while True: - break - return ChangeMe() diff --git a/t/t4018/python-async-def.ctx b/t/t4018/python-async-def.ctx deleted file mode 100644 index 468c548bbe..0000000000 --- a/t/t4018/python-async-def.ctx +++ /dev/null @@ -1 +0,0 @@ -async def RIGHT(pi: int = 3.14): diff --git a/t/t4018/python-class b/t/t4018/python-class deleted file mode 100644 index ba9e741430..0000000000 --- a/t/t4018/python-class +++ /dev/null @@ -1,4 +0,0 @@ -class RIGHT(int, str): - # comment - # another comment - # ChangeMe diff --git a/t/t4018/python-class.ctx b/t/t4018/python-class.ctx deleted file mode 100644 index a40b755e29..0000000000 --- a/t/t4018/python-class.ctx +++ /dev/null @@ -1 +0,0 @@ -class RIGHT(int, str): diff --git a/t/t4018/python-def b/t/t4018/python-def deleted file mode 100644 index e50b31b0ad..0000000000 --- a/t/t4018/python-def +++ /dev/null @@ -1,4 +0,0 @@ -def RIGHT(pi: int = 3.14): - while True: - break - return ChangeMe() diff --git a/t/t4018/python-def.ctx b/t/t4018/python-def.ctx deleted file mode 100644 index a1a9cbad63..0000000000 --- a/t/t4018/python-def.ctx +++ /dev/null @@ -1 +0,0 @@ -def RIGHT(pi: int = 3.14): diff --git a/t/t4018/python-indented-async-def b/t/t4018/python-indented-async-def deleted file mode 100644 index f5d03258af..0000000000 --- a/t/t4018/python-indented-async-def +++ /dev/null @@ -1,7 +0,0 @@ -class Foo: - async def RIGHT(self, x: int): - return [ - 1, - 2, - ChangeMe, - ] diff --git a/t/t4018/python-indented-async-def.ctx b/t/t4018/python-indented-async-def.ctx deleted file mode 100644 index d393620a1e..0000000000 --- a/t/t4018/python-indented-async-def.ctx +++ /dev/null @@ -1 +0,0 @@ -async def RIGHT(self, x: int): diff --git a/t/t4018/python-indented-class b/t/t4018/python-indented-class deleted file mode 100644 index 19b4f35c4c..0000000000 --- a/t/t4018/python-indented-class +++ /dev/null @@ -1,5 +0,0 @@ -if TYPE_CHECKING: - class RIGHT: - # comment - # another comment - # ChangeMe diff --git a/t/t4018/python-indented-class.ctx b/t/t4018/python-indented-class.ctx deleted file mode 100644 index 0881c84dba..0000000000 --- a/t/t4018/python-indented-class.ctx +++ /dev/null @@ -1 +0,0 @@ -class RIGHT: diff --git a/t/t4018/python-indented-def b/t/t4018/python-indented-def deleted file mode 100644 index 208fbadd2b..0000000000 --- a/t/t4018/python-indented-def +++ /dev/null @@ -1,7 +0,0 @@ -class Foo: - def RIGHT(self, x: int): - return [ - 1, - 2, - ChangeMe, - ] diff --git a/t/t4018/python-indented-def.ctx b/t/t4018/python-indented-def.ctx deleted file mode 100644 index 6e5a44b391..0000000000 --- a/t/t4018/python-indented-def.ctx +++ /dev/null @@ -1 +0,0 @@ -def RIGHT(self, x: int): diff --git a/t/t4018/python.sh b/t/t4018/python.sh new file mode 100755 index 0000000000..ecb5736d57 --- /dev/null +++ b/t/t4018/python.sh @@ -0,0 +1,71 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'python: async def' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +async def RIGHT(pi: int = 3.14): +EOF_HUNK +async def RIGHT(pi: int = 3.14): + while True: + break + return ChangeMe() +EOF_TEST + +test_diff_funcname 'python: class' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +class RIGHT(int, str): +EOF_HUNK +class RIGHT(int, str): + # comment + # another comment + # ChangeMe +EOF_TEST + +test_diff_funcname 'python: def' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +def RIGHT(pi: int = 3.14): +EOF_HUNK +def RIGHT(pi: int = 3.14): + while True: + break + return ChangeMe() +EOF_TEST + +test_diff_funcname 'python: indented async def' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +async def RIGHT(self, x: int): +EOF_HUNK +class Foo: + async def RIGHT(self, x: int): + return [ + 1, + 2, + ChangeMe, + ] +EOF_TEST + +test_diff_funcname 'python: indented class' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +class RIGHT: +EOF_HUNK +if TYPE_CHECKING: + class RIGHT: + # comment + # another comment + # ChangeMe +EOF_TEST + +test_diff_funcname 'python: indented def' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +def RIGHT(self, x: int): +EOF_HUNK +class Foo: + def RIGHT(self, x: int): + return [ + 1, + 2, + ChangeMe, + ] +EOF_TEST diff --git a/t/t4018/rust-fn b/t/t4018/rust-fn deleted file mode 100644 index cbe02155f1..0000000000 --- a/t/t4018/rust-fn +++ /dev/null @@ -1,5 +0,0 @@ -pub(self) fn RIGHT(x: &[T]) where T: Debug { - let _ = x; - // a comment - let a = ChangeMe; -} diff --git a/t/t4018/rust-fn.ctx b/t/t4018/rust-fn.ctx deleted file mode 100644 index baa37cf253..0000000000 --- a/t/t4018/rust-fn.ctx +++ /dev/null @@ -1 +0,0 @@ -pub(self) fn RIGHT(x: &[T]) where T: Debug { diff --git a/t/t4018/rust-impl b/t/t4018/rust-impl deleted file mode 100644 index 09df3cd93b..0000000000 --- a/t/t4018/rust-impl +++ /dev/null @@ -1,5 +0,0 @@ -impl<'a, T: AsRef<[u8]>> std::RIGHT for Git<'a> { - - pub fn ChangeMe(&self) -> () { - } -} diff --git a/t/t4018/rust-impl.ctx b/t/t4018/rust-impl.ctx deleted file mode 100644 index 5344c35f3f..0000000000 --- a/t/t4018/rust-impl.ctx +++ /dev/null @@ -1 +0,0 @@ -impl<'a, T: AsRef<[u8]>> std::RIGHT for Git<'a> { diff --git a/t/t4018/rust-macro-rules b/t/t4018/rust-macro-rules deleted file mode 100644 index ec610c5b62..0000000000 --- a/t/t4018/rust-macro-rules +++ /dev/null @@ -1,6 +0,0 @@ -macro_rules! RIGHT { - () => { - // a comment - let x = ChangeMe; - }; -} diff --git a/t/t4018/rust-macro-rules.ctx b/t/t4018/rust-macro-rules.ctx deleted file mode 100644 index 7520463aa0..0000000000 --- a/t/t4018/rust-macro-rules.ctx +++ /dev/null @@ -1 +0,0 @@ -macro_rules! RIGHT { diff --git a/t/t4018/rust-struct b/t/t4018/rust-struct deleted file mode 100644 index 76aff1c0d8..0000000000 --- a/t/t4018/rust-struct +++ /dev/null @@ -1,5 +0,0 @@ -#[derive(Debug)] -pub(super) struct RIGHT<'a> { - name: &'a str, - age: ChangeMe, -} diff --git a/t/t4018/rust-struct.ctx b/t/t4018/rust-struct.ctx deleted file mode 100644 index c1e09dc808..0000000000 --- a/t/t4018/rust-struct.ctx +++ /dev/null @@ -1 +0,0 @@ -pub(super) struct RIGHT<'a> { diff --git a/t/t4018/rust-trait b/t/t4018/rust-trait deleted file mode 100644 index ea397f09ed..0000000000 --- a/t/t4018/rust-trait +++ /dev/null @@ -1,5 +0,0 @@ -unsafe trait RIGHT { - fn len(&self) -> u32; - fn ChangeMe(&self, n: u32) -> T; - fn iter(&self, f: F) where F: Fn(T); -} diff --git a/t/t4018/rust-trait.ctx b/t/t4018/rust-trait.ctx deleted file mode 100644 index 6af803db29..0000000000 --- a/t/t4018/rust-trait.ctx +++ /dev/null @@ -1 +0,0 @@ -unsafe trait RIGHT { diff --git a/t/t4018/rust.sh b/t/t4018/rust.sh new file mode 100755 index 0000000000..ba018c6b95 --- /dev/null +++ b/t/t4018/rust.sh @@ -0,0 +1,60 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_diff_funcname 'rust: fn' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +pub(self) fn RIGHT(x: &[T]) where T: Debug { +EOF_HUNK +pub(self) fn RIGHT(x: &[T]) where T: Debug { + let _ = x; + // a comment + let a = ChangeMe; +} +EOF_TEST + +test_diff_funcname 'rust: impl' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +impl<'a, T: AsRef<[u8]>> std::RIGHT for Git<'a> { +EOF_HUNK +impl<'a, T: AsRef<[u8]>> std::RIGHT for Git<'a> { + + pub fn ChangeMe(&self) -> () { + } +} +EOF_TEST + +test_diff_funcname 'rust: macro rules' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +macro_rules! RIGHT { +EOF_HUNK +macro_rules! RIGHT { + () => { + // a comment + let x = ChangeMe; + }; +} +EOF_TEST + +test_diff_funcname 'rust: struct' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +pub(super) struct RIGHT<'a> { +EOF_HUNK +#[derive(Debug)] +pub(super) struct RIGHT<'a> { + name: &'a str, + age: ChangeMe, +} +EOF_TEST + +test_diff_funcname 'rust: trait' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +unsafe trait RIGHT { +EOF_HUNK +unsafe trait RIGHT { + fn len(&self) -> u32; + fn ChangeMe(&self, n: u32) -> T; + fn iter(&self, f: F) where F: Fn(T); +} +EOF_TEST From patchwork Mon Feb 15 00:52:25 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087535 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D93E7C433E9 for ; Mon, 15 Feb 2021 00:54:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AD67464DDA for ; Mon, 15 Feb 2021 00:54:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230139AbhBOAy2 (ORCPT ); Sun, 14 Feb 2021 19:54:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49274 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230059AbhBOAyY (ORCPT ); Sun, 14 Feb 2021 19:54:24 -0500 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 03A9DC061793 for ; Sun, 14 Feb 2021 16:53:08 -0800 (PST) Received: by mail-wr1-x436.google.com with SMTP id v14so7147811wro.7 for ; Sun, 14 Feb 2021 16:53:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=U/pFllhqsaduEjBYEBQ5AgLgBIA72BE54aQQQGm/Fi8=; b=Tr010ycXPEVw354uODjQDfRHop9vTA6awExduBDQgXlLMbEA5s/KidOS02DKw78QGL J+5B26jDIRKkqIjiDayxPBLl7qKC2y9gnZObNn7PQkYIbo4dpIT7W1A3P3exSwBds5bo S83AeXIUuXtBSUjeOHKhhL+11fLQhePXIZCjzyrxqTPFA49jngih6Q+qcT8NUl2Kexw5 tpBuy1IIX71SnXP2Ra6HyS0XqNmvq1BQZnG5rrzTH5KM975sOFS5MXfEANMacoZmkmwj rJsD5MX3YtC868Urg4D7S/uRGBlvo3qRHJDxDDIAzNQIYtn85XMJsnEp+A32K4gZmyvH TN2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=U/pFllhqsaduEjBYEBQ5AgLgBIA72BE54aQQQGm/Fi8=; b=k0GFBlkyJ0MvesAsTbUvGtIBTv45VgI1kjWS3POQCQE7IMnCPOj2ejEuPdT5aXTBU+ eElGlcSvfrK4gKCHqxOGdxhpf6hPnk8xpnm3o96BJLGS7k+a3sV6RM88lMV+v0DXOOX5 57bzW0Ljf9XoYPQk2Bdapa82g8G/ebpSPfDSbPz0AFr7mR9JwpUZ126xrw6RuBy6oTf9 ZPblWYc8bnfFK1lbm80yCWxKkDJs/e9RkUlp7ID8shvIJt77LjAxU4DBxhzN2xU7TIsh ZoQlkr1MIqjvMdQvAGcNkZcB6aoZMuy4CoMZ1Fl4CjPzkXGEku/HfEZUYLKl38wdBg9K crwg== X-Gm-Message-State: AOAM532G1yEyGfasjtafxwMCFEafNntj5DE1yPz62zXfn9/zC5sm6WR6 Mc2NR56wL+U7I2pRe86ZyblC60eBzM1FSw== X-Google-Smtp-Source: ABdhPJxGDLR27193/l8P/QnQloHL6erZ6xzZSE+5b+79LtcKauwoc2KIgObgc5ORD7qmOrrFspuJBg== X-Received: by 2002:a5d:51d0:: with SMTP id n16mr16815030wrv.382.1613350386540; Sun, 14 Feb 2021 16:53:06 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:06 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 09/20] blame tests: don't rely on t/t4018/ directory Date: Mon, 15 Feb 2021 01:52:25 +0100 Message-Id: <20210215005236.11313-10-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Refactor a test added in 9466e3809d (blame: enable funcname blaming with userdiff driver, 2020-11-01) so that the blame tests don't rely on stealing the contents of "t/t4018/fortran-external-function". I'm about to refactor that directory, just moving the relevant test file here inline is the easiest solution, and I think also the most readable. Signed-off-by: Ævar Arnfjörð Bjarmason --- t/annotate-tests.sh | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/t/annotate-tests.sh b/t/annotate-tests.sh index 29ce89090d..04a2c58594 100644 --- a/t/annotate-tests.sh +++ b/t/annotate-tests.sh @@ -482,12 +482,22 @@ test_expect_success 'blame -L ^:RE (absolute: end-of-file)' ' test_expect_success 'setup -L :funcname with userdiff driver' ' echo "fortran-* diff=fortran" >.gitattributes && fortran_file=fortran-external-function && - orig_file="$TEST_DIRECTORY/t4018/$fortran_file" && - cp "$orig_file" . && + cat >$fortran_file <<-\EOF && + function RIGHT(a, b) result(c) + + integer, intent(in) :: ChangeMe + integer, intent(in) :: b + integer, intent(out) :: c + + c = a+b + + end function RIGHT + EOF git add "$fortran_file" && GIT_AUTHOR_NAME="A" GIT_AUTHOR_EMAIL="A@test.git" \ git commit -m "add fortran file" && - sed -e "s/ChangeMe/IWasChanged/" <"$orig_file" >"$fortran_file" && + sed -e "s/ChangeMe/IWasChanged/" <"$fortran_file" >"$fortran_file".tmp && + mv "$fortran_file".tmp "$fortran_file" && git add "$fortran_file" && GIT_AUTHOR_NAME="B" GIT_AUTHOR_EMAIL="B@test.git" \ git commit -m "change fortran file" From patchwork Mon Feb 15 00:52:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087537 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E2E3FC43381 for ; Mon, 15 Feb 2021 00:54:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C58F564E56 for ; Mon, 15 Feb 2021 00:54:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230144AbhBOAyb (ORCPT ); Sun, 14 Feb 2021 19:54:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49276 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229994AbhBOAyY (ORCPT ); Sun, 14 Feb 2021 19:54:24 -0500 Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B3B22C061794 for ; Sun, 14 Feb 2021 16:53:08 -0800 (PST) Received: by mail-wm1-x336.google.com with SMTP id o24so6468262wmh.5 for ; Sun, 14 Feb 2021 16:53:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+gGyw14kAn5AhLjMedvcCwIj8w/YHAPFKx+O/PMlpL4=; b=lPnTgj2HE2jlaD5R/NhEfkiooYnFRzBaCfL9LlVDRWPjeMrrhrgaJLmuNY8HUU86xm hZdFSCi/P2nRUoEYDe6CbkdeLMQHNYLdhYcsG7ynafbrz3rGZgXYCxTR4kH234sWxr7I 3qR77QZoaYTlwRqoLlIAfkdU7aJl+kg9lwQpKE1W6rNByN49FI3w1K+A1TuHK7FgwXLV RHaW1jX1CzszmFCjzuE6d1asC9+Fhnj+F88EfM5iy6f+HdwVMV009r5BkOyj06GS0Lte IBXmxdKN1zx+xR4ZcjbL7PynPaHeqBOex9y6d4RyFVl9lAYiOOHQ9OQgAtY5+RexHGZa 8W3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+gGyw14kAn5AhLjMedvcCwIj8w/YHAPFKx+O/PMlpL4=; b=t5mgEFtoMcDJoYQDFCE6HXT+mElL2078tBqu5lxAfmRNbJIPw2YlVU6+zxE9AyWKNQ Rwod9TwBT7XLJUMO0lk8wYGzK74SAYGskZWfaFBMjfyAV8UIquNs73QJ8FJLx++/Yt1h gAPoRcdJVaSW3vQRTlLciBgCKeEq80Gromm00xvuyhjqf6qQJPOC5Y5dX2ginG/0GSEs 8ZIAqZLB1NMDhmcbaTjCBmwLRxQGJar983cXPd7gxPk/yyOiyU6tHjwOdjjthyfz484f cVU3yTI/4FlBXzMHl5yusxTmRUWx57aUE1c32FPEijZOYzR3siX1c8CalCq9d0prEavo XbwQ== X-Gm-Message-State: AOAM530ehhlglng7m3kL346Wv8tLQJ2soyEO35O0kZPbETuC0FgJMnUI bybsIZEZbmqwASYWIZ8uCvjxCVtDJ9090g== X-Google-Smtp-Source: ABdhPJz6MVF/hKdpPgyCbNAQLXwhBUjA41dB9BqC2Q7FtywQdqgCOggb7nAzzh0vwge5TGHm3evzsQ== X-Received: by 2002:a1c:f60b:: with SMTP id w11mr11871177wmc.3.1613350387213; Sun, 14 Feb 2021 16:53:07 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:06 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 10/20] userdiff tests: move custom patterns into one test file Date: Mon, 15 Feb 2021 01:52:26 +0100 Message-Id: <20210215005236.11313-11-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org In a preceding commit the test infrastructure got rewritten so "t/t4018/" are now normal test files which can do things like set config, so let's make it responsible for setting up and tearing down the config for its tests. Signed-off-by: Ævar Arnfjörð Bjarmason --- t/t4018-diff-funcname.sh | 16 +------- t/t4018/custom.sh | 84 ++++++++++++++++++++++++++++++++++++++++ t/t4018/custom1.sh | 27 ------------- t/t4018/custom2.sh | 18 --------- t/t4018/custom3.sh | 27 ------------- 5 files changed, 85 insertions(+), 87 deletions(-) create mode 100755 t/t4018/custom.sh delete mode 100755 t/t4018/custom1.sh delete mode 100755 t/t4018/custom2.sh delete mode 100755 t/t4018/custom3.sh diff --git a/t/t4018-diff-funcname.sh b/t/t4018-diff-funcname.sh index 3ff34c13d7..3e4c07e42b 100755 --- a/t/t4018-diff-funcname.sh +++ b/t/t4018-diff-funcname.sh @@ -12,18 +12,6 @@ test_expect_success 'setup' ' test_file_not_empty builtin-drivers && builtin_drivers=$(cat builtin-drivers) && - # a non-trivial custom pattern - git config diff.custom1.funcname "!static -!String -[^ ].*s.*" && - - # a custom pattern which matches to end of line - git config diff.custom2.funcname "......Beer\$" && - - # alternation in pattern - git config diff.custom3.funcname "Beer$" && - git config diff.custom3.xfuncname "^[ ]*((public|static).*)$" && - # for regexp compilation tests echo A >A.java && echo B >B.java @@ -31,9 +19,7 @@ test_expect_success 'setup' ' diffpatterns=" $builtin_drivers - custom1 - custom2 - custom3 + custom " for p in $diffpatterns diff --git a/t/t4018/custom.sh b/t/t4018/custom.sh new file mode 100755 index 0000000000..69f1f7339f --- /dev/null +++ b/t/t4018/custom.sh @@ -0,0 +1,84 @@ +#!/bin/sh +# +# See ../t4018-diff-funcname.sh's test_diff_funcname() +# + +test_expect_success 'custom: setup non-trivial custom' ' + git config diff.custom.funcname "!static +!String +[^ ].*s.*" +' + +test_diff_funcname 'custom: non-trivial custom pattern' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +int special, RIGHT; +EOF_HUNK +public class Beer +{ + int special, RIGHT; + public static void main(String args[]) + { + String s=" "; + for(int x = 99; x > 0; x--) + { + System.out.print(x + " bottles of beer on the wall " + + x + " bottles of beer\n" // ChangeMe + + "Take one down, pass it around, " + (x - 1) + + " bottles of beer on the wall.\n"); + } + System.out.print("Go to the store, buy some more,\n" + + "99 bottles of beer on the wall.\n"); + } +} +EOF_TEST + +test_expect_success 'custom: setup match to end of line' ' + git config diff.custom.funcname "......Beer\$" +' + +test_diff_funcname 'custom: match to end of line' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +RIGHT_Beer +EOF_HUNK +public class RIGHT_Beer +{ + int special; + public static void main(String args[]) + { + System.out.print("ChangeMe"); + } +} +EOF_TEST + +test_expect_success 'custom: setup alternation in pattern' ' + git config diff.custom.funcname "Beer$" && + git config diff.custom.xfuncname "^[ ]*((public|static).*)$" +' + +test_diff_funcname 'custom: alternation in pattern' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +public static void main(String RIGHT[]) +EOF_HUNK +public class Beer +{ + int special; + public static void main(String RIGHT[]) + { + String s=" "; + for(int x = 99; x > 0; x--) + { + System.out.print(x + " bottles of beer on the wall " + + x + " bottles of beer\n" // ChangeMe + + "Take one down, pass it around, " + (x - 1) + + " bottles of beer on the wall.\n"); + } + System.out.print("Go to the store, buy some more,\n" + + "99 bottles of beer on the wall.\n"); + } +} +EOF_TEST + +test_expect_success 'custom: teardown' ' + test_unconfig diff.custom.funcname && + test_unconfig diff.custom.xfuncname +' diff --git a/t/t4018/custom1.sh b/t/t4018/custom1.sh deleted file mode 100755 index f8bbccadb4..0000000000 --- a/t/t4018/custom1.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# -# See ../t4018-diff-funcname.sh's test_diff_funcname() -# - -test_diff_funcname 'custom1: pattern' \ - 8<<\EOF_HUNK 9<<\EOF_TEST -int special, RIGHT; -EOF_HUNK -public class Beer -{ - int special, RIGHT; - public static void main(String args[]) - { - String s=" "; - for(int x = 99; x > 0; x--) - { - System.out.print(x + " bottles of beer on the wall " - + x + " bottles of beer\n" // ChangeMe - + "Take one down, pass it around, " + (x - 1) - + " bottles of beer on the wall.\n"); - } - System.out.print("Go to the store, buy some more,\n" - + "99 bottles of beer on the wall.\n"); - } -} -EOF_TEST diff --git a/t/t4018/custom2.sh b/t/t4018/custom2.sh deleted file mode 100755 index c68421f788..0000000000 --- a/t/t4018/custom2.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# -# See ../t4018-diff-funcname.sh's test_diff_funcname() -# - -test_diff_funcname 'custom2: match to end of line' \ - 8<<\EOF_HUNK 9<<\EOF_TEST -RIGHT_Beer -EOF_HUNK -public class RIGHT_Beer -{ - int special; - public static void main(String args[]) - { - System.out.print("ChangeMe"); - } -} -EOF_TEST diff --git a/t/t4018/custom3.sh b/t/t4018/custom3.sh deleted file mode 100755 index 07c5c134ff..0000000000 --- a/t/t4018/custom3.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# -# See ../t4018-diff-funcname.sh's test_diff_funcname() -# - -test_diff_funcname 'custom3: alternation in pattern' \ - 8<<\EOF_HUNK 9<<\EOF_TEST -public static void main(String RIGHT[]) -EOF_HUNK -public class Beer -{ - int special; - public static void main(String RIGHT[]) - { - String s=" "; - for(int x = 99; x > 0; x--) - { - System.out.print(x + " bottles of beer on the wall " - + x + " bottles of beer\n" // ChangeMe - + "Take one down, pass it around, " + (x - 1) - + " bottles of beer on the wall.\n"); - } - System.out.print("Go to the store, buy some more,\n" - + "99 bottles of beer on the wall.\n"); - } -} -EOF_TEST From patchwork Mon Feb 15 00:52:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087539 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 23E64C4332B for ; Mon, 15 Feb 2021 00:54:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EAB5564DDA for ; Mon, 15 Feb 2021 00:54:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230154AbhBOAyi (ORCPT ); Sun, 14 Feb 2021 19:54:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49278 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230078AbhBOAyY (ORCPT ); Sun, 14 Feb 2021 19:54:24 -0500 Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8217FC0617A7 for ; Sun, 14 Feb 2021 16:53:09 -0800 (PST) Received: by mail-wr1-x42a.google.com with SMTP id v14so7147844wro.7 for ; Sun, 14 Feb 2021 16:53:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Ca81a69vSZMc+hY33cfPcj8Z31zp+U2B5/P9EoRn8Mc=; b=czrVOczpf46IV7e0lxujmHzltvUkbQHyqHaV5yvyR+wxsQZ/1vx3l6CgvWGFnGGq4P nnw7HAGsRHIXjGUxOGScvPTbeuZXVxwCPwkhNTrqhkc2al9mUiSa3XIMp6+8N8xH+JR/ wRqshYQ3jryUx+/GEOKmbhN++H9OQ4IWYK5Xqf6vIRz55EKUDiQmYfYiviEprk7Yknal Hwyu307CXV4NBzDwv9A2ZJO7FPlSXeaBJnSmX3vUxMuKt0Oo/rQXIxRAPji/5soFn6M7 72GBnBuaWCQYsEWsXbr/A8PUtEak2kNyeO09uefhEfu86vk8X1YcIZs4XYeJb6PiUciw 7ekg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ca81a69vSZMc+hY33cfPcj8Z31zp+U2B5/P9EoRn8Mc=; b=Yxik9TKiyHFvAsmFYuTKtYdQ9kKv2IzC5QRxVM4c+AKNgwycdxXUeyDXf3lRe0YoA3 tzWhwSmIFnlIoiHvjwKl6A2WX78vQpykxo2mSayijoWBiAVYJGScRybhwhft37c6vXg7 zW3JIzxs+BfbTMOs4+2kIhT8SX1Y7z3Va6HjMFiBPCy2Ie86aRzQdIlJUCveK8K4kQ1n 6g/O00k7az3x1cER7o9XK+3C7XrwRzVuKpeOE8yWHf4gE6lZEUYNU+bc+1egOvANBw3W pJrEBJOc0BdxK7JQFgmjR6RBThOy0z3aD8v8xRdaJv7U1D9rEifooM4ay+oIkRe+pdEk lvhg== X-Gm-Message-State: AOAM5319lyOC7QSa3MALCYRQZpwT2stKpK+v38I1USNekOklp6xHByHg xEGLOWEtxsMlbSDFYPvSrjT2fq9hstSl6Q== X-Google-Smtp-Source: ABdhPJwu3W+JLJY7i8HLnMM6rWVuH+vmXwSPa/k+7q0pOTI75BX3AVnqsqQWLwBxav1z/hDmq4xiEQ== X-Received: by 2002:a5d:50d2:: with SMTP id f18mr16819221wrt.338.1613350387991; Sun, 14 Feb 2021 16:53:07 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:07 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 11/20] userdiff tests: remove hack for "RIGHT" token Date: Mon, 15 Feb 2021 01:52:27 +0100 Message-Id: <20210215005236.11313-12-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Now that the "RIGHT" token isn't how we select the desired hunk header line in the test anymore we can revert a hack added in f1b75fbaf1 (t4018: convert custom pattern test to the new infrastructure, 2014-03-21) and go back to the regular expression we were testing before that change. Signed-off-by: Ævar Arnfjörð Bjarmason --- t/t4018/custom.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/t/t4018/custom.sh b/t/t4018/custom.sh index 69f1f7339f..20abb38451 100755 --- a/t/t4018/custom.sh +++ b/t/t4018/custom.sh @@ -33,14 +33,14 @@ public class Beer EOF_TEST test_expect_success 'custom: setup match to end of line' ' - git config diff.custom.funcname "......Beer\$" + git config diff.custom.funcname "Beer\$" ' test_diff_funcname 'custom: match to end of line' \ 8<<\EOF_HUNK 9<<\EOF_TEST -RIGHT_Beer +Beer EOF_HUNK -public class RIGHT_Beer +public class Beer { int special; public static void main(String args[]) From patchwork Mon Feb 15 00:52:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087543 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D491AC433E6 for ; Mon, 15 Feb 2021 00:54:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A2AB164DDA for ; Mon, 15 Feb 2021 00:54:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230187AbhBOAyq (ORCPT ); Sun, 14 Feb 2021 19:54:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49282 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230116AbhBOAy0 (ORCPT ); Sun, 14 Feb 2021 19:54:26 -0500 Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4DADFC0617A9 for ; Sun, 14 Feb 2021 16:53:10 -0800 (PST) Received: by mail-wm1-x330.google.com with SMTP id h67so1677060wmh.1 for ; Sun, 14 Feb 2021 16:53:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TyJk4IIv/NAsJbLemHiJv6uT1Q7MZqVC2kLavE4v/1c=; b=Y3Bm7NLzxRT1sMa/ya6l8MhkesLeZ7/3+hhVym4Rmc4qlGmZJV//igmsOakkGgHeAT nnbrQ0ZHFR5vvu9dH0D6yt9ezGka5Ke6iq8T20bpbe149DWhBVARx2fIPqzBEUHGM2Zm vCyS0FdyaUPOpC1DTpHEL7ByyxF2RcrpDT9jnXBWkuZLVojZjLt6zQycZ59PRlH9xznL 1yn3ghaU5GPqSgTE0Ij7VZDUEh/I++iOLwTckAC/jbeNeOfxjHR2n9k4gGJPo9mM7YCe p3iLaVVYXBvzQpS2BkuX34stwfEnSzMVeEGIYIAriu3x9ys/LIx3IYz9HdFTVC8EuOEO F/uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TyJk4IIv/NAsJbLemHiJv6uT1Q7MZqVC2kLavE4v/1c=; b=tdGIItZCCr1gsUHs44w883wW7Dmmws5fmenbToxeyIXE4UNH0XJI+bMocXUib5pLWb nbuf5Db8MBv1uiiA2E6Is7nFmdb0BD3oXhJBl+O53rWw7FeqhOM67zQhYsu84hVyHvi7 DXuqTIkEau4ilcMMVolJ1uT4mghZ+BgGO3RCGBob8oohVOEFxFFJocf9bx5qFEYB7R93 O1tV10ZZ3Re+WOFQIVv+mHHgwdAO+EolpOsIQaP7TNTyNilBoflE1PTqks3lYm5vkUBU IE765r7OtTVqLlSxAysTFghCJHpStqHh9AEScbr8nhMnZiMADR/Yac933ZzPmQQm20aK Ucug== X-Gm-Message-State: AOAM530gMJJMZ9RUaZ7wiWkcaj6ehm7Y1CfplcW2vt5BfFP6gvxxgC8K taFMGXpLJwgCqOftT8a7rMXGGyvbe3Ql5w== X-Google-Smtp-Source: ABdhPJw7OoHFH3PDPg0r/5TC8J/wv1bpuBbBzXpAlt6uS0isw8MQVkvq9cAGyhlakGDwcE61/M6k5Q== X-Received: by 2002:a05:600c:204e:: with SMTP id p14mr12112955wmg.157.1613350388864; Sun, 14 Feb 2021 16:53:08 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:08 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 12/20] userdiff: match "package" in diff=golang Date: Mon, 15 Feb 2021 01:52:28 +0100 Message-Id: <20210215005236.11313-13-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Improve the "golang" built-in pattern to match "package" lines, as they weren't matched before changing e.g. the imports would commonly result in an empty hunk header, now we'll instead show the package name. Signed-off-by: Ævar Arnfjörð Bjarmason --- t/t4018/golang.sh | 10 ++++++++++ userdiff.c | 2 ++ 2 files changed, 12 insertions(+) diff --git a/t/t4018/golang.sh b/t/t4018/golang.sh index bf22f58c12..cdf9d6f8aa 100755 --- a/t/t4018/golang.sh +++ b/t/t4018/golang.sh @@ -3,6 +3,16 @@ # See ../t4018-diff-funcname.sh's test_diff_funcname() # +test_diff_funcname 'golang: package' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +package main +EOF_HUNK +package main + +import "fmt" +// ChangeMe +EOF_TEST + test_diff_funcname 'golang: complex function' \ 8<<\EOF_HUNK 9<<\EOF_TEST func (t *Test) RIGHT(a Type) (Type, error) { diff --git a/userdiff.c b/userdiff.c index 92b5a97e12..d99b488700 100644 --- a/userdiff.c +++ b/userdiff.c @@ -124,6 +124,8 @@ IPATTERN("fortran", IPATTERN("fountain", "^((\\.[^.]|(int|ext|est|int\\.?/ext|i/e)[. ]).*)$", "[^ \t-]+"), PATTERNS("golang", + /* Packages */ + "^[ \t]*(package[ \t]*(.*))\n" /* Functions */ "^[ \t]*(func[ \t]*.*(\\{[ \t]*)?)\n" /* Structs and interfaces */ From patchwork Mon Feb 15 00:52:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087547 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 190D7C433E0 for ; Mon, 15 Feb 2021 00:54:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E1ED764DBA for ; Mon, 15 Feb 2021 00:54:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230197AbhBOAyv (ORCPT ); Sun, 14 Feb 2021 19:54:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49290 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230119AbhBOAy0 (ORCPT ); Sun, 14 Feb 2021 19:54:26 -0500 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0F366C0617AA for ; Sun, 14 Feb 2021 16:53:11 -0800 (PST) Received: by mail-wr1-x436.google.com with SMTP id t15so7106731wrx.13 for ; Sun, 14 Feb 2021 16:53:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7iKluFb5SRGhJLywSaY/QGqQZ/w9hMtFJ5UPGRP+ZL8=; b=StlfIBaS3ONf2hT+Wz1edYrgYBBxaFnf12yULeEpMtE9gE/5tvJUrqLzNZxX0UaMRH EF8/XgbTBqIQxqti2qG1j5o4OVBOy1lVQuULJEw1C/KgvncTuEZw39F4ZPGZFehc2dYC Fd+dADFRNftG6Z7I+qC5uFkOTWaWRCNnrOj79uhW/+qzuTHdbev87TjpJZqpxC+sy2l4 F/srnXeKZI/nKb/SuCJc5nxLyQqJXJl6BjirYCW1Z7EumJkMiP3KDn/eQMkuBpVhjYR7 nzsaO6VZszQNPHlbRrDETrhNEUuwd1UEJON9G7DnPmtqdX3GhCMkdg6vp2VmE3KnVV7F WBbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7iKluFb5SRGhJLywSaY/QGqQZ/w9hMtFJ5UPGRP+ZL8=; b=ACCjp1y5vHqgNyV/5o90PTswINi1Ua2JxdQca8YD42BZICx+ETYnGS1S0SCJrFyDgT MM1RODwKxCiLQxk8jjSyJYTVhbQrWjOsABZEvPcQjBAjXMCZs0JFCf+pfY4irM+obtal xyv17nDBLDe8DQAdqOaKsjIiYcuyiO8TK/u9XgTWbuVuhlSWbZWID8b8/q+gDE5HR6GR qXy8kcElAG8wwR3Dts7FdCfBRl/hiLwfX8pHFCnrH7NTMnL6ABogr34S+8EgkvJ8oMtO L8BByskQ/z6luriyk2yrIRJJ6lbrcuASGHa6GqEKJu4uMuZGP0T3jPnnlc5L3L7mnl/4 dw9w== X-Gm-Message-State: AOAM532ln/tyeFK5uskmdh38SvXzZiUPZqhdrsVj2DvWjK26KAKXn3Mx +CUYINs26jN6gusimr22zPJTEpBi/qdtQg== X-Google-Smtp-Source: ABdhPJwl7Mbkr4AP7BxOxtX4Zb62BVbi/mb+Iov4IKQAFlIVw3o3YL7hd+3gkMCbLZ/coGwVtp6ULQ== X-Received: by 2002:a05:6000:1788:: with SMTP id e8mr16322539wrg.171.1613350389553; Sun, 14 Feb 2021 16:53:09 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:09 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 13/20] userdiff tests + docs: document & test "diff..x?funcname" Date: Mon, 15 Feb 2021 01:52:29 +0100 Message-Id: <20210215005236.11313-14-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Add the missing documentation for "diff..funcname" and test for how it and "diff..xfuncname" interact. Between the introduction of the "diff..xfuncname" form in 45d9414fa5 (diff.*.xfuncname which uses "extended" regex's for hunk header selection, 2008-09-18) and when this documentation was written in 90b94c26f7 (Documentation: Add diff..* to config, 2011-04-07) we forgot to document the existence of "diff..funcname". Let's make a mention of it here, we could also partially revert the former commit and discuss the more verbose form in gitattributes(5), but let's stop short of that. It makes sense to guide users towards ERE over BRE whenever possible. Signed-off-by: Ævar Arnfjörð Bjarmason --- Documentation/config/diff.txt | 12 +++++++++++ t/t4018/custom.sh | 40 +++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/Documentation/config/diff.txt b/Documentation/config/diff.txt index 2d3331f55c..5fce8021de 100644 --- a/Documentation/config/diff.txt +++ b/Documentation/config/diff.txt @@ -153,10 +153,22 @@ diff..command:: The custom diff driver command. See linkgit:gitattributes[5] for details. +diff..funcname:: diff..xfuncname:: The regular expression that the diff driver should use to recognize the hunk header. A built-in pattern may also be used. See linkgit:gitattributes[5] for details. ++ +When provided as `diff..funcname` the regular expression is +interpreted as a basic regular expression, with +`diff..xfuncname` it's interpreted as an extended regular +expression. ++ + +The `*.funcname` and `*.xfuncname` variables behave as if though they +were one configuration variable for the purposes of what value +eventually gets used. Setting `*.funcname` will override an earlier +`*.xfuncname` and vice-versa. diff..binary:: Set this option to true to make the diff driver treat files as diff --git a/t/t4018/custom.sh b/t/t4018/custom.sh index 20abb38451..b68d96a8af 100755 --- a/t/t4018/custom.sh +++ b/t/t4018/custom.sh @@ -78,6 +78,46 @@ public class Beer } EOF_TEST +test_expect_success 'custom; setup config precedence' ' + git config diff.custom.funcname "foo" && + git config diff.custom.xfuncname "bar" +' + +test_diff_funcname 'custom: config precedence' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +bar +EOF_HUNK +foo +bar + +ChangeMe + +baz +EOF_TEST + +test_expect_success 'custom: teardown' ' + test_unconfig diff.custom.funcname && + test_unconfig diff.custom.xfuncname +' + +test_expect_success 'custom; setup config precedence' ' + git config diff.custom.xfuncname "bar" && + git config diff.custom.funcname "foo" + +' + +test_diff_funcname 'custom: config precedence' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +foo +EOF_HUNK +foo +bar + +ChangeMe + +baz +EOF_TEST + test_expect_success 'custom: teardown' ' test_unconfig diff.custom.funcname && test_unconfig diff.custom.xfuncname From patchwork Mon Feb 15 00:52:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087549 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 051A4C433E6 for ; Mon, 15 Feb 2021 00:55:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CA03D64E27 for ; Mon, 15 Feb 2021 00:55:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230204AbhBOAzB (ORCPT ); Sun, 14 Feb 2021 19:55:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49292 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230127AbhBOAy0 (ORCPT ); Sun, 14 Feb 2021 19:54:26 -0500 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C6A26C0617AB for ; Sun, 14 Feb 2021 16:53:11 -0800 (PST) Received: by mail-wr1-x436.google.com with SMTP id v7so7116762wrr.12 for ; Sun, 14 Feb 2021 16:53:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=URUjqn2Bo9nhQNOwRK+sq96L5AapwHMwmkjYXG54kvM=; b=j9VWUazW7vUtM0fbP8edM/nQLUD3w9Nv8/JE4zN8uBV+RNrJPwwwLVa4MotPyF/bNV Zo0dBGpIy0JX4l8Qkz7fjAt84Wf3TKYET0lhsZxC9p1UyQ3ufwgTR2YtLsWXmhhFkmc2 ed+Z1cL1IA9Mofod0d5iYYt2cMdK96gNVu6KwU1JXUpL51fOMdQVo3c3YfpoOmBrjnBE qdBV/Tl8a0PJOucYbDTulgHh4EltwA93dzhKaO57VWJYt7hAOEXUD/vQDvt0jQg0W8+O JxrCS7HY7v/soKyxHs0dpIimcQUVhRoie15RZxUECOn88o/05qE45g4zXFauRMX9R4cf Kfrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=URUjqn2Bo9nhQNOwRK+sq96L5AapwHMwmkjYXG54kvM=; b=f7oFT5N6KPZfG/aKDw5dJEJ7FrrFjReaiArAsCU3EB78JBfOfqoHii3tHJ5UyHqSrC PQofQQXmHPcCMCu6NOMbllbyIhGkRa3abLkAKoMCn+XG4ndlsMY4V7h4Dd4eKL6FITc+ 9G4yIohtXZ8kmSXmtPesf4LZ5rbtVNRFxuE1zc7DOvIFMEz2ohgXhEaUA9US+JOP36p5 84jWZrzzUY7p3OYVfG0mJrpgu8YSGfOUhW7KLIIuuffBODRVYpwSFhPReD0794Sv2tHQ iZqAB/47VZO20Mfh9WPbOHkl5KjkX98domr/3mHQbfFy8lGjHOx6vtF5B0cWYHiH0tBH tw9w== X-Gm-Message-State: AOAM532pHPHSNHc205pRLaFzz2ZOkl6AgQuwfNXnIIOYCtb6OVgirBNt JHUpPEI3/Aj97MCSYIylSb+C9lqrp59JkA== X-Google-Smtp-Source: ABdhPJyQz6C1IpYuR/m6X+tIq0VBGp/pUxbdoYrO8DWROmdJLkA+ypUqS9eX5F0wx8onmPhUEaF/qQ== X-Received: by 2002:a5d:6a89:: with SMTP id s9mr16229317wru.407.1613350390298; Sun, 14 Feb 2021 16:53:10 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:09 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 14/20] gitattributes doc: reword discussion of built-in userdiff patterns Date: Mon, 15 Feb 2021 01:52:30 +0100 Message-Id: <20210215005236.11313-15-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Reword the discussion of the built-in userdiff patterns to make it more natural to precede it with a discussion about the semantics of pattern matching, instead of assuming that it follows right after the "diff.tex.xfuncname" example which now immediately precedes it. This will make a follow-up commit smaller. Signed-off-by: Ævar Arnfjörð Bjarmason --- Documentation/gitattributes.txt | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt index e84e104f93..90992e2136 100644 --- a/Documentation/gitattributes.txt +++ b/Documentation/gitattributes.txt @@ -794,11 +794,17 @@ backslashes; the pattern above picks a line that begins with a backslash, and zero or more occurrences of `sub` followed by `section` followed by open brace, to the end of line. -There are a few built-in patterns to make this easier, and `tex` -is one of them, so you do not have to write the above in your -configuration file (you still need to enable this with the -attribute mechanism, via `.gitattributes`). The following built in -patterns are available: +There are built-in patterns shipped as part of git itself. A more +advanced version of the `tex` pattern discussed above is one of them. + +For built-in patterns you do not need the "diff.tex.xfuncname" +discussed above in your configuration file, but if present it'll +override the built-in pattern. + +You still need to enable built-in patterns with the the attribute +mechanism, via `.gitattributes`). + +The following built in patterns are available: - `ada` suitable for source code in the Ada language. From patchwork Mon Feb 15 00:52:31 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087553 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 24AEEC433E0 for ; Mon, 15 Feb 2021 00:55:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E6BCA64E56 for ; Mon, 15 Feb 2021 00:55:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229827AbhBOAzV (ORCPT ); Sun, 14 Feb 2021 19:55:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49262 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230155AbhBOAyi (ORCPT ); Sun, 14 Feb 2021 19:54:38 -0500 Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com [IPv6:2a00:1450:4864:20::32c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B7CBFC061356 for ; Sun, 14 Feb 2021 16:53:12 -0800 (PST) Received: by mail-wm1-x32c.google.com with SMTP id x4so6503605wmi.3 for ; Sun, 14 Feb 2021 16:53:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=oM3HQNyR2za0oGTolLI2lA7mIStPA4ZEqd0a5CNNwx8=; b=MZJ2TGUrSM1kRhN6dU9N2AIdVXwTvT9vmXWMl2MIf6YVaUniz0fvyQ/2Gh6tXBp/8t 91IVPwyJALwgfw6sV6KLph+bmIZDAi+RmZ1N+s7c8zY1WgGkE+Pd7WOzQaKOpq0YaY17 ztBEHsbzuBPr283SsoaIUivubSeobkQgVrAQQ3VAxFwlMKY+fkzNEG2Ob7lhmTEsNAW5 IouEEeGOOT73UNOGGw8owZzscdV+WUAbvnm1Ogzt5LKNBe9orY9IZJQdz5qmg1a03y60 qBgiqhZfsUmw731Td7WTVifQaqEsrhGLZuqv1LTBBNKK8ubUbs5Ao0s1KVTSBiECCVT0 5jyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=oM3HQNyR2za0oGTolLI2lA7mIStPA4ZEqd0a5CNNwx8=; b=sZA/EZBthXYj9loDZ71YorRGjwMLNIvcDWmkG/lZcN7LczwRcKcvhL6TCs0JAp3uDp goLrxhEvbQWQy6pRRWU9CXqwZU1iwX7meUi3Iy9OIUglzLreowRStYMLgpfaSZFqQWOc bVrSlfnIbnFhyka+TbqY73/qIO4+DGseRKhUj8k//ovbvZvalCqzc2HACvaKgK8vIqPg h9iLwZPFVVSz4cPDZgORktcTkQrV4PO7aA9CRCOlfu/MXFX+ismMOtRaIvANKcXTn16b SzX2klP2Hv2vggRE2xhztXgJHIu22DjGX9hoP1yga19w1yvNKhx73ymUhSryB4m/MTPQ ALjw== X-Gm-Message-State: AOAM5310tnridKtWgJ04YflT2HE9n2JqkqCMphzjnNJ/GkMIpo9aBHXG d+8Za0/pFegu7nNkP/k6bmPWnkY+lt5dzQ== X-Google-Smtp-Source: ABdhPJy8eAHA2zy8SZI08HZJzuLcDjAECTTRFLPSiE91BKDKFU08Zdx3nT0F9DC0WFzK0vPmzcrcYQ== X-Received: by 2002:a05:600c:204b:: with SMTP id p11mr11901781wmg.129.1613350391163; Sun, 14 Feb 2021 16:53:11 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:10 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 15/20] gitattributes doc: document multi-line userdiff patterns Date: Mon, 15 Feb 2021 01:52:31 +0100 Message-Id: <20210215005236.11313-16-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Document the multi-line userdiff patterns and how their matching and the negation syntax works. These patterns have been supported since f258475a6e (Per-path attribute based hunk header selection., 2007-07-06), and have had their current semantics ever since 3d8dccd74a (diff: fix "multiple regexp" semantics to find hunk header comment, 2008-09-20). But we had no documentation for them, let's fix that, and also add tests showing how some of the things being discussed here work. Signed-off-by: Ævar Arnfjörð Bjarmason --- Documentation/gitattributes.txt | 17 ++++++++++++++++ t/t4018/custom.sh | 35 +++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt index 90992e2136..225c17b90d 100644 --- a/Documentation/gitattributes.txt +++ b/Documentation/gitattributes.txt @@ -794,6 +794,23 @@ backslashes; the pattern above picks a line that begins with a backslash, and zero or more occurrences of `sub` followed by `section` followed by open brace, to the end of line. +Multiple patterns can be supplied by seperating them with +newlines. They will be matched one at a time and are compiled as +separate patterns, and thus the first capture in each such pattern is +`$1`, see further discussion of captures below. + +Patterns that begin with "!" are negated (to match a literal "!" at +the start of a line use e.g. "[!]"). A matching negated pattern will +cause the matching line to be skipped. Use it to blacklist otherwise +matching non-negated patterns. The last pattern must not be negated, +we'll error out if that's the case. + +If the pattern contains a `$1` capture it will be used instead of the +entire matching line (`$0`) to display the hunk header. This can be +used e.g. to strip whitespace from the beginning of the line, or to +only display the function name as part of a longer function +definition. + There are built-in patterns shipped as part of git itself. A more advanced version of the `tex` pattern discussed above is one of them. diff --git a/t/t4018/custom.sh b/t/t4018/custom.sh index b68d96a8af..cccf468c3a 100755 --- a/t/t4018/custom.sh +++ b/t/t4018/custom.sh @@ -122,3 +122,38 @@ test_expect_success 'custom: teardown' ' test_unconfig diff.custom.funcname && test_unconfig diff.custom.xfuncname ' + +test_expect_success 'custom: negation syntax, ! is magic' ' + git config diff.custom.xfuncname "!negation +line" +' + +test_diff_funcname 'custom: config precedence' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +line +EOF_HUNK +line +!negation + +ChangeMe + +baz +EOF_TEST + +test_expect_success 'custom: negation syntax, use [!] to override ! magic' ' + git config diff.custom.xfuncname "[!]negation +line" +' + +test_diff_funcname 'custom: config precedence' \ + 8<<\EOF_HUNK 9<<\EOF_TEST +!negation +EOF_HUNK +line +!negation + +ChangeMe + +baz +EOF_TEST + From patchwork Mon Feb 15 00:52:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087557 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D156FC433DB for ; Mon, 15 Feb 2021 00:56:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A495F64DDA for ; Mon, 15 Feb 2021 00:56:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229956AbhBOAzy (ORCPT ); Sun, 14 Feb 2021 19:55:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49428 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229992AbhBOAzH (ORCPT ); Sun, 14 Feb 2021 19:55:07 -0500 Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 84DCCC06121C for ; Sun, 14 Feb 2021 16:53:13 -0800 (PST) Received: by mail-wr1-x42a.google.com with SMTP id v7so7116801wrr.12 for ; Sun, 14 Feb 2021 16:53:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4Q+mACrRlbw12OuTd/jwTS9XoD5EdWZy9We4ahUXRSI=; b=rjVjAeWnwevLqC9uh86xyCRdJGzvymyVXzLWZdv8SNHkQinfHrYhdSfhmNaS8DMToj m7sNgiIE+6MizJs3UGo+5sO9WvYBJ7TNWPZlSzstwWakW3KX+T6C9R/YkuW8ct7S8KQp X9hE993OkVkm3iA/wGf3NXc4Midt9O+o4uM4VOenxe6umcr/WiUMlndB6wtgUBd8IVyA E2aX9W67QQrPqKIlawn/pw0jy250u4+d8uGxOBjN91GJRMEhZqrZQizsywOu3a4RBNcS Xka60Ac6pngOu9rNvggsaMIPRN3sVAsiyqlzDZcPlEQcyKkI8v544mjVpCXZDFSajGl4 0I9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4Q+mACrRlbw12OuTd/jwTS9XoD5EdWZy9We4ahUXRSI=; b=KED/UuttxTm780mC9/OKzYFHHEN9/zmC4FdtXQqCry9xdIqDfd4odqNJHZxUwrjJVe m0LyBUcBo+D0cnKOQjRjJmuXww4SK/z+52j7eCJA3MvdQddmsxqzaGnzkFDDRIitA5q4 Y4WVYyFQkt+/vCRZlM9W0Z1yP1e8qZlv5+4mYPACuI5/XUfhxYqzseCEWwgjIvs++M3K 6anK4XtnB3FIrl+cEuqbBOaFBKe/n0309+LXiOXhc0BySeklVLDcBz6izGRzaBsPELrg CHoYE2N6lTmYtbPRy+XXLUGXv5PJL5oJOgVkX6oaLIJoHsufC6LW0W4Fw2Uy2NCyCBq0 orkg== X-Gm-Message-State: AOAM533aZ2M4zbUMwA8EhvCFHrF4ae1pWkRzfRz97AUGPKZuOxPJu0Po nmTMjpgOUW0dHfEgi2FoP489/DoxCJOBDQ== X-Google-Smtp-Source: ABdhPJxqMCm0/D7BbjnnMzIrbb59IN1jOWaESfR6V/oqWhuqrCMnb0tncajAsybG/wjDkw42frKtqA== X-Received: by 2002:adf:e585:: with SMTP id l5mr15792023wrm.85.1613350392064; Sun, 14 Feb 2021 16:53:12 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:11 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 16/20] userdiff tests: remove "funcname" from custom3 test Date: Mon, 15 Feb 2021 01:52:32 +0100 Message-Id: <20210215005236.11313-17-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org We can only have one "funcname" or "xfuncname", any later definition overrides the earlier one, so this configuration wasn't doing anything. When this test was originally added in 3632cfc248 (Use compatibility regex library for OSX/Darwin, 2008-09-07) we had no such definition of two patters for this test. Back then this was setting the "diff.java.funcname" configuration variable. The stage for that second pattern being set got set later. In 45d9414fa5 (diff.*.xfuncname which uses "extended" regex's for hunk header selection, 2008-09-18) the pattern got converted from "funcname" to "xfuncname". Soon after in b19d288b4d (t4018-diff-funcname: demonstrate end of line funcname matching flaw, 2008-10-15) another test immediately preceding this one got added, using "diff.java.funcname" for its configuration. Then f792a0b88e (t4018 (funcname patterns): make configuration easier to track, 2011-05-21) came along and codified this whole thing when converting the two tests from "git config" to "test_config". Since this was never the intent of the test let's just remove this, the rationale in f792a0b88e for having some test for the clobbering behavior makes sense, but I'll do that in another follow-up test, not as a hard to read side-effect of this one. Signed-off-by: Ævar Arnfjörð Bjarmason --- t/t4018/custom.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/t/t4018/custom.sh b/t/t4018/custom.sh index cccf468c3a..81a68aa332 100755 --- a/t/t4018/custom.sh +++ b/t/t4018/custom.sh @@ -51,7 +51,6 @@ public class Beer EOF_TEST test_expect_success 'custom: setup alternation in pattern' ' - git config diff.custom.funcname "Beer$" && git config diff.custom.xfuncname "^[ ]*((public|static).*)$" ' @@ -133,6 +132,7 @@ test_diff_funcname 'custom: config precedence' \ line EOF_HUNK line + !negation ChangeMe From patchwork Mon Feb 15 00:52:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087551 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 31D72C433E9 for ; Mon, 15 Feb 2021 00:55:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0AC3264E75 for ; Mon, 15 Feb 2021 00:55:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230224AbhBOAzX (ORCPT ); Sun, 14 Feb 2021 19:55:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49264 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230160AbhBOAyj (ORCPT ); Sun, 14 Feb 2021 19:54:39 -0500 Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 43FC9C06121D for ; Sun, 14 Feb 2021 16:53:14 -0800 (PST) Received: by mail-wm1-x336.google.com with SMTP id l17so4719798wmq.2 for ; Sun, 14 Feb 2021 16:53:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=l9v+px97V4yYRgKRXikUPIuux0GOzihLG6GbhTTTYuA=; b=BYv6PQOnxJteAjct/d9wDoHbtYknmr35cRfkAodDZFpB7Qdb+H0wJESksHWwVOVWmC /CibA5rv6A+up4i+pBXgjVzod1avSezRqY8zR4JGqXUE3e0fvTbm9BaZvebCUqmd9eoY hpJIwhexM94XiItdlQdTZtKeFK888K6xLVl0JY2EdBxv54SRbXuufKfa8TVMIUhcqZZf 8Ex3zk2pGz19qMPD9LVnbRAZnfJH/09rHmqPwK803dAAiRerW0CZQ3y9oqABN9d9IOe8 lBSPJuytDyD2cQxHbqKZKIwb3fz3Itc0+u27ZcKAk1V8ZZUmEfCk/Ukc2j6X0wEIhZZb S75w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=l9v+px97V4yYRgKRXikUPIuux0GOzihLG6GbhTTTYuA=; b=FCuQ345pJVFv7/cegqdhRwzPMcP52DMdkt9zz6XUaR+m9EhG2f09Q54aUg5njjioPX fH1GKEVJUJo8VAWYf2d/6P4KEVahPSPaD6cDYoa7XgECGVpWgaegndiDuBNAt1/0Eo64 5r4KakhsoPHogNGc6TE/vuHyzZrz0hDe1Rz4uWmxSZnWZC4ntoRCwydTV6GTfl6xAHx/ TU0Mt2KHm+HisPcVKuTpiIoUNHWUWrLnTqy/KqOmjXjFjSwfnskg3aWMaOJiG3z8HoXz VxpRFYigInPYgMoIqJk8k/T4vPfcT0Y7nOoZ8bB02W9THuWzEnzh1zMOWUgr5Z1qe3kg 1mzA== X-Gm-Message-State: AOAM532o81qd1OxkpdEPf1K7w9NQ/xDJf9LqVSS96UKUwFkQBj9P6lGD Zm5RW5Zu6lupbyOTW7JzVOqiUHZks91Q0Q== X-Google-Smtp-Source: ABdhPJyZfKyLB5fnlkmd2AyQ7TPvXu+oGUp5ffEowSMv13mekXUS0OhsuYyCt0PQ94z8/X80Ksp/ag== X-Received: by 2002:a7b:c20c:: with SMTP id x12mr3385243wmi.174.1613350392807; Sun, 14 Feb 2021 16:53:12 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:12 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 17/20] userdiff tests: factor out test_diff_funcname() logic Date: Mon, 15 Feb 2021 01:52:33 +0100 Message-Id: <20210215005236.11313-18-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Factor out logic in test_diff_funcname() into two helper functions, these will be useful in a follow-up commit where we'll do this munging in more than one place. Signed-off-by: Ævar Arnfjörð Bjarmason --- t/t4018-diff-funcname.sh | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/t/t4018-diff-funcname.sh b/t/t4018-diff-funcname.sh index 3e4c07e42b..7a830ec57f 100755 --- a/t/t4018-diff-funcname.sh +++ b/t/t4018-diff-funcname.sh @@ -47,6 +47,17 @@ test_expect_success 'last regexp must not be negated' ' test_i18ngrep ": Last expression must not be negated:" msg ' +do_change_me () { + file=$1 + sed -e "s/ChangeMe/IWasChanged/" <"$file" >tmp && + mv tmp "$file" +} + +last_diff_context_line () { + file=$1 + sed -n -e "s/^.*@@\( \|$\)//p" <$file +} + test_diff_funcname () { desc=$1 cat <&8 >arg.header && @@ -57,13 +68,12 @@ test_diff_funcname () { cp arg.test "$what" && cp arg.header expected && git add "$what" && - sed -e "s/ChangeMe/IWasChanged/" <"$what" >tmp && - mv tmp "$what" + do_change_me "$what" ' && test_expect_success "$desc" ' git diff -U1 "$what" >diff && - sed -n -e "s/^.*@@\( \|$\)//p" actual && + last_diff_context_line diff >actual && test_cmp expected actual ' } From patchwork Mon Feb 15 00:52:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087559 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BFCA8C433E0 for ; Mon, 15 Feb 2021 00:56:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8AA7364E27 for ; Mon, 15 Feb 2021 00:56:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230228AbhBOAzd (ORCPT ); Sun, 14 Feb 2021 19:55:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49430 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230106AbhBOAzG (ORCPT ); Sun, 14 Feb 2021 19:55:06 -0500 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 12791C06121E for ; Sun, 14 Feb 2021 16:53:15 -0800 (PST) Received: by mail-wm1-x32a.google.com with SMTP id r5so1468414wmp.1 for ; Sun, 14 Feb 2021 16:53:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uDhodU3MGdTRdZH6VvhHlwV/e6SufajHdqHyMaEq5Z4=; b=DqMrjw2OTE1gZY5ttqw35swY4v8f2LOpLwX0e5p3sh2zbjUYIgfesHjMjCWWIGKMu1 aJtRsviBmPzWl4NWmaO0OPXJud0i5XCLPoSDRpTReiATXd0esAqsmuoiBIAmX/F4wyMi I56y9uG5xiXhtxtD+5QcGcfF4lrBPUn0a7BepME8xhweYoExkVvHi1uuElz75EgUn35H kLcgByHb0VaCUt0NCqJmQs17bC02r9CRMxgz1zcbC05yw0SOK66KciMGtslxuFR3JUQF F+vuh0cx1gS9fcsflFQPRKy+yLY4wbCpYbPr2yuBO8vE8hTyS/AufTk+7BgR6K1sEE2s cpPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=uDhodU3MGdTRdZH6VvhHlwV/e6SufajHdqHyMaEq5Z4=; b=VLiaL05awr9grvmKba+0izeolrs+U5PHssyBeZ4RJDcTG9vVr1m69qO0oMs1P0lmA0 YNaZrTaLgwvrUsXIenxslJLJ2CsyHMV40RWkiIKX8vOCONSmy9A910rsi2q7mLNk940M cw0xG4TP1TA41G4o2bf06S+repLJc9s3k3eTUrS3Ts+EkVeDzbOThaggJwgKEhvcqDJx /gWzKgA77fs8KjYdc5Kv3X7yg9AlLAuyWk+ffaFN+CKIb/FWmYxhI9cuB5dnrEZjl4wZ IffkClkYz4gsAXNkYlbTzSnMPzi8+kD7nZPxrLu2s3yHX9/xz1yLI2eaLbBesh5xA9+0 Vo+A== X-Gm-Message-State: AOAM530KBhbrjeNsZwXelk2o1ymvZnfXDFOuEGPCe+3B9DMwbf9cmcLZ kBoJkvzAQZ6F+w5lMNtMjes8AZVNn+asMw== X-Google-Smtp-Source: ABdhPJz92bkFbrNQcEJp0k5wAHCKXWuV0w51wiV63Q2D3YTI3CgmGyTgxCzjtM28XHVF50KVGTfoUw== X-Received: by 2002:a1c:67c3:: with SMTP id b186mr12235824wmc.24.1613350393538; Sun, 14 Feb 2021 16:53:13 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:13 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 18/20] userdiff tests: test hunk headers on accumulated files Date: Mon, 15 Feb 2021 01:52:34 +0100 Message-Id: <20210215005236.11313-19-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org The existing tests in "t/t4018/" are unrealistic in that they're all setting up small few-line isolated test cases with one thing we could match as a hunk header, right above the one change in the file. Expand those tests by accumulating changes within the same file type in the "test_diff_funcname" function. So e.g. for "bash" we'll end up a "bash.acc" file with 15 s/ChangeMe/IWasChanged/ changes. This stress tests whether the hunk header selection will "jump across" to an earlier change because the match for that is greedier. As it turns out we had one false positive in "t/t4018/cpp.sh" and "t4018/matlab.sh" because of how the tests were structured, we must always give the "ChangeMe" line at least one line of separation from the header, since it was at the end of those tests we'd select the "wrong" header. Let's adjust the spacing to compensate. So in the end we found nothing of interest here, regardless, I think it is useful to continue to test in this mode. It's likely to aid in finding bugs in combinations of our positive and negative matching as we add more built-in patterns. Signed-off-by: Ævar Arnfjörð Bjarmason --- t/t4018-diff-funcname.sh | 19 +++++++++++++++++++ t/t4018/cpp.sh | 1 + t/t4018/matlab.sh | 3 +++ 3 files changed, 23 insertions(+) diff --git a/t/t4018-diff-funcname.sh b/t/t4018-diff-funcname.sh index 7a830ec57f..0d75d93c69 100755 --- a/t/t4018-diff-funcname.sh +++ b/t/t4018-diff-funcname.sh @@ -71,10 +71,24 @@ test_diff_funcname () { do_change_me "$what" ' && + test_expect_success "setup: $desc (accumulated)" ' + cat arg.test >>arg.tests && + cp arg.tests "$what".acc && + git add "$what".acc && + do_change_me "$what".acc + ' && + test_expect_success "$desc" ' git diff -U1 "$what" >diff && last_diff_context_line diff >actual && test_cmp expected actual + ' && + + test_expect_success "$desc (accumulated)" ' + git diff -U1 "$what".acc >diff && + last_diff_context_line diff >actual.lines && + tail -n 1 actual.lines >actual && + test_cmp expected actual ' } @@ -92,6 +106,11 @@ do echo "$what" >arg.what ' && + test_expect_success "setup: hunk header for $what (accumulated)" ' + >arg.tests && + echo "$what.acc diff=$what" >>.gitattributes + ' && + . "$test" done diff --git a/t/t4018/cpp.sh b/t/t4018/cpp.sh index 185d40d5ef..e0ab749316 100755 --- a/t/t4018/cpp.sh +++ b/t/t4018/cpp.sh @@ -206,6 +206,7 @@ void wrong() struct RIGHT_iterator_tag {}; int ChangeMe; + EOF_TEST test_diff_funcname 'cpp: template function definition' \ diff --git a/t/t4018/matlab.sh b/t/t4018/matlab.sh index f62289148e..fba410e6f5 100755 --- a/t/t4018/matlab.sh +++ b/t/t4018/matlab.sh @@ -31,6 +31,7 @@ EOF_HUNK %%% RIGHT section # this is octave script ChangeMe = 1; + EOF_TEST test_diff_funcname 'matlab: octave section 2' \ @@ -40,6 +41,7 @@ EOF_HUNK ## RIGHT section # this is octave script ChangeMe = 1; + EOF_TEST test_diff_funcname 'matlab: section' \ @@ -49,4 +51,5 @@ EOF_HUNK %% RIGHT section % this is understood by both matlab and octave ChangeMe = 1; + EOF_TEST From patchwork Mon Feb 15 00:52:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087555 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3B4BBC43381 for ; Mon, 15 Feb 2021 00:55:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2244864DBA for ; Mon, 15 Feb 2021 00:55:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230206AbhBOAzZ (ORCPT ); Sun, 14 Feb 2021 19:55:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49272 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230163AbhBOAyl (ORCPT ); Sun, 14 Feb 2021 19:54:41 -0500 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D523FC06121F for ; Sun, 14 Feb 2021 16:53:15 -0800 (PST) Received: by mail-wm1-x32f.google.com with SMTP id o24so6468419wmh.5 for ; Sun, 14 Feb 2021 16:53:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pCghpJlZ2OVn7dkq4uUPkFvjuzk3NRxS3G8KglSm0vE=; b=TOnA02VoJ4SPohLinhoXaE6sRKKD3R5ro96E9b+UHpYZy2nCUXfbJnoBuXqNC7Vp+E u+UlrSRpTKhwvhrcI0GV3UPZfEW5xfrHfqV4JsjXUmzAg7IcEzOVkmrd4Qq5BwNVrm/g pU8H+mmErbSs1ecyWZcOv8Hegu+ftVjf2APo4DayRXUPDuN19yYXzZ0Fd4z0BirFq1xO GSuJLSr2Ja+KZCtBMFTm+upP2kSI7wwFB/ktSiZsBzbZ2ykCBN8vH6dUcFYQbZ0Ov75r CSmu+7PqOTm4y6rgQnxgjnpyzfr+2Uay7L8tozByln3zYtEms14ofdP07hZT4Ek/EK+x QdMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pCghpJlZ2OVn7dkq4uUPkFvjuzk3NRxS3G8KglSm0vE=; b=rHUkkWFtd8lTII16aJGBxIl2RVaFjAw/kEKf1o3Wbt4ZMvcaTsFk800KK5o0DeligE 99qWfgXj+nHMOvPHTUDHnFEU5SQQkVzLY+ieqG0/CjhSsagn47s3IvyzpK7HBSSrykn5 apEGOgirsoSYV9IOZeWDHNSZUfsUc8TT1busZu2i0SjoIGN11POft16ReR+iYhYZF7Vb 6vvhIE0pUGsxuLF16EBOh50vhzqNhrP76+KS3hki3Est0yyeLP+ztp/VSdK2ZNm7qees BzjFdm1zvpPtFpXokJRudqGwEPh37PvLpPvG7kT70ZPcNA8wEkBPXUby8q8PEEabI/T1 t09Q== X-Gm-Message-State: AOAM532LG1/e1NDFRizDnECMQR8ktd4D76VD37y87k+aDPYC15QPuKlC u2PPGqU3JcrzMaaGNdtGRiiUnKQoVaB50g== X-Google-Smtp-Source: ABdhPJyyA09x56SAWDmMnkSGSbLpNNdn7JmKYL4nwysy6fqRfU7pTSy2f+kWYZzF/U0e6P6dVMDb9Q== X-Received: by 2002:a1c:2cc5:: with SMTP id s188mr12281083wms.9.1613350394437; Sun, 14 Feb 2021 16:53:14 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:14 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 19/20] userdiff tests: test hunk header selection with -U0 Date: Mon, 15 Feb 2021 01:52:35 +0100 Message-Id: <20210215005236.11313-20-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org The userdiff tests have used a custom -U1 context since f12c66b9bb (userdiff/perl: anchor "sub" and "package" patterns on the left, 2011-05-21). Changing it to -U0 doesn't change the results for any of the tests, except one. Let's test for this case explicitly. I.e. that we go "beyond" the selected context to find our hunk header. In many cases the desired hunk header is part of the diff itself under -U1. Signed-off-by: Ævar Arnfjörð Bjarmason --- t/t4018-diff-funcname.sh | 13 +++++++++++++ t/t4018/custom.sh | 1 + 2 files changed, 14 insertions(+) diff --git a/t/t4018-diff-funcname.sh b/t/t4018-diff-funcname.sh index 0d75d93c69..94026b8296 100755 --- a/t/t4018-diff-funcname.sh +++ b/t/t4018-diff-funcname.sh @@ -63,6 +63,7 @@ test_diff_funcname () { cat <&8 >arg.header && cat <&9 >arg.test && what=$(cat arg.what) && + arg_diff_U0=$2 && test_expect_success "setup: $desc" ' cp arg.test "$what" && @@ -84,6 +85,18 @@ test_diff_funcname () { test_cmp expected actual ' && + test_expect_success "$desc -U0" ' + git diff -U0 "$what" >diff && + last_diff_context_line diff >actual && + if test -n "$arg_diff_U0" + then + echo "$arg_diff_U0" >new-expected && + test_cmp new-expected actual + else + test_cmp expected actual + fi + ' && + test_expect_success "$desc (accumulated)" ' git diff -U1 "$what".acc >diff && last_diff_context_line diff >actual.lines && diff --git a/t/t4018/custom.sh b/t/t4018/custom.sh index 81a68aa332..605e2d33ae 100755 --- a/t/t4018/custom.sh +++ b/t/t4018/custom.sh @@ -10,6 +10,7 @@ test_expect_success 'custom: setup non-trivial custom' ' ' test_diff_funcname 'custom: non-trivial custom pattern' \ + 'System.out.print(x + " bottles of beer on the wall "' \ 8<<\EOF_HUNK 9<<\EOF_TEST int special, RIGHT; EOF_HUNK From patchwork Mon Feb 15 00:52:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12087561 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F09B0C433DB for ; Mon, 15 Feb 2021 00:56:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C2F3064E27 for ; Mon, 15 Feb 2021 00:56:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230240AbhBOA4E (ORCPT ); Sun, 14 Feb 2021 19:56:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49438 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230050AbhBOAzV (ORCPT ); Sun, 14 Feb 2021 19:55:21 -0500 Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A2B71C061221 for ; Sun, 14 Feb 2021 16:53:16 -0800 (PST) Received: by mail-wm1-x330.google.com with SMTP id m1so6503001wml.2 for ; Sun, 14 Feb 2021 16:53:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=M/sLl8dRKf1qRn97nwzZWW+nGKGt+t6RpPQfPUjp7ts=; b=kmG7NlhGwX77L7LmonHedIeGtvnOThJrW7ZWJTo+KlHPGlF/fZeGkitLCqpzVXL3cB XIbo43h3/2UrMK+ptBks/WhXgc8bHyOQsCkxdkEMbrADJTa3JG2Q0hULmxRJ3eHWlQqg b634GCN/9b1Zn8eSFNmHZVyu+fNpdq6NFaQZQ+c77DDstS9tqn5wTVy2IqTyWUZd81Xa QGywOM/8wi7QdxEvbYmgLEILZ7/vLOqcRVMf/byr4wOA+qcdt2YtV1pGB9MgzJK9mRs3 KMCbUlSag4SbNw9t2W/gS3GFS4w7f4QZzzOqQR1YmNCiGzO6nKWwJIQ+85neOg5inCvf 9/yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=M/sLl8dRKf1qRn97nwzZWW+nGKGt+t6RpPQfPUjp7ts=; b=DDVxvctCFPUnri/YPUiNTS+6HYoZ60slcbeIbv70sVkoTeZ8N/QUmYATc/toOWvotK 1QpcdThtYcuC0nE3dPHDwCugdLLj/zTJwSA0wEpw5Wpnu5etJPH1qTkJ3aYQbduVvk5t 4MMdsHR2qhr4B8dqhWiatynbIGZV0rsvyyEqf0Xr6fKYk4oguGcgwk2eAKouUThSJMCD Zo+X7Js6yx9kQvnFYRkzLTWRcw8FhlxMWveQmwzlPCzZbcNb4k9g3rzXgvYYM88rnq/3 MA62cpZMp4adwKFr81ZErvff6zPktF/Ay8OcXEbjp5NCxextBlX85bz52hlFLVqYi6z2 XqFg== X-Gm-Message-State: AOAM5305LXkxthnv3eejNlPyVY2t/z23+csU/gAwshxXpfPeOLFdonMc vYpP+deltvjWUChnaXD1QiY8QgJ6tAeQ0w== X-Google-Smtp-Source: ABdhPJzA5SFjAt6VCecbAZrMp01DRavvNXYQqlejg+xl0LCW/hb8ONIjAqVVIAroDxhEvOrJwQxInA== X-Received: by 2002:a05:600c:2ca:: with SMTP id 10mr12300172wmn.151.1613350395183; Sun, 14 Feb 2021 16:53:15 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id 3sm5209832wmi.2.2021.02.14.16.53.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 16:53:14 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Sixt , Jeff King , Jonathan Nieder , Philippe Blain , Adam Spiers , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= Subject: [PATCH 20/20] userdiff tests: assert empty hunk header context on -U Date: Mon, 15 Feb 2021 01:52:36 +0100 Message-Id: <20210215005236.11313-21-avarab@gmail.com> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7 In-Reply-To: <87tuqebj6m.fsf@evledraar.gmail.com> References: <87tuqebj6m.fsf@evledraar.gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Assert the existing behavior that under -U we'll show no hunk header context, where takes us past the potential hunk header we'd have extracted. I'm just picking a number over nine thousand as a really large number we're unlikely to exceed in these tests. Signed-off-by: Ævar Arnfjörð Bjarmason --- t/t4018-diff-funcname.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/t/t4018-diff-funcname.sh b/t/t4018-diff-funcname.sh index 94026b8296..bd81974dab 100755 --- a/t/t4018-diff-funcname.sh +++ b/t/t4018-diff-funcname.sh @@ -103,6 +103,14 @@ test_diff_funcname () { tail -n 1 actual.lines >actual && test_cmp expected actual ' + + test_expect_success "$desc -U9001 (accumulated)" ' + git diff -U9001 "$what".acc >diff && + last_diff_context_line diff >actual.lines && + tail -n 1 actual.lines >actual && + echo >blank && + test_cmp blank actual + ' } for what in $diffpatterns