git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: <git@vger.kernel.org>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Subject: [PATCH 33/38] t: add test_oid option to select hash algorithm
Date: Fri, 10 Jul 2020 02:47:23 +0000	[thread overview]
Message-ID: <20200710024728.3100527-34-sandals@crustytoothpaste.net> (raw)
In-Reply-To: <20200710024728.3100527-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-10  2:49 UTC|newest]

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=20200710024728.3100527-34-sandals@crustytoothpaste.net \
    --to=sandals@crustytoothpaste.net \
    --cc=Johannes.Schindelin@gmx.de \
    --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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).