From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.2 required=3.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 057841F51E for ; Thu, 20 Oct 2022 08:43:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=80x24.org; s=selector1; t=1666255395; bh=YBiSFHK46K1lHt9fGwioFfc2Pj96bvclcuXGkPEvnNM=; h=From:To:Subject:Date:In-Reply-To:References:From; b=d/EG25x6i+cSxQhXJ2cMOjGWch59W33CEO1DLf6nbPLfpED9Qdh4hrYMo8/9vsxgi LR6egJTZUHNa6rU4o2OsaytG1jfihBxFnPuBh5Oy3wrZwV5KJSdk54OpXsALf4BFKi 1R+k3fKCNvdamJekJAFJy4Jnlz3j1wLgq1kLw700= From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 2/6] another step towards git SHA-256 support Date: Thu, 20 Oct 2022 08:43:10 +0000 Message-Id: <20221020084314.1668067-3-e@80x24.org> In-Reply-To: <20221020084314.1668067-1-e@80x24.org> References: <20221020084314.1668067-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: While SHA-256 isn't supported for inboxes, yet xt/git-http-backend.t now runs properly against a SHA-256 code repository --- lib/PublicInbox/GitHTTPBackend.pm | 12 +++++------- t/git.t | 4 ++-- t/import.t | 4 ++-- t/mda.t | 4 ++-- xt/git-http-backend.t | 4 ++-- 5 files changed, 13 insertions(+), 15 deletions(-) diff --git a/lib/PublicInbox/GitHTTPBackend.pm b/lib/PublicInbox/GitHTTPBackend.pm index 3aae5454..72b8e6c3 100644 --- a/lib/PublicInbox/GitHTTPBackend.pm +++ b/lib/PublicInbox/GitHTTPBackend.pm @@ -23,10 +23,8 @@ my @text = qw[HEAD info/refs info/attributes objects/info/(?:http-alternates|alternates|packs) cloneurl description]; -my @binary = qw! - objects/[a-f0-9]{2}/[a-f0-9]{38} - objects/pack/pack-[a-f0-9]{40}\.(?:pack|idx) - !; +my @binary = ('objects/[a-f0-9]{2}/[a-f0-9]{38,62}', + 'objects/pack/pack-[a-f0-9]{40,64}\.(?:pack|idx)'); our $ANY = join('|', @binary, @text, 'git-upload-pack'); my $BIN = join('|', @binary); @@ -62,13 +60,13 @@ sub serve_dumb { my $h = []; my $type; - if ($path =~ m!\Aobjects/[a-f0-9]{2}/[a-f0-9]{38}\z!) { + if ($path =~ m!\Aobjects/[a-f0-9]{2}/[a-f0-9]{38,62}\z!) { $type = 'application/x-git-loose-object'; cache_one_year($h); - } elsif ($path =~ m!\Aobjects/pack/pack-[a-f0-9]{40}\.pack\z!) { + } elsif ($path =~ m!\Aobjects/pack/pack-[a-f0-9]{40,64}\.pack\z!) { $type = 'application/x-git-packed-objects'; cache_one_year($h); - } elsif ($path =~ m!\Aobjects/pack/pack-[a-f0-9]{40}\.idx\z!) { + } elsif ($path =~ m!\Aobjects/pack/pack-[a-f0-9]{40,64}\.idx\z!) { $type = 'application/x-git-packed-objects-toc'; cache_one_year($h); } elsif ($path =~ /\A(?:$TEXT)\z/o) { diff --git a/t/git.t b/t/git.t index 56fc8d95..d8957e42 100644 --- a/t/git.t +++ b/t/git.t @@ -1,4 +1,4 @@ -# Copyright (C) 2015-2021 all contributors +# Copyright (C) all contributors # License: AGPL-3.0+ use strict; use Test::More; @@ -44,7 +44,7 @@ use PublicInbox::Git; my $f = 'HEAD:foo.txt'; my @x = $gcf->check($f); is(scalar @x, 3, 'returned 3 element array for existing file'); - like($x[0], qr/\A[a-f0-9]{40}\z/, 'returns obj ID in 1st element'); + like($x[0], qr/\A[a-f0-9]{40,64}\z/, 'returns obj ID in 1st element'); is('blob', $x[1], 'returns obj type in 2nd element'); like($x[2], qr/\A\d+\z/, 'returns obj size in 3rd element'); diff --git a/t/import.t b/t/import.t index ae76858b..4ba74022 100644 --- a/t/import.t +++ b/t/import.t @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2021 all contributors +# Copyright (C) all contributors # License: AGPL-3.0+ use strict; use warnings; @@ -30,7 +30,7 @@ my $smsg = bless {}, 'PublicInbox::Smsg' if $v2; like($im->add($mime, undef, $smsg), qr/\A:[0-9]+\z/, 'added one message'); if ($v2) { - like($smsg->{blob}, qr/\A[a-f0-9]{40}\z/, 'got last object_id'); + like($smsg->{blob}, qr/\A[a-f0-9]{40,64}\z/, 'got last object_id'); my @cmd = ('git', "--git-dir=$git->{git_dir}", qw(hash-object --stdin)); open my $in, '+<', undef or BAIL_OUT "open(+<): $!"; print $in $mime->as_string or die "write failed: $!"; diff --git a/t/mda.t b/t/mda.t index d20cdb92..e3c5cdff 100644 --- a/t/mda.t +++ b/t/mda.t @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2021 all contributors +# Copyright (C) all contributors # License: AGPL-3.0+ use strict; use warnings; @@ -97,7 +97,7 @@ EOF local $ENV{PATH} = $main_path; ok(run_script(['-mda'], undef, { 0 => \$in })); my $rev = $git->qx(qw(rev-list HEAD)); - like($rev, qr/\A[a-f0-9]{40}/, "good revision committed"); + like($rev, qr/\A[a-f0-9]{40,64}/, "good revision committed"); chomp $rev; my $cmt = $git->cat_file($rev); like($$cmt, qr/^author Me 0 \+0000\n/m, diff --git a/xt/git-http-backend.t b/xt/git-http-backend.t index adadebb0..1f3ba063 100644 --- a/xt/git-http-backend.t +++ b/xt/git-http-backend.t @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2021 all contributors +# Copyright (C) all contributors # License: AGPL-3.0+ # # Ensure buffering behavior in -httpd doesn't cause runaway memory use @@ -53,7 +53,7 @@ SKIP: { } } skip "no packs found in $git_dir" unless defined $pack; - if ($pack !~ m!(/objects/pack/pack-[a-f0-9]{40}.pack)\z!) { + if ($pack !~ m!(/objects/pack/pack-[a-f0-9]{40,64}.pack)\z!) { skip "bad pack name: $pack"; } my $url = $1;