git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: <git@vger.kernel.org>
Subject: [PATCH v3 34/39] t: add test_oid option to select hash algorithm
Date: Thu, 23 Jul 2020 01:09:38 +0000	[thread overview]
Message-ID: <20200723010943.2329634-35-sandals@crustytoothpaste.net> (raw)
In-Reply-To: <20200723010943.2329634-1-sandals@crustytoothpaste.net>

In some tests, we have data files which are written with a particular
hash algorithm. Instead of keeping two copies of the test files, we can
keep one, and translate the value on the fly.

In order to do so, we'll need to read both the source algorithm and the
current algorithm, so add an optional flag to the test_oid helper that
lets us read look up a value for a specified hash algorithm. This should
not cause any conflicts with existing tests, since key arguments to
test_oid are allowed to contains only shell identifier characters.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 t/t0000-basic.sh        | 11 +++++++++++
 t/test-lib-functions.sh | 12 +++++++++++-
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh
index 2ff176cd5d..47d6b502c2 100755
--- a/t/t0000-basic.sh
+++ b/t/t0000-basic.sh
@@ -928,6 +928,17 @@ test_expect_success 'test_oid can look up data for SHA-256' '
 	test "$hexsz" -eq 64
 '
 
+test_expect_success 'test_oid can look up data a specified algorithm' '
+	rawsz="$(test_oid --hash=sha1 rawsz)" &&
+	hexsz="$(test_oid --hash=sha1 hexsz)" &&
+	test "$rawsz" -eq 20 &&
+	test "$hexsz" -eq 40 &&
+	rawsz="$(test_oid --hash=sha256 rawsz)" &&
+	hexsz="$(test_oid --hash=sha256 hexsz)" &&
+	test "$rawsz" -eq 32 &&
+	test "$hexsz" -eq 64
+'
+
 test_expect_success 'test_bool_env' '
 	(
 		sane_unset envvar &&
diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
index 3103be8a32..d243ff43f3 100644
--- a/t/test-lib-functions.sh
+++ b/t/test-lib-functions.sh
@@ -1468,7 +1468,17 @@ test_oid_cache () {
 # Look up a per-hash value based on a key ($1).  The value must have been loaded
 # by test_oid_init or test_oid_cache.
 test_oid () {
-	local var="test_oid_${test_hash_algo}_$1" &&
+	local algo="${test_hash_algo}" &&
+
+	case "$1" in
+		--hash=*)
+			algo="${1#--hash=}" &&
+			shift;;
+		*)
+			;;
+	esac &&
+
+	local var="test_oid_${algo}_$1" &&
 
 	# If the variable is unset, we must be missing an entry for this
 	# key-hash pair, so exit with an error.

  parent reply	other threads:[~2020-07-23  1:10 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-23  1:09 [PATCH v3 00/39] SHA-256, part 3/3 brian m. carlson
2020-07-23  1:09 ` [PATCH v3 01/39] t: make test-bloom initialize repository brian m. carlson
2020-07-23  1:09 ` [PATCH v3 02/39] t1001: use $ZERO_OID brian m. carlson
2020-07-23  1:09 ` [PATCH v3 03/39] t3305: make hash agnostic brian m. carlson
2020-07-23  1:09 ` [PATCH v3 04/39] t3404: prepare 'short SHA-1 collision' tests for SHA-256 brian m. carlson
2020-07-23  1:09 ` [PATCH v3 05/39] t6100: make hash size independent brian m. carlson
2020-07-23  1:09 ` [PATCH v3 06/39] t6101: " brian m. carlson
2020-07-23  1:09 ` [PATCH v3 07/39] t6301: " brian m. carlson
2020-07-23  1:09 ` [PATCH v3 08/39] t6500: specify test values for SHA-256 brian m. carlson
2020-07-23  1:09 ` [PATCH v3 09/39] t6501: avoid hard-coded objects brian m. carlson
2020-07-23  1:09 ` [PATCH v3 10/39] t7003: compute appropriate length constant brian m. carlson
2020-07-23  1:09 ` [PATCH v3 11/39] t7063: make hash size independent brian m. carlson
2020-07-23  1:09 ` [PATCH v3 12/39] t7201: abstract away SHA-1-specific constants brian m. carlson
2020-07-23  1:09 ` [PATCH v3 13/39] t7102: " brian m. carlson
2020-07-23  1:09 ` [PATCH v3 14/39] t7400: make hash size independent brian m. carlson
2020-07-23  1:09 ` [PATCH v3 15/39] t7405: " brian m. carlson
2020-07-23  1:09 ` [PATCH v3 16/39] t7506: avoid checking for SHA-1-specific constants brian m. carlson
2020-07-23  1:09 ` [PATCH v3 17/39] t7508: use $ZERO_OID instead of hard-coded constant brian m. carlson
2020-07-23  1:09 ` [PATCH v3 18/39] t8002: make hash size independent brian m. carlson
2020-07-23  1:09 ` [PATCH v3 19/39] t8003: " brian m. carlson
2020-07-23  1:09 ` [PATCH v3 20/39] t8011: " brian m. carlson
2020-07-23  1:09 ` [PATCH v3 21/39] t9300: abstract away SHA-1-specific constants brian m. carlson
2020-07-23  1:09 ` [PATCH v3 22/39] t9300: use $ZERO_OID instead of hard-coded object ID brian m. carlson
2020-07-23  1:09 ` [PATCH v3 23/39] t9301: make hash size independent brian m. carlson
2020-07-23  1:09 ` [PATCH v3 24/39] t9350: " brian m. carlson
2020-07-23  1:09 ` [PATCH v3 25/39] t9500: ensure that algorithm info is preserved in config brian m. carlson
2020-07-23  1:09 ` [PATCH v3 26/39] t9700: make hash size independent brian m. carlson
2020-07-23  1:09 ` [PATCH v3 27/39] t5308: make test work with SHA-256 brian m. carlson
2020-07-23  1:09 ` [PATCH v3 28/39] t0410: mark test with SHA1 prerequisite brian m. carlson
2020-07-23  1:09 ` [PATCH v3 29/39] http-fetch: set up git directory before parsing pack hashes brian m. carlson
2020-07-23  1:09 ` [PATCH v3 30/39] builtin/verify-pack: implement an --object-format option brian m. carlson
2020-07-23  4:54   ` Eric Sunshine
2020-07-23  1:09 ` [PATCH v3 31/39] bundle: add new version for use with SHA-256 brian m. carlson
2020-07-23  5:31   ` Eric Sunshine
2020-07-23  5:40     ` Eric Sunshine
2020-07-24  1:11     ` brian m. carlson
2020-07-23  1:09 ` [PATCH v3 32/39] setup: add support for reading extensions.objectformat brian m. carlson
2020-07-23  2:04   ` Junio C Hamano
2020-07-23  2:39     ` brian m. carlson
2020-07-23  4:15       ` Junio C Hamano
2020-07-25  1:59         ` brian m. carlson
2020-07-23  1:09 ` [PATCH v3 33/39] Enable SHA-256 support by default brian m. carlson
2020-07-23  1:09 ` brian m. carlson [this message]
2020-07-23  4:51   ` [PATCH v3 34/39] t: add test_oid option to select hash algorithm Eric Sunshine
2020-07-23 23:38     ` brian m. carlson
2020-07-23 23:46       ` Eric Sunshine
2020-07-24  0:05         ` Junio C Hamano
2020-07-23  1:09 ` [PATCH v3 35/39] t: allow testing different hash algorithms via environment brian m. carlson
2020-07-23  1:09 ` [PATCH v3 36/39] t: make SHA1 prerequisite depend on default hash brian m. carlson
2020-07-23  1:09 ` [PATCH v3 37/39] ci: run tests with SHA-256 brian m. carlson
2020-07-23  1:09 ` [PATCH v3 38/39] docs: add documentation for extensions.objectFormat brian m. carlson
2020-07-23  1:09 ` [PATCH v3 39/39] t: remove test_oid_init in tests brian m. carlson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200723010943.2329634-35-sandals@crustytoothpaste.net \
    --to=sandals@crustytoothpaste.net \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).