From patchwork Tue Jul 28 23:34:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "brian m. carlson" X-Patchwork-Id: 11690101 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 7CF1E14E3 for ; Tue, 28 Jul 2020 23:35:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5801C207FC for ; Tue, 28 Jul 2020 23:35:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (3072-bit key) header.d=crustytoothpaste.net header.i=@crustytoothpaste.net header.b="lQFKu+yR" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730343AbgG1Xf3 (ORCPT ); Tue, 28 Jul 2020 19:35:29 -0400 Received: from injection.crustytoothpaste.net ([192.241.140.119]:40958 "EHLO injection.crustytoothpaste.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730305AbgG1Xf0 (ORCPT ); Tue, 28 Jul 2020 19:35:26 -0400 Received: from camp.crustytoothpaste.net (unknown [IPv6:2001:470:b978:101:b610:a2f0:36c1:12e3]) (using TLSv1.2 with cipher ECDHE-RSA-CHACHA20-POLY1305 (256/256 bits)) (No client certificate requested) by injection.crustytoothpaste.net (Postfix) with ESMTPSA id 6BF88607E8; Tue, 28 Jul 2020 23:34:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=crustytoothpaste.net; s=default; t=1595979295; bh=Ni60BVyy3697LdUPCNff0L0kAJ2/erkulVYjnf5hQSc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Reply-To: Subject:Date:To:CC:Resent-Date:Resent-From:Resent-To:Resent-Cc: In-Reply-To:References:Content-Type:Content-Disposition; b=lQFKu+yRofRzWcSY3guSjYDRPKYIc+4OzmqKTdZREa0iESkHEhKrMLhxQ2zp9Om/O oUD5zIy4tPdDSrpcpggZhvfFKcNtKIjygXH+LCv9gQLrpcmAI7+h4yBtl+cSKyPvgd r+iYL1w36FGhZU+6QjALJKjnnPFSa+h5opIJubKWTrMmDCUXpPQ78ZarkciDo+ijpM ZQhUAKBt0QuAm6hERcTdvpayvDy3RpEKvF4BhbAoeNjsAxDKL92HzBEu01GtSo7lyv Zs7uIX/eYw+7tbtYT0bgtAI/Jhftw6FQdQPkLqV6u1A7EIW0yaS2Wd9Ky7hIVM9yz0 2dOmxSXBmtsbDO9Gx0qi+6d842xHak9UCG7vL2gaXPlrbYlrG3/M90oJFYRQ1wPuPe NUQKhi23AFavIANAon93o9R4QX5gImSdkoRWneK+xyJOrIoazm4I5HjaNukTLZ3G3q V4wYkR2JKLiPZa6Sl0jngmnq/SFunuTFtgEuoE6XYJnYvss1/Q/ From: "brian m. carlson" To: Cc: Eric Sunshine Subject: [PATCH v5 01/39] t: make test-bloom initialize repository Date: Tue, 28 Jul 2020 23:34:08 +0000 Message-Id: <20200728233446.3066485-2-sandals@crustytoothpaste.net> X-Mailer: git-send-email 2.28.0.163.g6104cc2f0b6 In-Reply-To: <20200728233446.3066485-1-sandals@crustytoothpaste.net> References: <20200728233446.3066485-1-sandals@crustytoothpaste.net> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org The bloom filter code relies on reading object IDs using parse_oid_hex. In order to make that work with an appropriate size, we need to have initialized the repository's hash algorithm. Since the values we're processing depend on the repository in use, let's set up the repository when we run the test helper. Signed-off-by: brian m. carlson --- t/helper/test-bloom.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/t/helper/test-bloom.c b/t/helper/test-bloom.c index f0aa80b98e..5e77d56f59 100644 --- a/t/helper/test-bloom.c +++ b/t/helper/test-bloom.c @@ -50,6 +50,8 @@ static const char *bloom_usage = "\n" int cmd__bloom(int argc, const char **argv) { + setup_git_directory(); + if (argc < 2) usage(bloom_usage); From patchwork Tue Jul 28 23:34:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "brian m. carlson" X-Patchwork-Id: 11690055 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 AD3BD14DD for ; Tue, 28 Jul 2020 23:34:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 87C5520829 for ; Tue, 28 Jul 2020 23:34:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (3072-bit key) header.d=crustytoothpaste.net header.i=@crustytoothpaste.net header.b="Y/SBOCls" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729953AbgG1Xe5 (ORCPT ); Tue, 28 Jul 2020 19:34:57 -0400 Received: from injection.crustytoothpaste.net ([192.241.140.119]:40840 "EHLO injection.crustytoothpaste.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729597AbgG1Xe4 (ORCPT ); Tue, 28 Jul 2020 19:34:56 -0400 Received: from camp.crustytoothpaste.net (unknown [IPv6:2001:470:b978:101:b610:a2f0:36c1:12e3]) (using TLSv1.2 with cipher ECDHE-RSA-CHACHA20-POLY1305 (256/256 bits)) (No client certificate requested) by injection.crustytoothpaste.net (Postfix) with ESMTPSA id EA947609CF; Tue, 28 Jul 2020 23:34:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=crustytoothpaste.net; s=default; t=1595979296; bh=kzD44krolsMhdpvZfmNLjC7VTRRu/RTNvK14D0Rz7Vo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Reply-To: Subject:Date:To:CC:Resent-Date:Resent-From:Resent-To:Resent-Cc: In-Reply-To:References:Content-Type:Content-Disposition; b=Y/SBOClst3aFDMBYnP0gvBp9wiIHpTUKAMuUuk2h4Iap1a5u2BAcjhfVVR3ALlpkt kY1kA0YqAa0/uRA9h4IYpbb22DVu9MtjKlBj9DpEVdUBVbOdajjCKK9TTsJFLhQokd eSbvWHgS0lOMG9S4Ob+othjLPzz4AVgWTfk/QhUPWROq1BWghMetZaY9x8pu/fOxxg LZGdyFwAllU1Hk6bQPMUCQZtiTyApIZX7U0aCbdGhxVRnPEF8kq9HZGIjrHAoH/fDj 490pcK1SJxGSuUIXY0SNmKLQfAnAgt0C7Dwv/2W/+8N5uY7ZyrquQYqutAztRqQEEF p02nhUZkSz/U1EkmSdyv/uV9K+PYz1LlL5dnIsF6x8/FwUkAk3tKJm8HqDfKUJ0/7t 0m9DUVDol+5crj0Rebsg8I2+gXkmzNZsm57nNpuG6+DDRgwUZUuBvD6DNGerADR8xI vYELqSZRKIyD843ppjUB8tFdVwpRUjPlJwMVgGnk4i5HraJhAyc From: "brian m. carlson" To: Cc: Eric Sunshine Subject: [PATCH v5 02/39] t1001: use $ZERO_OID Date: Tue, 28 Jul 2020 23:34:09 +0000 Message-Id: <20200728233446.3066485-3-sandals@crustytoothpaste.net> X-Mailer: git-send-email 2.28.0.163.g6104cc2f0b6 In-Reply-To: <20200728233446.3066485-1-sandals@crustytoothpaste.net> References: <20200728233446.3066485-1-sandals@crustytoothpaste.net> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Use $ZERO_OID to make the test hash independent. Signed-off-by: brian m. carlson --- t/t1091-sparse-checkout-builtin.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/t/t1091-sparse-checkout-builtin.sh b/t/t1091-sparse-checkout-builtin.sh index 7cd45fc139..84acfc48b6 100755 --- a/t/t1091-sparse-checkout-builtin.sh +++ b/t/t1091-sparse-checkout-builtin.sh @@ -369,7 +369,7 @@ test_expect_success 'sparse-checkout (init|set|disable) warns with unmerged stat git clone repo unmerged && cat >input <<-EOF && - 0 0000000000000000000000000000000000000000 folder1/a + 0 $ZERO_OID folder1/a 100644 $(git -C unmerged rev-parse HEAD:folder1/a) 1 folder1/a EOF git -C unmerged update-index --index-info tweak/deep/deeper2/a && cat >input <<-EOF && - 0 0000000000000000000000000000000000000000 folder1/a + 0 $ZERO_OID folder1/a 100644 $(git -C tweak rev-parse HEAD:folder1/a) 1 folder1/a EOF git -C tweak update-index --index-info X-Patchwork-Id: 11690057 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 B249914DD for ; Tue, 28 Jul 2020 23:34:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9B2A320829 for ; Tue, 28 Jul 2020 23:34:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (3072-bit key) header.d=crustytoothpaste.net header.i=@crustytoothpaste.net header.b="pdu570UI" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730005AbgG1Xe6 (ORCPT ); Tue, 28 Jul 2020 19:34:58 -0400 Received: from injection.crustytoothpaste.net ([192.241.140.119]:40844 "EHLO injection.crustytoothpaste.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729844AbgG1Xe5 (ORCPT ); Tue, 28 Jul 2020 19:34:57 -0400 Received: from camp.crustytoothpaste.net (unknown [IPv6:2001:470:b978:101:b610:a2f0:36c1:12e3]) (using TLSv1.2 with cipher ECDHE-RSA-CHACHA20-POLY1305 (256/256 bits)) (No client certificate requested) by injection.crustytoothpaste.net (Postfix) with ESMTPSA id 605FA60AFD; Tue, 28 Jul 2020 23:34:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=crustytoothpaste.net; s=default; t=1595979296; bh=OgCPGLxbLEhOK6+oRjiyLc+hvZl35cGnjxku2gGi4NE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Reply-To: Subject:Date:To:CC:Resent-Date:Resent-From:Resent-To:Resent-Cc: In-Reply-To:References:Content-Type:Content-Disposition; b=pdu570UIV0Tma621rs0fUFa/ZwXCrNRjMTAFruDpxlCMel81Tg41GwzjVYupgaNUd sgiSEQUk4j3jbQLiv5UghnfwnbUEeuoZwYb5TwwKmZ+19RFMp/ms5KosgzZwaRIkLB TqGZiPtLuhjlRegFjAxWlCcQgBKG5YYnwI02JN8CrJIRlhI9BUvU79zP1LjoLEpVzL s3vK7r1ic6hfg2HH7FK4rxp/jAUkT7dc5i55rrGxtghZnvgkl7LY0BVrlikdzk7EMh 9JWMp4AefdDD4qRYRvJHJ6GohWRx7uKdPu/Xs91dVZA+7c5jVvucp6YOZceyOK5wpQ r4cHG2+hHr+uapo7BuBI1IVxZktF6wIBQWxO/rZSOkH18OgsV2M63mavrZn24t4Xg8 0CZF2xVGq3Jb7pHqjV0sT0KhO+k27nroZB3kno4NtLdzSCQT3m7d5dQ0e7d8MQw4Gg YMBoilloUQu5biLA3EKgbrBUqHcEtmQiWJneNrSae1rpvLSB56r From: "brian m. carlson" To: Cc: Eric Sunshine Subject: [PATCH v5 03/39] t3305: make hash agnostic Date: Tue, 28 Jul 2020 23:34:10 +0000 Message-Id: <20200728233446.3066485-4-sandals@crustytoothpaste.net> X-Mailer: git-send-email 2.28.0.163.g6104cc2f0b6 In-Reply-To: <20200728233446.3066485-1-sandals@crustytoothpaste.net> References: <20200728233446.3066485-1-sandals@crustytoothpaste.net> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org When computing the fanout length, let's use test_oid to look up the hexadecimal size of the hash in question instead of hard-coding a value. Signed-off-by: brian m. carlson --- t/t3305-notes-fanout.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/t/t3305-notes-fanout.sh b/t/t3305-notes-fanout.sh index 3b4753e1b4..d5a94b7174 100755 --- a/t/t3305-notes-fanout.sh +++ b/t/t3305-notes-fanout.sh @@ -7,7 +7,7 @@ test_description='Test that adding/removing many notes triggers automatic fanout path_has_fanout() { path=$1 && fanout=$2 && - after_last_slash=$((40 - $fanout * 2)) && + after_last_slash=$(($(test_oid hexsz) - $fanout * 2)) && echo $path | grep -q "^\([0-9a-f]\{2\}/\)\{$fanout\}[0-9a-f]\{$after_last_slash\}$" } @@ -31,6 +31,7 @@ all_notes_have_fanout() { } test_expect_success 'tweak test environment' ' + test_oid_init && git checkout -b nondeterminism && test_commit A && git checkout --orphan with_notes; From patchwork Tue Jul 28 23:34:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "brian m. carlson" X-Patchwork-Id: 11690059 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 919DC6C1 for ; Tue, 28 Jul 2020 23:35:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7B113207FC for ; Tue, 28 Jul 2020 23:35:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (3072-bit key) header.d=crustytoothpaste.net header.i=@crustytoothpaste.net header.b="VpWI7+NS" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730100AbgG1XfA (ORCPT ); Tue, 28 Jul 2020 19:35:00 -0400 Received: from injection.crustytoothpaste.net ([192.241.140.119]:40848 "EHLO injection.crustytoothpaste.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729597AbgG1Xe5 (ORCPT ); Tue, 28 Jul 2020 19:34:57 -0400 Received: from camp.crustytoothpaste.net (unknown [IPv6:2001:470:b978:101:b610:a2f0:36c1:12e3]) (using TLSv1.2 with cipher ECDHE-RSA-CHACHA20-POLY1305 (256/256 bits)) (No client certificate requested) by injection.crustytoothpaste.net (Postfix) with ESMTPSA id C8FA860CF4; Tue, 28 Jul 2020 23:34:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=crustytoothpaste.net; s=default; t=1595979297; bh=LBJkcbdMRVrtsKuuwM+SGB+Ckv2QE3QhwqZnQ2Qnhaw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Reply-To: Subject:Date:To:CC:Resent-Date:Resent-From:Resent-To:Resent-Cc: In-Reply-To:References:Content-Type:Content-Disposition; b=VpWI7+NSGBnjpixq+z8KpVM0M9CCmYP9g0+CgaPvUSvREZ4lBGECQOCAg//u1FthO SrBcZU8qIo+hKOIxfUbo3Vx95t3Pm002+OuCV7fx23AGywGvg3qL8ZeadLmW3FERRT q9saUQcEVV3n+0vDjOKoFG8SoKWQJSk10kNVMBzF2219nN92299dSZSCxGcXowBgQV DN//fQmQTydB4yjmbpGCzFggZv31DgCp9BtduISIxm7ZhfF7xt0cTPRoJwXaVXZ8w9 qgMwzwP7yLt1jRWykBjcutsTcVNXI30SCSMmI2uEXocADHEVWiIruIAHsbRtF7lb88 8K9SRdLucVW0qJDswjRAPWOHIIze/wDh9KMjfuZINk/TcttpLz7lkFNZrVsjf9Hzyx puK1pQg9RAXwQMXgEfG1qgdCryrms+yfiGsAug+g7yxpG1cbvJ4bLqMKlzpopOW3Ay Zi7GIekSOwQv5uqkeT7s4HtIXcTJClPHK2s2MjxHLRi7zPUDnVn From: "brian m. carlson" To: Cc: Eric Sunshine Subject: [PATCH v5 04/39] t3404: prepare 'short SHA-1 collision' tests for SHA-256 Date: Tue, 28 Jul 2020 23:34:11 +0000 Message-Id: <20200728233446.3066485-5-sandals@crustytoothpaste.net> X-Mailer: git-send-email 2.28.0.163.g6104cc2f0b6 In-Reply-To: <20200728233446.3066485-1-sandals@crustytoothpaste.net> References: <20200728233446.3066485-1-sandals@crustytoothpaste.net> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org From: Johannes Schindelin The idea of the magic value "ac4f2ee" in this test is to make the reworded commit `collide2` have the same shortened ID as the commit `collide3`. To port the same idea to the SHA-256 version of Git, we therefore need another magic value that causes the same collision, but this time with the SHA-256 version of the commit IDs. In this patch, we add code guarded by `GIT_TEST_FIND_COLLIDER` to do exactly that. Essentially, a large number of integers is appended to the commit message "collide2" to find such a collision. To make it easier to find such a collision, we reduce the number of digits to 4. As the tests are no longer dependent on SHA-1, we also rename their titles to talk about "commit IDs" instead of "SHA-1s". Signed-off-by: Johannes Schindelin Signed-off-by: brian m. carlson --- t/t3404-rebase-interactive.sh | 50 ++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index 4a7d21f898..2fb2c581cb 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -30,6 +30,7 @@ Initial setup: . "$TEST_DIRECTORY"/lib-rebase.sh test_expect_success 'setup' ' + test_oid_init && test_commit A file1 && test_commit B file1 && test_commit C file2 && @@ -1250,7 +1251,7 @@ test_expect_success 'rebase -i error on commits with \ in message' ' test_expect_code 1 grep " emp" error ' -test_expect_success SHA1 'short SHA-1 setup' ' +test_expect_success 'short commit ID setup' ' test_when_finished "git checkout master" && git checkout --orphan collide && git rm -rf . && @@ -1262,23 +1263,54 @@ test_expect_success SHA1 'short SHA-1 setup' ' ) ' -test_expect_success SHA1 'short SHA-1 collide' ' +if test -n "$GIT_TEST_FIND_COLLIDER" +then + author="$(unset test_tick; test_tick; git var GIT_AUTHOR_IDENT)" + committer="$(unset test_tick; test_tick; git var GIT_COMMITTER_IDENT)" + blob="$(git rev-parse collide2:collide)" + from="$(git rev-parse collide1^0)" + repl="commit refs/heads/collider-&\\n" + repl="${repl}author $author\\ncommitter $committer\\n" + repl="${repl}data <script && + git fast-import