From patchwork Tue Jun 23 10:28:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denton Liu X-Patchwork-Id: 11620249 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0D5EC14E3 for ; Tue, 23 Jun 2020 10:28:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E907F2072E for ; Tue, 23 Jun 2020 10:28:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PLlzEDvk" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732201AbgFWK2V (ORCPT ); Tue, 23 Jun 2020 06:28:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45136 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732076AbgFWK2U (ORCPT ); Tue, 23 Jun 2020 06:28:20 -0400 Received: from mail-qk1-x741.google.com (mail-qk1-x741.google.com [IPv6:2607:f8b0:4864:20::741]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 82228C061755 for ; Tue, 23 Jun 2020 03:28:19 -0700 (PDT) Received: by mail-qk1-x741.google.com with SMTP id b4so18233613qkn.11 for ; Tue, 23 Jun 2020 03:28:19 -0700 (PDT) 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=03T/1SBccsrL8MxzlNoP+D0VvWFvUBc8YCfO8LcdObA=; b=PLlzEDvkZlSUB243tCHTa2y8+j1owYMDxiq4g6pN8NtlhBY0wIgTL3mGW6aYN0wqeE FXGNBPGFp2YUg2CTxlU0mTrV1sl/rvAmb2h1aKQkLe348gObOLdw7XDOPpucSuXPBD3o yifP76cpB0JipruDVqMN2q7bjGyfEQPifFZLlFYiqyzm2NASl1fThgiLXnDS8CCnRyk6 08thEgQ0zKAx3bcWOIFx+lVZkSaHFs1DOqwinHIAXeCCmltvEBkzxxvHs3O1Q6JrEEbc I/JputkHq2+fsraP7ePNkkb7fMJLiSbqtK6OhkE+io3aSoS8fGLTBYfZqkEAm+I0zI92 GNtw== 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=03T/1SBccsrL8MxzlNoP+D0VvWFvUBc8YCfO8LcdObA=; b=buacEUpL96TRUqDKW4ZSjNJNuYum2TMmIMEYfaXB+XriDXf88kh6eBmYRwyLNvY59Z b8swwTeKT3XpKCiZrxiT6gkFaaPrXgU43Xe0hjxTsnRqttqFlAab6561shPgiPdFTSDT 3Dnu+DEOildRDBpJw6f+0lyVLUCZU5l0uN1fktqiJS4/FfZkpHjxS7wxvM/1fo3CfVAO eNDDU7/ksRy0dHayGwXDziULpgd1NndNt4cQTE0WGTlUpw7KbvGLZDdjZGm55xF6usLS kL38fj++Y30gnlihT6jJOlakUehxka5jKOI07ET6Kuy3c146YEUdKd4Ulo0MiDOMnI+h ly5w== X-Gm-Message-State: AOAM530wdGB9cZwDnZ8iAEyV6S+dqMUltzAGy9YJa7Uve/KLGuz2+QMP Y47ZqrKZdyky8Hew8xwn9EOx1ivtzy8= X-Google-Smtp-Source: ABdhPJzUVZ86RP8m/M0AQZvLmXwqkjeivYRxAeE/0ykjgZmJktAEykO1wCodMaIDTPwnw8HRG5DtcA== X-Received: by 2002:a37:8946:: with SMTP id l67mr17169016qkd.457.1592908098550; Tue, 23 Jun 2020 03:28:18 -0700 (PDT) Received: from archbookpro.phub.net.cable.rogers.com (CPEc05627352ede-CM185933998587.cpe.net.cable.rogers.com. [174.112.146.193]) by smtp.gmail.com with ESMTPSA id a126sm153795qkc.82.2020.06.23.03.28.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 03:28:17 -0700 (PDT) From: Denton Liu To: Git Mailing List Cc: Junio C Hamano , Taylor Blau , Johannes Sixt , Eric Sunshine , Jeff King Subject: [PATCH v5 1/4] lib-submodule-update: add space after function name Date: Tue, 23 Jun 2020 06:28:02 -0400 Message-Id: X-Mailer: git-send-email 2.27.0.132.g321788e831 In-Reply-To: References: MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org In the shell scripts in this codebase, the usual style is to include a space between the function name and the (). Add these missing spaces to conform to the usual style of the code. Signed-off-by: Denton Liu --- t/lib-submodule-update.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/t/lib-submodule-update.sh b/t/lib-submodule-update.sh index 1dd17fc03e..122554acd6 100755 --- a/t/lib-submodule-update.sh +++ b/t/lib-submodule-update.sh @@ -183,7 +183,7 @@ test_git_directory_is_unchanged () { ) } -test_git_directory_exists() { +test_git_directory_exists () { test -e ".git/modules/$1" && if test -f sub1/.git then @@ -309,7 +309,7 @@ test_submodule_content () { # Internal function; use test_submodule_switch() or # test_submodule_forced_switch() instead. -test_submodule_switch_common() { +test_submodule_switch_common () { command="$1" ######################### Appearing submodule ######################### # Switching to a commit letting a submodule appear creates empty dir ... @@ -629,7 +629,7 @@ test_submodule_forced_switch () { # Internal function; use test_submodule_switch_recursing_with_args() or # test_submodule_forced_switch_recursing_with_args() instead. -test_submodule_recursing_with_args_common() { +test_submodule_recursing_with_args_common () { command="$1" ######################### Appearing submodule ######################### From patchwork Tue Jun 23 10:28:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denton Liu X-Patchwork-Id: 11620251 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 72A18138C for ; Tue, 23 Jun 2020 10:28:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5935920771 for ; Tue, 23 Jun 2020 10:28:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="s5N94Vsb" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732203AbgFWK2V (ORCPT ); Tue, 23 Jun 2020 06:28:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732182AbgFWK2U (ORCPT ); Tue, 23 Jun 2020 06:28:20 -0400 Received: from mail-qk1-x744.google.com (mail-qk1-x744.google.com [IPv6:2607:f8b0:4864:20::744]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9DFCCC061755 for ; Tue, 23 Jun 2020 03:28:20 -0700 (PDT) Received: by mail-qk1-x744.google.com with SMTP id f18so18305143qkh.1 for ; Tue, 23 Jun 2020 03:28:20 -0700 (PDT) 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=y2y7mFB0gE9guERvhw+Ck90cqDpvNTnrJ078+V80sl4=; b=s5N94VsbMsy0TBqM7bjIR7Cfg34G2FsCEb3Rntb3KCVPidWrDKBWDBiZTPLSggTDcr ITsc4P06WP1c9nGycdrrb0TtZSI/Nm5U8BE/K9gqdCQcWhDJsFx1MoJOiUSfHbRyDpNA igweOMFfpF2Pba+R+jvOZsHsofUgf4gR1Eyvz41YOUL2giIl/bg6Ve8zQGRU5a00DN7Z KMXaUJpTFcI0aarnXqBSTiRmOEWjN7SYLe0iG9gES/guBFMDvbdw+rg9UvxXM5+IlMwr Rcq0lMlrDiji/sriTnXtxG3hTFZsqGIQo7yDw0AG79DkERcvUN9t+xiutqQS+BvqxDWI AytA== 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=y2y7mFB0gE9guERvhw+Ck90cqDpvNTnrJ078+V80sl4=; b=XUpiEyJIw4dh+GOmokFasI1rFBks+blpdKHR/tW+kt3icrJVxO7G5a12nz59EAmrbJ En8MLS/FE7R3ii9W4szLDNmyZ2EdLAGtCvE6BYi1chUGx2n3cF+lmK8scsNjRgn6h55Q xKeY2RFZsRHwS/xKKyphP019wZIpbuHGBV/Sq+3pXDQs5TA/sWJi0MC1DYvuKVsL2xlc CBq0+Tw+9oAsqz2AH7Gcm2E5pVywt0/hzVNVH1hFBRrT25vP2qFFq6dUAs8wtSPE7uwW DobIzNEySsDtCPORabHh/xzSYhQTILQ8m+JYMZ8xiRJx03fHX68knZZoH8ohBkhR5AMd WYVA== X-Gm-Message-State: AOAM532Bd+QEV2Rt5QfdxetbHDVrrAW0iAkt0g35H8JuMvDrYdHePIJj 11RJHbofhQNz5KK1IEOTHMxY5KoNrd8= X-Google-Smtp-Source: ABdhPJxyry16u67Hh/bgw55u6EkeY6CdYQzI9/fvs9EsZLNLT8KlvZop9PrQffOAFbZ7cQLLqKfTcQ== X-Received: by 2002:a37:c87:: with SMTP id 129mr6096338qkm.319.1592908099589; Tue, 23 Jun 2020 03:28:19 -0700 (PDT) Received: from archbookpro.phub.net.cable.rogers.com (CPEc05627352ede-CM185933998587.cpe.net.cable.rogers.com. [174.112.146.193]) by smtp.gmail.com with ESMTPSA id a126sm153795qkc.82.2020.06.23.03.28.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 03:28:19 -0700 (PDT) From: Denton Liu To: Git Mailing List Cc: Junio C Hamano , Taylor Blau , Johannes Sixt , Eric Sunshine , Jeff King Subject: [PATCH v5 2/4] lib-submodule-update: consolidate --recurse-submodules Date: Tue, 23 Jun 2020 06:28:03 -0400 Message-Id: <16d0a3eb9ac8dcda701433a9e67cde5103949432.1592907663.git.liu.denton@gmail.com> X-Mailer: git-send-email 2.27.0.132.g321788e831 In-Reply-To: References: MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Both test_submodule_switch_recursing_with_args() and test_submodule_forced_switch_recursing_with_args() call the internal function test_submodule_recursing_with_args_common() with the final argument of `--recurse-submodules`. Consolidate this duplication by appending the argument in test_submodule_recursing_with_args_common(). Signed-off-by: Denton Liu --- t/lib-submodule-update.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/t/lib-submodule-update.sh b/t/lib-submodule-update.sh index 122554acd6..bb36287803 100755 --- a/t/lib-submodule-update.sh +++ b/t/lib-submodule-update.sh @@ -630,7 +630,7 @@ test_submodule_forced_switch () { # Internal function; use test_submodule_switch_recursing_with_args() or # test_submodule_forced_switch_recursing_with_args() instead. test_submodule_recursing_with_args_common () { - command="$1" + command="$1 --recurse-submodules" ######################### Appearing submodule ######################### # Switching to a commit letting a submodule appear checks it out ... @@ -809,7 +809,7 @@ test_submodule_recursing_with_args_common () { # test_submodule_switch_recursing_with_args "$GIT_COMMAND" test_submodule_switch_recursing_with_args () { cmd_args="$1" - command="git $cmd_args --recurse-submodules" + command="git $cmd_args" test_submodule_recursing_with_args_common "$command" RESULTDS=success @@ -927,7 +927,7 @@ test_submodule_switch_recursing_with_args () { # away local changes in the superproject is allowed. test_submodule_forced_switch_recursing_with_args () { cmd_args="$1" - command="git $cmd_args --recurse-submodules" + command="git $cmd_args" test_submodule_recursing_with_args_common "$command" RESULT=success From patchwork Tue Jun 23 10:28:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denton Liu X-Patchwork-Id: 11620257 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A243F161F for ; Tue, 23 Jun 2020 10:28:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 840A420771 for ; Tue, 23 Jun 2020 10:28:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RikI45t0" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732228AbgFWK22 (ORCPT ); Tue, 23 Jun 2020 06:28:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732223AbgFWK2X (ORCPT ); Tue, 23 Jun 2020 06:28:23 -0400 Received: from mail-qt1-x844.google.com (mail-qt1-x844.google.com [IPv6:2607:f8b0:4864:20::844]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E0BA2C061573 for ; Tue, 23 Jun 2020 03:28:21 -0700 (PDT) Received: by mail-qt1-x844.google.com with SMTP id z2so12880531qts.5 for ; Tue, 23 Jun 2020 03:28:21 -0700 (PDT) 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=igzrfi3WnJfvDZtO6KqpeiQtuUtzj80ciMuQ43kGxlw=; b=RikI45t0g6OwED5KGpoR+9bVF4FRxuTenA1Eu9QflQ0nAO4lJI63QMbx9o1BNquPmN uiyhjtXP4+V723rIhH0eofTTzDWfvOWuoK6G1fWm7jCLP/75x0K4pGbn6xnexl4nuIFB OIe5L93KCFGv9LN4McMb+uStfD/zb5rExYOGTJN0qXl0SykZzJ72F3HMe5fD4/mJiUJ0 Nn5zDHdxLDnu2GAHIEd05xoZe8+i7llySagOV+5j6XIIXwkdHZKr+mq2jJszzR0IoI30 60MTRLFxwloubBCI3InO4KmFx+yi3R7gbF3v6N33+icEa4DDxXoMZ1uigFRfrCsvUeeo VzLg== 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=igzrfi3WnJfvDZtO6KqpeiQtuUtzj80ciMuQ43kGxlw=; b=YGKTglo7f2dkPqPLMJ9ytP1W1I+lw0qT+/JLKhyf4oDOp42ZSt671CS9555Eu1YfsD I4oZnH+hyzRj9vaLZ3euqT5pEaEcTH0eTsQdeh+/8ymnpwZe6nL+PzS264QJgzrh7U2F k+2Mc9EW1vKH/vKm4motrMZBvDlzqqTBIaXXzqlkbxmN6EIKiHa+6ceOaCrc7h2DKmRa 4/fi6fvxm0VQd3QTWgoK99EhAclBD8vAdDEPkREauSBEYTPKItC3umLFQmN0MWQOyIfG PfqBCP7gJ76BI7LC/105Sjk8BjoxLpE5cNjVXjMePmL6rp78Af55nJNSw/jWb6kS04Fo WMKg== X-Gm-Message-State: AOAM531Yp+xpccGeFhwoCxqvWPIXKQPzWDFrBDgD5jx7umnebGurDGsf BHpsQVsKmJIYA1ALVA5UIG0wSc1ENqg= X-Google-Smtp-Source: ABdhPJwnqsS2wpgpBXF5Emx4IMAXTeX+rVYLIj1o1jRE/eQrSdrEZkT4FwmHyphZLBHgtWRUxQOebw== X-Received: by 2002:aed:3b29:: with SMTP id p38mr10195151qte.350.1592908100817; Tue, 23 Jun 2020 03:28:20 -0700 (PDT) Received: from archbookpro.phub.net.cable.rogers.com (CPEc05627352ede-CM185933998587.cpe.net.cable.rogers.com. [174.112.146.193]) by smtp.gmail.com with ESMTPSA id a126sm153795qkc.82.2020.06.23.03.28.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 03:28:20 -0700 (PDT) From: Denton Liu To: Git Mailing List Cc: Junio C Hamano , Taylor Blau , Johannes Sixt , Eric Sunshine , Jeff King Subject: [PATCH v5 3/4] lib-submodule-update: prepend "git" to $command Date: Tue, 23 Jun 2020 06:28:04 -0400 Message-Id: <09446be5b9e9d6291dae3531a93b588e0b7a1c3f.1592907663.git.liu.denton@gmail.com> X-Mailer: git-send-email 2.27.0.132.g321788e831 In-Reply-To: References: MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Since all invocations of test_submodule_forced_switch() are git commands, automatically prepend "git" before invoking test_submodule_switch_common(). Similarly, many invocations of test_submodule_switch() are also git commands so automatically prepend "git" before invoking test_submodule_switch_common() as well. Finally, for invocations of test_submodule_switch() that invoke a custom function, rename the old function to test_submodule_switch_func(). This is necessary because in a future commit, we will be adding some logic that needs to distinguish between an invocation of a plain git comamnd and an invocation of a test helper function. Signed-off-by: Denton Liu --- t/lib-submodule-update.sh | 14 +++++++++----- t/t1013-read-tree-submodule.sh | 4 ++-- t/t2013-checkout-submodule.sh | 4 ++-- t/t3426-rebase-submodule.sh | 4 ++-- t/t3512-cherry-pick-submodule.sh | 2 +- t/t3513-revert-submodule.sh | 2 +- t/t3906-stash-submodule.sh | 2 +- t/t4137-apply-submodule.sh | 4 ++-- t/t4255-am-submodule.sh | 4 ++-- t/t5572-pull-submodule.sh | 8 ++++---- t/t6041-bisect-submodule.sh | 2 +- t/t7112-reset-submodule.sh | 6 +++--- t/t7613-merge-submodule.sh | 8 ++++---- 13 files changed, 34 insertions(+), 30 deletions(-) diff --git a/t/lib-submodule-update.sh b/t/lib-submodule-update.sh index bb36287803..7c3ba1be00 100755 --- a/t/lib-submodule-update.sh +++ b/t/lib-submodule-update.sh @@ -307,8 +307,8 @@ test_submodule_content () { # to protect the history! # -# Internal function; use test_submodule_switch() or -# test_submodule_forced_switch() instead. +# Internal function; use test_submodule_switch_func(), test_submodule_switch(), +# or test_submodule_forced_switch() instead. test_submodule_switch_common () { command="$1" ######################### Appearing submodule ######################### @@ -566,8 +566,8 @@ test_submodule_switch_common () { # # Do something here that updates the worktree and index to match target, # # but not any submodule directories. # } -# test_submodule_switch "my_func" -test_submodule_switch () { +# test_submodule_switch_func "my_func" +test_submodule_switch_func () { command="$1" test_submodule_switch_common "$command" @@ -587,12 +587,16 @@ test_submodule_switch () { ' } +test_submodule_switch () { + test_submodule_switch_func "git $1" +} + # Same as test_submodule_switch(), except that throwing away local changes in # the superproject is allowed. test_submodule_forced_switch () { command="$1" KNOWN_FAILURE_FORCED_SWITCH_TESTS=1 - test_submodule_switch_common "$command" + test_submodule_switch_common "git $command" # When forced, a file in the superproject does not prevent creating a # submodule of the same name. diff --git a/t/t1013-read-tree-submodule.sh b/t/t1013-read-tree-submodule.sh index 91a6fafcb4..b6df7444c0 100755 --- a/t/t1013-read-tree-submodule.sh +++ b/t/t1013-read-tree-submodule.sh @@ -12,8 +12,8 @@ test_submodule_switch_recursing_with_args "read-tree -u -m" test_submodule_forced_switch_recursing_with_args "read-tree -u --reset" -test_submodule_switch "git read-tree -u -m" +test_submodule_switch "read-tree -u -m" -test_submodule_forced_switch "git read-tree -u --reset" +test_submodule_forced_switch "read-tree -u --reset" test_done diff --git a/t/t2013-checkout-submodule.sh b/t/t2013-checkout-submodule.sh index 8f86b5f4b2..b2bdd1fcb4 100755 --- a/t/t2013-checkout-submodule.sh +++ b/t/t2013-checkout-submodule.sh @@ -68,8 +68,8 @@ test_submodule_switch_recursing_with_args "checkout" test_submodule_forced_switch_recursing_with_args "checkout -f" -test_submodule_switch "git checkout" +test_submodule_switch "checkout" -test_submodule_forced_switch "git checkout -f" +test_submodule_forced_switch "checkout -f" test_done diff --git a/t/t3426-rebase-submodule.sh b/t/t3426-rebase-submodule.sh index a2bba04ba9..788605ccc0 100755 --- a/t/t3426-rebase-submodule.sh +++ b/t/t3426-rebase-submodule.sh @@ -20,7 +20,7 @@ git_rebase () { git rebase "$1" } -test_submodule_switch "git_rebase" +test_submodule_switch_func "git_rebase" git_rebase_interactive () { git status -su >expect && @@ -38,7 +38,7 @@ git_rebase_interactive () { git rebase -i "$1" } -test_submodule_switch "git_rebase_interactive" +test_submodule_switch_func "git_rebase_interactive" test_expect_success 'rebase interactive ignores modified submodules' ' test_when_finished "rm -rf super sub" && diff --git a/t/t3512-cherry-pick-submodule.sh b/t/t3512-cherry-pick-submodule.sh index bd78287841..6ece1d8573 100755 --- a/t/t3512-cherry-pick-submodule.sh +++ b/t/t3512-cherry-pick-submodule.sh @@ -7,7 +7,7 @@ test_description='cherry-pick can handle submodules' KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 -test_submodule_switch "git cherry-pick" +test_submodule_switch "cherry-pick" test_expect_success 'unrelated submodule/file conflict is ignored' ' test_create_repo sub && diff --git a/t/t3513-revert-submodule.sh b/t/t3513-revert-submodule.sh index 5e39fcdb66..95a7f64471 100755 --- a/t/t3513-revert-submodule.sh +++ b/t/t3513-revert-submodule.sh @@ -26,6 +26,6 @@ git_revert () { } KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 -test_submodule_switch "git_revert" +test_submodule_switch_func "git_revert" test_done diff --git a/t/t3906-stash-submodule.sh b/t/t3906-stash-submodule.sh index b93d1d74da..6a7e801ca0 100755 --- a/t/t3906-stash-submodule.sh +++ b/t/t3906-stash-submodule.sh @@ -19,7 +19,7 @@ git_stash () { KNOWN_FAILURE_STASH_DOES_IGNORE_SUBMODULE_CHANGES=1 KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1 KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 -test_submodule_switch "git_stash" +test_submodule_switch_func "git_stash" setup_basic () { test_when_finished "rm -rf main sub" && diff --git a/t/t4137-apply-submodule.sh b/t/t4137-apply-submodule.sh index a9bd40a6d0..b645e303a0 100755 --- a/t/t4137-apply-submodule.sh +++ b/t/t4137-apply-submodule.sh @@ -9,12 +9,12 @@ apply_index () { git diff --ignore-submodules=dirty "..$1" | git apply --index - } -test_submodule_switch "apply_index" +test_submodule_switch_func "apply_index" apply_3way () { git diff --ignore-submodules=dirty "..$1" | git apply --3way - } -test_submodule_switch "apply_3way" +test_submodule_switch_func "apply_3way" test_done diff --git a/t/t4255-am-submodule.sh b/t/t4255-am-submodule.sh index 0ba8194403..1b179d5f45 100755 --- a/t/t4255-am-submodule.sh +++ b/t/t4255-am-submodule.sh @@ -9,14 +9,14 @@ am () { git format-patch --stdout --ignore-submodules=dirty "..$1" | git am - } -test_submodule_switch "am" +test_submodule_switch_func "am" am_3way () { git format-patch --stdout --ignore-submodules=dirty "..$1" | git am --3way - } KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 -test_submodule_switch "am_3way" +test_submodule_switch_func "am_3way" test_expect_success 'setup diff.submodule' ' test_commit one && diff --git a/t/t5572-pull-submodule.sh b/t/t5572-pull-submodule.sh index f916729a12..f911bf631e 100755 --- a/t/t5572-pull-submodule.sh +++ b/t/t5572-pull-submodule.sh @@ -17,21 +17,21 @@ git_pull () { } # pulls without conflicts -test_submodule_switch "git_pull" +test_submodule_switch_func "git_pull" git_pull_ff () { reset_branch_to_HEAD "$1" && git pull --ff } -test_submodule_switch "git_pull_ff" +test_submodule_switch_func "git_pull_ff" git_pull_ff_only () { reset_branch_to_HEAD "$1" && git pull --ff-only } -test_submodule_switch "git_pull_ff_only" +test_submodule_switch_func "git_pull_ff_only" git_pull_noff () { reset_branch_to_HEAD "$1" && @@ -40,7 +40,7 @@ git_pull_noff () { KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 -test_submodule_switch "git_pull_noff" +test_submodule_switch_func "git_pull_noff" test_expect_success 'pull --recurse-submodule setup' ' test_create_repo child && diff --git a/t/t6041-bisect-submodule.sh b/t/t6041-bisect-submodule.sh index 62b8a2e7bb..0e0cdf638d 100755 --- a/t/t6041-bisect-submodule.sh +++ b/t/t6041-bisect-submodule.sh @@ -27,6 +27,6 @@ git_bisect () { git bisect bad $BAD } -test_submodule_switch "git_bisect" +test_submodule_switch_func "git_bisect" test_done diff --git a/t/t7112-reset-submodule.sh b/t/t7112-reset-submodule.sh index a1cb9ff858..8741b665c9 100755 --- a/t/t7112-reset-submodule.sh +++ b/t/t7112-reset-submodule.sh @@ -13,10 +13,10 @@ test_submodule_switch_recursing_with_args "reset --keep" test_submodule_forced_switch_recursing_with_args "reset --hard" -test_submodule_switch "git reset --keep" +test_submodule_switch "reset --keep" -test_submodule_switch "git reset --merge" +test_submodule_switch "reset --merge" -test_submodule_forced_switch "git reset --hard" +test_submodule_forced_switch "reset --hard" test_done diff --git a/t/t7613-merge-submodule.sh b/t/t7613-merge-submodule.sh index d1e9fcc781..04bf4be7d7 100755 --- a/t/t7613-merge-submodule.sh +++ b/t/t7613-merge-submodule.sh @@ -6,14 +6,14 @@ test_description='merge can handle submodules' . "$TEST_DIRECTORY"/lib-submodule-update.sh # merges without conflicts -test_submodule_switch "git merge" +test_submodule_switch "merge" -test_submodule_switch "git merge --ff" +test_submodule_switch "merge --ff" -test_submodule_switch "git merge --ff-only" +test_submodule_switch "merge --ff-only" KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 -test_submodule_switch "git merge --no-ff" +test_submodule_switch "merge --no-ff" test_done From patchwork Tue Jun 23 10:28:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denton Liu X-Patchwork-Id: 11620255 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F1DBF14E3 for ; Tue, 23 Jun 2020 10:28:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C832D20771 for ; Tue, 23 Jun 2020 10:28:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ku0TWdT8" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732242AbgFWK23 (ORCPT ); Tue, 23 Jun 2020 06:28:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45150 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732185AbgFWK2X (ORCPT ); Tue, 23 Jun 2020 06:28:23 -0400 Received: from mail-qt1-x841.google.com (mail-qt1-x841.google.com [IPv6:2607:f8b0:4864:20::841]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 36725C061755 for ; Tue, 23 Jun 2020 03:28:23 -0700 (PDT) Received: by mail-qt1-x841.google.com with SMTP id z2so12880556qts.5 for ; Tue, 23 Jun 2020 03:28:23 -0700 (PDT) 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=FkL/WFpZK+4XbnO2A6iqjSg2Nt34poQlX00cRGXCT8g=; b=ku0TWdT8EvoAEtqY5zTr2W1PUIMEhzS3EZ2N19ubHnqu9Q0/6Do/enZSgMeGztokYk 766XDl+dam4eLRv4OkYEjc7zjgZ3EuLODXE9Nq4D6W4o4a/Xe6bisnOVESLIY8Xj0GR9 fRTvuuyNF14Tau4RXtxfBF5brFTbWkJfRqniKjHrxYGgEa61M+6N4Kmp1mELRLm00SnC cAhFcFUlU34BoxchqUUA2jPdehTqQ9dSXW+Ug45tV8PUpWlZDjsxrQu3GdbMtZv7/QHI yd5Wvr8MUYzxXVwsbHOKTmjsdL/QtGy7oMd68K/tm44ojVcLI5vtvqNcdg90AWTS4cP3 SrbA== 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=FkL/WFpZK+4XbnO2A6iqjSg2Nt34poQlX00cRGXCT8g=; b=RfPFyNhslqH6t3MuEaHz54i1w70RGzDPC6qlm8mCgeCHWmCgSSgMzdmA7wPnISN3ks SjTN2vTI/xU8R9WRxPDrmVl5Janw/h/Z3Yn6OQ+Iok8Mg672JWK8ULy7AjWqXGf3pXHs TPLv4VIW0qNX38Fw0NDgiwx+jojXmbFlJiXRT7Zzh5BH6EXh9ItJyu3+IWAE5G+gk/c3 GoBB0z/k08lsttdBiYGjeHcx/+ES5CGXvbjvRU8XW2AtnQc3Ro9fTWRmpsJe99AFOfVE GUw/Ct6gsYT2WKo+RQ02Z00ECgYuCguJvxKcjD/rvdyOJ1fVZfJ/d/07Jj+BfCXzoTZ0 xk3g== X-Gm-Message-State: AOAM531nkttMBkY6nAvuGeRnNRllGJpuT/mjUFIfAS2TL0mLJiMbX5FY qKY12NMMkLhIpQ1vAWlMaDsJhsoELog= X-Google-Smtp-Source: ABdhPJziz3nPi/Hiegp6XopGu270CdfqXnEVdbypnjgfHXpzPhdqInD7k3I2Q9CRKasDvyEBKBF+cA== X-Received: by 2002:ac8:895:: with SMTP id v21mr20707474qth.185.1592908102025; Tue, 23 Jun 2020 03:28:22 -0700 (PDT) Received: from archbookpro.phub.net.cable.rogers.com (CPEc05627352ede-CM185933998587.cpe.net.cable.rogers.com. [174.112.146.193]) by smtp.gmail.com with ESMTPSA id a126sm153795qkc.82.2020.06.23.03.28.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 03:28:21 -0700 (PDT) From: Denton Liu To: Git Mailing List Cc: Junio C Hamano , Taylor Blau , Johannes Sixt , Eric Sunshine , Jeff King Subject: [PATCH v5 4/4] lib-submodule-update: use callbacks in test_submodule_switch_common() Date: Tue, 23 Jun 2020 06:28:05 -0400 Message-Id: <250eee1dd35485bec33b80a6c97ecc3c3f276280.1592907663.git.liu.denton@gmail.com> X-Mailer: git-send-email 2.27.0.132.g321788e831 In-Reply-To: References: MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org When we run a test helper function in test_submodule_switch_common(), we sometimes specify a whole helper function as the $command. When we do this, in some test cases, we just mark the whole function with `test_must_fail`. However, it's possible that the helper function might fail earlier or later than expected due to an introduced bug. If this happens, then the test case will still report as passing but it should really be marked as failing since it didn't actually display the intended behaviour. Instead of invoking $command as one monolithic helper function, break it up into two parts: 1. $command which is a function containing a git command. 2. $after which is a callback function that runs just after $command. If the command requires a filename argument, it will be passed in as the first arg. The $after callback function will be passed the filename as the first arg. This callback function is optional and, if missing, will be replaced with `true`. Also, in the case where we have a `test_must_fail` test, $after will not be executed, similar to how the helper functions currently behave when the git command fails and exits the &&-chain. Finally, as an added bonus, `test_must_fail` will now only run on git commands. An alternate design was considered where $OVERWRITING_FAIL is set from test_submodule_switch_common() and exposed to the helper function. This approach was considered too difficult to understand due to the fact that using a signalling magic environment variable might be too indirect. Signed-off-by: Denton Liu --- t/lib-submodule-update.sh | 89 +++++++++++++++++++++++++++---------- t/t3426-rebase-submodule.sh | 4 +- t/t3513-revert-submodule.sh | 7 ++- t/t3906-stash-submodule.sh | 7 ++- t/t4137-apply-submodule.sh | 6 ++- t/t4255-am-submodule.sh | 6 ++- t/t5572-pull-submodule.sh | 8 ++-- t/t6041-bisect-submodule.sh | 7 ++- 8 files changed, 94 insertions(+), 40 deletions(-) diff --git a/t/lib-submodule-update.sh b/t/lib-submodule-update.sh index 7c3ba1be00..104090b489 100755 --- a/t/lib-submodule-update.sh +++ b/t/lib-submodule-update.sh @@ -290,6 +290,17 @@ test_submodule_content () { ) } +test_command () { + command="$1" after="$2" arg="$3" && + $command "$arg" && + $after "$arg" +} + +test_command_fail () { + command="$1" arg="$2" && + $command "$arg" test_must_fail +} + # Test that the following transitions are correctly handled: # - Updated submodule # - New submodule @@ -306,11 +317,20 @@ test_submodule_content () { # Removing a submodule containing a .git directory must fail even when forced # to protect the history! # +# $1: The function which contains the git command. It will be passed two +# arguments. $1 will be the submodule being operated on. $2 will be +# "test_must_fail" if the git command is expected to fail, else the empty +# string. +# +# $2: The function that will run after $1. It will be passed the submodule +# being operated on as the only argument. This argument is optional. It will +# not be run when testing a case where the git command is expected to fail. # Internal function; use test_submodule_switch_func(), test_submodule_switch(), # or test_submodule_forced_switch() instead. test_submodule_switch_common () { - command="$1" + command="$1" after="${2:-true}" + ######################### Appearing submodule ######################### # Switching to a commit letting a submodule appear creates empty dir ... if test "$KNOWN_FAILURE_STASH_DOES_IGNORE_SUBMODULE_CHANGES" = 1 @@ -326,7 +346,7 @@ test_submodule_switch_common () { ( cd submodule_update && git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && + test_command "$command" "$after" add_sub1 && test_superproject_content origin/add_sub1 && test_dir_is_empty sub1 && git submodule update --init --recursive && @@ -341,7 +361,7 @@ test_submodule_switch_common () { cd submodule_update && mkdir sub1 && git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && + test_command "$command" "$after" add_sub1 && test_superproject_content origin/add_sub1 && test_dir_is_empty sub1 && git submodule update --init --recursive && @@ -356,7 +376,7 @@ test_submodule_switch_common () { ( cd submodule_update && git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && + test_command "$command" "$after" replace_file_with_sub1 && test_superproject_content origin/replace_file_with_sub1 && test_dir_is_empty sub1 && git submodule update --init --recursive && @@ -380,7 +400,7 @@ test_submodule_switch_common () { ( cd submodule_update && git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && + test_command "$command" "$after" replace_directory_with_sub1 && test_superproject_content origin/replace_directory_with_sub1 && test_dir_is_empty sub1 && git submodule update --init --recursive && @@ -402,7 +422,7 @@ test_submodule_switch_common () { ( cd submodule_update && git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && + test_command "$command" "$after" remove_sub1 && test_superproject_content origin/remove_sub1 && test_submodule_content sub1 origin/add_sub1 ) @@ -415,7 +435,7 @@ test_submodule_switch_common () { cd submodule_update && git branch -t remove_sub1 origin/remove_sub1 && replace_gitfile_with_git_dir sub1 && - $command remove_sub1 && + test_command "$command" "$after" remove_sub1 && test_superproject_content origin/remove_sub1 && test_git_directory_is_unchanged sub1 && test_submodule_content sub1 origin/add_sub1 @@ -443,7 +463,7 @@ test_submodule_switch_common () { ( cd submodule_update && git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - test_must_fail $command replace_sub1_with_directory && + test_command_fail "$command" replace_sub1_with_directory && test_superproject_content origin/add_sub1 && test_submodule_content sub1 origin/add_sub1 ) @@ -456,7 +476,7 @@ test_submodule_switch_common () { cd submodule_update && git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && replace_gitfile_with_git_dir sub1 && - test_must_fail $command replace_sub1_with_directory && + test_command_fail "$command" replace_sub1_with_directory && test_superproject_content origin/add_sub1 && test_git_directory_is_unchanged sub1 && test_submodule_content sub1 origin/add_sub1 @@ -470,7 +490,7 @@ test_submodule_switch_common () { ( cd submodule_update && git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - test_must_fail $command replace_sub1_with_file && + test_command_fail "$command" replace_sub1_with_file && test_superproject_content origin/add_sub1 && test_submodule_content sub1 origin/add_sub1 ) @@ -484,7 +504,7 @@ test_submodule_switch_common () { cd submodule_update && git branch -t replace_sub1_with_file origin/replace_sub1_with_file && replace_gitfile_with_git_dir sub1 && - test_must_fail $command replace_sub1_with_file && + test_command_fail "$command" replace_sub1_with_file && test_superproject_content origin/add_sub1 && test_git_directory_is_unchanged sub1 && test_submodule_content sub1 origin/add_sub1 @@ -508,7 +528,7 @@ test_submodule_switch_common () { ( cd submodule_update && git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && + test_command "$command" "$after" modify_sub1 && test_superproject_content origin/modify_sub1 && test_submodule_content sub1 origin/add_sub1 && git submodule update && @@ -523,7 +543,7 @@ test_submodule_switch_common () { ( cd submodule_update && git branch -t invalid_sub1 origin/invalid_sub1 && - $command invalid_sub1 && + test_command "$command" "$after" invalid_sub1 && test_superproject_content origin/invalid_sub1 && test_submodule_content sub1 origin/add_sub1 && test_must_fail git submodule update && @@ -538,7 +558,7 @@ test_submodule_switch_common () { ( cd submodule_update && git branch -t valid_sub1 origin/valid_sub1 && - $command valid_sub1 && + test_command "$command" "$after" valid_sub1 && test_superproject_content origin/valid_sub1 && test_dir_is_empty sub1 && git submodule update --init --recursive && @@ -559,17 +579,32 @@ test_submodule_switch_common () { # conditions, set the appropriate KNOWN_FAILURE_* variable used in the tests # below to 1. # -# Use as follows: +# $1: The function which contains the git command. It will be passed two +# arguments. $1 will be the submodule being operated on. $2 will be +# "test_must_fail" if the git command is expected to fail, else the empty +# string. +# +# $2: The function that will run after $1. It will be passed the submodule +# being operated on as the only argument. This argument is optional. It will +# not be run when testing a case where the git command is expected to fail. +# +# The following example uses `git some-command` as an example command to be +# tested. It updates the worktree and index to match a target, but not any +# submodule directories. # # my_func () { # target=$1 -# # Do something here that updates the worktree and index to match target, -# # but not any submodule directories. +# $2 git some-command $target # } -# test_submodule_switch_func "my_func" +# my_func_after () { +# target=$1 +# # Check the state after git some-command is run +# } +# test_submodule_switch_func "my_func" "my_func_after" test_submodule_switch_func () { command="$1" - test_submodule_switch_common "$command" + after="$2" + test_submodule_switch_common "$command" "$after" # An empty directory does not prevent the creation of a submodule of # the same name, but a file does. @@ -580,23 +615,29 @@ test_submodule_switch_func () { cd submodule_update && git branch -t add_sub1 origin/add_sub1 && >sub1 && - test_must_fail $command add_sub1 && + test_command_fail "$command" add_sub1 && test_superproject_content origin/no_submodule && test_must_be_empty sub1 ) ' } +git_test_func () { + $2 git $gitcmd "$1" +} + test_submodule_switch () { - test_submodule_switch_func "git $1" + gitcmd="$1" + test_submodule_switch_func "git_test_func" } # Same as test_submodule_switch(), except that throwing away local changes in # the superproject is allowed. test_submodule_forced_switch () { - command="$1" + gitcmd="$1" + command="git_test_func" KNOWN_FAILURE_FORCED_SWITCH_TESTS=1 - test_submodule_switch_common "git $command" + test_submodule_switch_common "$command" # When forced, a file in the superproject does not prevent creating a # submodule of the same name. @@ -607,7 +648,7 @@ test_submodule_forced_switch () { cd submodule_update && git branch -t add_sub1 origin/add_sub1 && >sub1 && - $command add_sub1 && + test_command "$command" true add_sub1 && test_superproject_content origin/add_sub1 && test_dir_is_empty sub1 ) diff --git a/t/t3426-rebase-submodule.sh b/t/t3426-rebase-submodule.sh index 788605ccc0..dd5daa53d3 100755 --- a/t/t3426-rebase-submodule.sh +++ b/t/t3426-rebase-submodule.sh @@ -17,7 +17,7 @@ git_rebase () { git status -su >actual && ls -1pR * >>actual && test_cmp expect actual && - git rebase "$1" + $2 git rebase "$1" } test_submodule_switch_func "git_rebase" @@ -35,7 +35,7 @@ git_rebase_interactive () { test_cmp expect actual && set_fake_editor && echo "fake-editor.sh" >.git/info/exclude && - git rebase -i "$1" + $2 git rebase -i "$1" } test_submodule_switch_func "git_rebase_interactive" diff --git a/t/t3513-revert-submodule.sh b/t/t3513-revert-submodule.sh index 95a7f64471..7ac06731bd 100755 --- a/t/t3513-revert-submodule.sh +++ b/t/t3513-revert-submodule.sh @@ -15,7 +15,10 @@ git_revert () { git status -su >expect && ls -1pR * >>expect && tar cf "$TRASH_DIRECTORY/tmp.tar" * && - git checkout "$1" && + $2 git checkout "$1" +} + +git_revert_after () { git revert HEAD && rm -rf * && tar xf "$TRASH_DIRECTORY/tmp.tar" && @@ -26,6 +29,6 @@ git_revert () { } KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 -test_submodule_switch_func "git_revert" +test_submodule_switch_func "git_revert" "git_revert_after" test_done diff --git a/t/t3906-stash-submodule.sh b/t/t3906-stash-submodule.sh index 6a7e801ca0..30bdc113cd 100755 --- a/t/t3906-stash-submodule.sh +++ b/t/t3906-stash-submodule.sh @@ -8,7 +8,10 @@ test_description='stash can handle submodules' git_stash () { git status -su >expect && ls -1pR * >>expect && - git read-tree -u -m "$1" && + $2 git read-tree -u -m "$1" +} + +git_stash_after () { git stash && git status -su >actual && ls -1pR * >>actual && @@ -19,7 +22,7 @@ git_stash () { KNOWN_FAILURE_STASH_DOES_IGNORE_SUBMODULE_CHANGES=1 KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1 KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 -test_submodule_switch_func "git_stash" +test_submodule_switch_func "git_stash" "git_stash_after" setup_basic () { test_when_finished "rm -rf main sub" && diff --git a/t/t4137-apply-submodule.sh b/t/t4137-apply-submodule.sh index b645e303a0..5477d48ffd 100755 --- a/t/t4137-apply-submodule.sh +++ b/t/t4137-apply-submodule.sh @@ -6,13 +6,15 @@ test_description='git apply handling submodules' . "$TEST_DIRECTORY"/lib-submodule-update.sh apply_index () { - git diff --ignore-submodules=dirty "..$1" | git apply --index - + git diff --ignore-submodules=dirty "..$1" >diff && + $2 git apply --index diff } test_submodule_switch_func "apply_index" apply_3way () { - git diff --ignore-submodules=dirty "..$1" | git apply --3way - + git diff --ignore-submodules=dirty "..$1" >diff + $2 git apply --3way diff } test_submodule_switch_func "apply_3way" diff --git a/t/t4255-am-submodule.sh b/t/t4255-am-submodule.sh index 1b179d5f45..8403124ac0 100755 --- a/t/t4255-am-submodule.sh +++ b/t/t4255-am-submodule.sh @@ -6,13 +6,15 @@ test_description='git am handling submodules' . "$TEST_DIRECTORY"/lib-submodule-update.sh am () { - git format-patch --stdout --ignore-submodules=dirty "..$1" | git am - + git format-patch --stdout --ignore-submodules=dirty "..$1" >patch && + $2 git am patch } test_submodule_switch_func "am" am_3way () { - git format-patch --stdout --ignore-submodules=dirty "..$1" | git am --3way - + git format-patch --stdout --ignore-submodules=dirty "..$1" >patch && + $2 git am --3way patch } KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 diff --git a/t/t5572-pull-submodule.sh b/t/t5572-pull-submodule.sh index f911bf631e..cfa40b9251 100755 --- a/t/t5572-pull-submodule.sh +++ b/t/t5572-pull-submodule.sh @@ -13,7 +13,7 @@ reset_branch_to_HEAD () { git_pull () { reset_branch_to_HEAD "$1" && - git pull + $2 git pull } # pulls without conflicts @@ -21,21 +21,21 @@ test_submodule_switch_func "git_pull" git_pull_ff () { reset_branch_to_HEAD "$1" && - git pull --ff + $2 git pull --ff } test_submodule_switch_func "git_pull_ff" git_pull_ff_only () { reset_branch_to_HEAD "$1" && - git pull --ff-only + $2 git pull --ff-only } test_submodule_switch_func "git_pull_ff_only" git_pull_noff () { reset_branch_to_HEAD "$1" && - git pull --no-ff + $2 git pull --no-ff } KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 diff --git a/t/t6041-bisect-submodule.sh b/t/t6041-bisect-submodule.sh index 0e0cdf638d..e213876fcd 100755 --- a/t/t6041-bisect-submodule.sh +++ b/t/t6041-bisect-submodule.sh @@ -10,7 +10,10 @@ git_bisect () { ls -1pR * >>expect && tar cf "$TRASH_DIRECTORY/tmp.tar" * && GOOD=$(git rev-parse --verify HEAD) && - git checkout "$1" && + $2 git checkout "$1" +} + +git_bisect_after () { echo "foo" >bar && git add bar && git commit -m "bisect bad" && @@ -27,6 +30,6 @@ git_bisect () { git bisect bad $BAD } -test_submodule_switch_func "git_bisect" +test_submodule_switch_func "git_bisect" "git_bisect_after" test_done