From patchwork Mon Oct 7 10:51:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Usman Akinyemi X-Patchwork-Id: 13824432 Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22B5018BC29 for ; Mon, 7 Oct 2024 10:51:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728298315; cv=none; b=Oa5Xe9TTPfdNu9EAv2ixFOkMfNk00GWOUlk+dGjiPIykq38HbgQwXY+OpCIgX9FsRioAchFUkyUJsrfAV0BPZOZjP4/VsQoIPBoUFzUXHzYC2PT/6nUwGnjFr2Tt7AzjCbw2wNMl1sj+pF0BUerjx4sjwokwxxzGh6jAUTUHreI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728298315; c=relaxed/simple; bh=8X7AYbIkdi6HWMJsOn8WL8bQ8PJ1PdePDY/MmQ8HcQA=; h=Message-Id:In-Reply-To:References:From:Date:Subject:Content-Type: MIME-Version:To:Cc; b=t6Gs9uCD8EWO8dpd138S3SoYoxSV5xknm6ScIqmcX6FCuWOehYSlDb68s8W+xsmBm4B5iwe2oMdzirQWsxwGHPRwOvt6y8BAQdRBlItnr/nnPbS+caOJk480ik0aDX8f5w+Q/LXPYqAUMWAQWMsFhpaLtMDF/2bb494ABY/s05k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=fU7eqwGf; arc=none smtp.client-ip=209.85.208.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="fU7eqwGf" Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-5c896b9b3e1so6028710a12.2 for ; Mon, 07 Oct 2024 03:51:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1728298310; x=1728903110; darn=vger.kernel.org; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:from:to:cc:subject:date :message-id:reply-to; bh=eDnWYjNHpEFCxbMSFSMnpDZIaC6pxr1AJpOo0w99cRM=; b=fU7eqwGflg452pMaIFHgNHkepvinkB0gW8YQ1WhEhs1ljFp6Cpz4KmhzoFFyFM92+j w7qx0jG/I0zifTCWXixnQrxK8FYRFhuFBqp7gB84/yasyDrVXL6YjlrH53pF7p3ld7cn 521EXR02EgxJ9SxCn41o9nRp2oypQITGBftLLIRVPUY5JfOR5o/24OtzVziG5ECwNBKv 48pxqqESn1RlOggdVbbfXs0MJkKeIkcifiODm1xCEcZPbekRH7w85fUnwi4q0pTSd3Kp hZnFSuB5fOfcQMzip/0XBFxkoo1U4oDRIoXB9X1PIwp7pz5iDgG6uwQsWyU+n3trGKNv ZbkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728298310; x=1728903110; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eDnWYjNHpEFCxbMSFSMnpDZIaC6pxr1AJpOo0w99cRM=; b=PfBQCO1tbjE0aCAhlHkHiV4lrU4gfqbeimxHva0KWlq3uNI8Yk+NVl5tNnvFi18uGt yU7k6SVD/cHQ7rBp+fdaNudYdATwSG07I97b4WmFbo+GklKzxd76tUBWNCP+VCJMM8sm Cr52oywFs72L5YiIhbBYy4OKOWyiQNm/xl9NLTS72TvQXCyFhpnJARmZZ6qfiF7oT5G1 wI64ebEp9+OQmfBdW2wz5yxhHF25AznLOrc3RV9SfjUht6StTeYYSDknHOcEk+Ra/B5y 8wd4QQPwJg7lPSUq+Y71yChAqJiNurp8Au8ef6iBoEm6Au9mrJL2ToqqUKdiKpfm/tkR 4YYw== X-Gm-Message-State: AOJu0Yy5/5mmdhZrxzBLoj2IuFVpmH0Uf7x8eXRfoRHvvwlqCx4TVG+m qMfEdzRN2C+I9PylukKfDMjEaXrj/iJLm5it9IzuQh4dTbUGZG3/P2tTsQ== X-Google-Smtp-Source: AGHT+IGjl64sNkxroBB/tbSYToJ3L9jDeWm9IXa/v9N6blzJkVDcVvWd3DyJ6EIYEYG19iE0ZKDXIw== X-Received: by 2002:a05:6402:2695:b0:5c5:c5c0:74ec with SMTP id 4fb4d7f45d1cf-5c8d2e73b39mr11026170a12.24.1728298310390; Mon, 07 Oct 2024 03:51:50 -0700 (PDT) Received: from [127.0.0.1] ([13.74.141.28]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5c8e05f3a6csm3042337a12.81.2024.10.07.03.51.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Oct 2024 03:51:50 -0700 (PDT) Message-Id: In-Reply-To: References: Date: Mon, 07 Oct 2024 10:51:47 +0000 Subject: [PATCH v5 1/2] t3404: avoid losing exit status with focus on `git show` and `git cat-file` Fcc: Sent Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 To: git@vger.kernel.org Cc: Patrick Steinhardt , Usman Akinyemi , Usman Akinyemi From: Usman Akinyemi From: Usman Akinyemi The exit code of the preceding command in a pipe is disregarded. So if that preceding command is a Git command that fails, the test would not fail. Instead, by saving the output of that Git command to a file, and removing the pipe, we make sure the test will fail if that Git command fails. This particular patch focuses on all `git show` and some instances of `git cat-file`. Signed-off-by: Usman Akinyemi --- t/t3404-rebase-interactive.sh | 71 +++++++++++++++++++++++------------ 1 file changed, 48 insertions(+), 23 deletions(-) diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index f171af3061d..96a65783c47 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -319,7 +319,8 @@ test_expect_success 'retain authorship' ' GIT_AUTHOR_NAME="Twerp Snog" git commit -m "different author" && git tag twerp && git rebase -i --onto primary HEAD^ && - git show HEAD | grep "^Author: Twerp Snog" + git show HEAD >actual && + grep "^Author: Twerp Snog" actual ' test_expect_success 'retain authorship w/ conflicts' ' @@ -360,7 +361,8 @@ test_expect_success 'squash' ' ' test_expect_success 'retain authorship when squashing' ' - git show HEAD | grep "^Author: Twerp Snog" + git show HEAD >actual && + grep "^Author: Twerp Snog" actual ' test_expect_success '--continue tries to commit' ' @@ -374,7 +376,8 @@ test_expect_success '--continue tries to commit' ' FAKE_COMMIT_MESSAGE="chouette!" git rebase --continue ) && test_cmp_rev HEAD^ new-branch1 && - git show HEAD | grep chouette + git show HEAD >actual && + grep chouette actual ' test_expect_success 'verbose flag is heeded, even after --continue' ' @@ -397,7 +400,9 @@ test_expect_success 'multi-squash only fires up editor once' ' git rebase -i $base ) && test $base = $(git rev-parse HEAD^) && - test 1 = $(git show | grep ONCE | wc -l) + git show >output && + count=$(grep ONCE output | wc -l) && + test 1 = $count ' test_expect_success 'multi-fixup does not fire up editor' ' @@ -410,7 +415,9 @@ test_expect_success 'multi-fixup does not fire up editor' ' git rebase -i $base ) && test $base = $(git rev-parse HEAD^) && - test 0 = $(git show | grep NEVER | wc -l) && + git show >output && + count=$(grep NEVER output | wc -l) && + test 0 = $count && git checkout @{-1} && git branch -D multi-fixup ' @@ -428,7 +435,9 @@ test_expect_success 'commit message used after conflict' ' git rebase --continue ) && test $base = $(git rev-parse HEAD^) && - test 1 = $(git show | grep ONCE | wc -l) && + git show >output && + count=$(grep ONCE output | wc -l) && + test 1 = $count && git checkout @{-1} && git branch -D conflict-fixup ' @@ -446,7 +455,9 @@ test_expect_success 'commit message retained after conflict' ' git rebase --continue ) && test $base = $(git rev-parse HEAD^) && - test 2 = $(git show | grep TWICE | wc -l) && + git show >output && + count=$(grep TWICE output | wc -l) && + test 2 = $count && git checkout @{-1} && git branch -D conflict-squash ' @@ -470,10 +481,10 @@ test_expect_success 'squash and fixup generate correct log messages' ' ) && git cat-file commit HEAD | sed -e 1,/^\$/d > actual-squash-fixup && test_cmp expect-squash-fixup actual-squash-fixup && - git cat-file commit HEAD@{2} | - grep "^# This is a combination of 3 commits\." && - git cat-file commit HEAD@{3} | - grep "^# This is a combination of 2 commits\." && + git cat-file commit HEAD@{2} >actual && + grep "^# This is a combination of 3 commits\." actual && + git cat-file commit HEAD@{3} >actual && + grep "^# This is a combination of 2 commits\." actual && git checkout @{-1} && git branch -D squash-fixup ' @@ -489,7 +500,9 @@ test_expect_success 'squash ignores comments' ' git rebase -i $base ) && test $base = $(git rev-parse HEAD^) && - test 1 = $(git show | grep ONCE | wc -l) && + git show >output && + count=$(grep ONCE output | wc -l) && + test 1 = $count && git checkout @{-1} && git branch -D skip-comments ' @@ -505,7 +518,9 @@ test_expect_success 'squash ignores blank lines' ' git rebase -i $base ) && test $base = $(git rev-parse HEAD^) && - test 1 = $(git show | grep ONCE | wc -l) && + git show >output && + count=$(grep ONCE output | wc -l) && + test 1 = $count && git checkout @{-1} && git branch -D skip-blank-lines ' @@ -572,7 +587,8 @@ test_expect_success '--continue tries to commit, even for "edit"' ' FAKE_COMMIT_MESSAGE="chouette!" git rebase --continue ) && test edited = $(git show HEAD:file7) && - git show HEAD | grep chouette && + git show HEAD >actual && + grep chouette actual && test $parent = $(git rev-parse HEAD^) ' @@ -757,19 +773,23 @@ test_expect_success 'reword' ' set_fake_editor && FAKE_LINES="1 2 3 reword 4" FAKE_COMMIT_MESSAGE="E changed" \ git rebase -i A && - git show HEAD | grep "E changed" && + git show HEAD >actual && + grep "E changed" actual && test $(git rev-parse primary) != $(git rev-parse HEAD) && test_cmp_rev primary^ HEAD^ && FAKE_LINES="1 2 reword 3 4" FAKE_COMMIT_MESSAGE="D changed" \ git rebase -i A && - git show HEAD^ | grep "D changed" && + git show HEAD^ >actual && + grep "D changed" actual && FAKE_LINES="reword 1 2 3 4" FAKE_COMMIT_MESSAGE="B changed" \ git rebase -i A && - git show HEAD~3 | grep "B changed" && + git show HEAD~3 >actual && + grep "B changed" actual && FAKE_LINES="1 r 2 pick 3 p 4" FAKE_COMMIT_MESSAGE="C changed" \ git rebase -i A ) && - git show HEAD~2 | grep "C changed" + git show HEAD~2 >actual && + grep "C changed" actual ' test_expect_success 'no uncommitted changes when rewording and the todo list is reloaded' ' @@ -1003,8 +1023,10 @@ test_expect_success 'rebase -i --root retain root commit author and message' ' set_fake_editor && FAKE_LINES="2" git rebase -i --root ) && - git cat-file commit HEAD | grep -q "^author Twerp Snog" && - git cat-file commit HEAD | grep -q "^different author$" + git cat-file commit HEAD >output && + grep -q "^author Twerp Snog" output && + git cat-file commit HEAD >actual && + grep -q "^different author$" actual ' test_expect_success 'rebase -i --root temporary sentinel commit' ' @@ -1013,7 +1035,8 @@ test_expect_success 'rebase -i --root temporary sentinel commit' ' set_fake_editor && test_must_fail env FAKE_LINES="2" git rebase -i --root ) && - git cat-file commit HEAD | grep "^tree $EMPTY_TREE" && + git cat-file commit HEAD >actual && + grep "^tree $EMPTY_TREE" actual && git rebase --abort ' @@ -1036,7 +1059,8 @@ test_expect_success 'rebase -i --root reword original root commit' ' FAKE_LINES="reword 1 2" FAKE_COMMIT_MESSAGE="A changed" \ git rebase -i --root ) && - git show HEAD^ | grep "A changed" && + git show HEAD^ >actual && + grep "A changed" actual && test -z "$(git show -s --format=%p HEAD^)" ' @@ -1048,7 +1072,8 @@ test_expect_success 'rebase -i --root reword new root commit' ' FAKE_LINES="reword 3 1" FAKE_COMMIT_MESSAGE="C changed" \ git rebase -i --root ) && - git show HEAD^ | grep "C changed" && + git show HEAD^ >actual && + grep "C changed" actual && test -z "$(git show -s --format=%p HEAD^)" ' From patchwork Mon Oct 7 10:51:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Usman Akinyemi X-Patchwork-Id: 13824433 Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4A7051D0F78 for ; Mon, 7 Oct 2024 10:51:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728298315; cv=none; b=jRJdLQqm/Ckh8rRoAzhaDRhCnKxBNSw9jnmVInCR4zJfEqEsKSU+/jGrBwRoFYxInraNsttX7EV7KDflha1+kElboTdy5Jz56lPdvU4+r069TG1ipm3+tVPXNIh0CYJaFQ7lztnQp3SWINkQRg0fxFVLSDYIb7VHkZMBqYWKtD4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728298315; c=relaxed/simple; bh=irTE3wHcNxBtLca4flBokLSZHpJnSbZtEho09/1yo88=; h=Message-Id:In-Reply-To:References:From:Date:Subject:Content-Type: MIME-Version:To:Cc; b=aiEBCBIIVC3Hy5zlVncczGF/+NhxYhXuiB52i2ZKStBnBttmYBgigM+LwCT1deQkBxlfWh+/2DUrmUyup9KM3YJSc4x9YZ/Ya7Uc/7/UsGZrTgdlZqJfikrqb+YzjcRFUlyvZpFG1zhUbBfyy7hLz35WaeIRtVp4+zp8GLPZiDM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=fvoJmXIu; arc=none smtp.client-ip=209.85.218.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="fvoJmXIu" Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-a9951fba3b4so140216066b.1 for ; Mon, 07 Oct 2024 03:51:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1728298312; x=1728903112; darn=vger.kernel.org; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:from:to:cc:subject:date :message-id:reply-to; bh=Sn1XmCxJ7qBROXa9Ee3U1brOAIvBwLh7kH6sYmrCCyI=; b=fvoJmXIudNtFuQ7e9GhYgSWjHiZY/VE2zmU0WJORjwKshfW18Cd9Ct1Ea5Yy6kr+th VgzkB5OmxWLzyrXbhoy+RdejqZMX1Xxzy27VUoRVJTMq7wR3D7nRJTpI29ODaPCY1sXd nSv3rfMF85Xst86E4ZXFIAot2cTo89SxdOIc8G+Tw/gTIEIJWLq0tYfWd0AdRCoZ5PQF 4kUFfbiySZE5XaUp/U9FIfKJdmwSKJWjZUsGk0PAVHnY60FIlY/XjGxJRw+HvdOjv8at RKLVCl/A+RTIJHmx4OV2yoCVv3rJa91ZjzsxPQFv3WW4EN+G1bq/e7q6KcBhmmZfTtkV e1UQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728298312; x=1728903112; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Sn1XmCxJ7qBROXa9Ee3U1brOAIvBwLh7kH6sYmrCCyI=; b=MVeQAw2tJdF8pXgbhkhk02o3XP8JSE3V/+rQcKncsr/ljy+qK2EEJOUlxzYqUdY5cp 9BouU1m8tOi3yQOW07xsIgbl3CxnlKGVD+7kPWRwCZR7mPij7XjgMlm+KuSC0Esdcgal Kmtd4+9HUQpnGywhwv2fYi63K95000xXHFsczSYgvTzFUl2EfxJaF6c9qgxWUhNEHC0u O3UM6NatXAC1dmQcAhEZPCZtWgz7y7Wa4iIBJJlZVBywt46YKpqL0WfKh3ucvc3rhmpN GlDSFC+JT+36zdpc9BtZo0g3025XRSkJ8hKyZK/jb4mOgQxZczZ2cNY/NZbNqxSpsP7O avOw== X-Gm-Message-State: AOJu0Yw6O835cXvs+AxPgcT7Cv/43bFWWk5pMZJkXriVjKI0rZF6W7DS 4Yllmgl4Lk+Uj7fueRxtW2dP6cNMfynkrwDgN9moNnU2VpbpZyJVGzDp7w== X-Google-Smtp-Source: AGHT+IEbtjwV1yoyUENsMQb0kbkZoUGZvluCxtX39DISiJ6jawNZV7sDwieC30cZBwKRuYau/cV0dg== X-Received: by 2002:a17:906:fd86:b0:a8d:5184:d94b with SMTP id a640c23a62f3a-a991bff338cmr1166418166b.49.1728298312129; Mon, 07 Oct 2024 03:51:52 -0700 (PDT) Received: from [127.0.0.1] ([13.74.141.28]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a992e5ba412sm371809366b.18.2024.10.07.03.51.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Oct 2024 03:51:50 -0700 (PDT) Message-Id: <0ce40300fa32bde27c789fae9e0c642498710a25.1728298308.git.gitgitgadget@gmail.com> In-Reply-To: References: Date: Mon, 07 Oct 2024 10:51:48 +0000 Subject: [PATCH v5 2/2] t3404: employing test_line_count() to replace test Fcc: Sent Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 To: git@vger.kernel.org Cc: Patrick Steinhardt , Usman Akinyemi , Usman Akinyemi From: Usman Akinyemi From: Usman Akinyemi Refactor t3404 to replace instances of `test` with `test_line_count()` for checking line counts. This improves readability and aligns with Git's current test practices. Signed-off-by: Usman Akinyemi --- t/t3404-rebase-interactive.sh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index 96a65783c47..1073eb88fa2 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -281,7 +281,8 @@ test_expect_success 'stop on conflicting pick' ' test_cmp expect2 file1 && test "$(git diff --name-status | sed -n -e "/^U/s/^U[^a-z]*//p")" = file1 && - test 4 = $(grep -v "^#" < .git/rebase-merge/done | wc -l) && + grep -v "^#" < .git/rebase-merge/done >actual && + test_line_count = 4 actual && test 0 = $(grep -c "^[^#]" < .git/rebase-merge/git-rebase-todo) ' @@ -401,8 +402,8 @@ test_expect_success 'multi-squash only fires up editor once' ' ) && test $base = $(git rev-parse HEAD^) && git show >output && - count=$(grep ONCE output | wc -l) && - test 1 = $count + grep ONCE output >actual && + test_line_count = 1 actual ' test_expect_success 'multi-fixup does not fire up editor' ' @@ -416,8 +417,7 @@ test_expect_success 'multi-fixup does not fire up editor' ' ) && test $base = $(git rev-parse HEAD^) && git show >output && - count=$(grep NEVER output | wc -l) && - test 0 = $count && + ! grep NEVER output && git checkout @{-1} && git branch -D multi-fixup ' @@ -436,8 +436,8 @@ test_expect_success 'commit message used after conflict' ' ) && test $base = $(git rev-parse HEAD^) && git show >output && - count=$(grep ONCE output | wc -l) && - test 1 = $count && + grep ONCE output >actual && + test_line_count = 1 actual && git checkout @{-1} && git branch -D conflict-fixup ' @@ -456,8 +456,8 @@ test_expect_success 'commit message retained after conflict' ' ) && test $base = $(git rev-parse HEAD^) && git show >output && - count=$(grep TWICE output | wc -l) && - test 2 = $count && + grep TWICE output >actual && + test_line_count = 2 actual && git checkout @{-1} && git branch -D conflict-squash ' @@ -501,8 +501,8 @@ test_expect_success 'squash ignores comments' ' ) && test $base = $(git rev-parse HEAD^) && git show >output && - count=$(grep ONCE output | wc -l) && - test 1 = $count && + grep ONCE output >actual && + test_line_count = 1 actual && git checkout @{-1} && git branch -D skip-comments ' @@ -519,8 +519,8 @@ test_expect_success 'squash ignores blank lines' ' ) && test $base = $(git rev-parse HEAD^) && git show >output && - count=$(grep ONCE output | wc -l) && - test 1 = $count && + grep ONCE output >actual && + test_line_count = 1 actual && git checkout @{-1} && git branch -D skip-blank-lines '