From 84af9678038d0182afb8ea96573e6d06ce2e1c78 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Tue, 1 Aug 2023 14:22:13 +0200 Subject: [PATCH] TestFroms: use sub-tests Use sub-tests to not fail early if an algorithm fails. With this change: === RUN TestFroms === RUN TestFroms/sha256 === RUN TestFroms/sha384 === RUN TestFroms/sha512 --- PASS: TestFroms (0.02s) --- PASS: TestFroms/sha256 (0.01s) --- PASS: TestFroms/sha384 (0.00s) --- PASS: TestFroms/sha512 (0.00s) PASS Signed-off-by: Sebastiaan van Stijn --- algorithm_test.go | 54 ++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/algorithm_test.go b/algorithm_test.go index 10dc9da..76b47d1 100644 --- a/algorithm_test.go +++ b/algorithm_test.go @@ -83,38 +83,40 @@ func TestFroms(t *testing.T) { } for alg := range algorithms { - h := alg.Hash() - h.Write(p) - expected := Digest(fmt.Sprintf("%s:%x", alg, h.Sum(nil))) + t.Run(string(alg), func(t *testing.T) { + h := alg.Hash() + h.Write(p) + expected := Digest(fmt.Sprintf("%s:%x", alg, h.Sum(nil))) - var readerDgst Digest - readerDgst, err = alg.FromReader(bytes.NewReader(p)) - if err != nil { - t.Fatalf("error calculating hash from reader: %v", err) - } - - dgsts := []Digest{ - alg.FromBytes(p), - alg.FromString(string(p)), - readerDgst, - } - - if alg == Canonical { - readerDgst, err = FromReader(bytes.NewReader(p)) + var readerDgst Digest + readerDgst, err = alg.FromReader(bytes.NewReader(p)) if err != nil { t.Fatalf("error calculating hash from reader: %v", err) } - dgsts = append(dgsts, - FromBytes(p), - FromString(string(p)), - readerDgst) - } - for _, dgst := range dgsts { - if dgst != expected { - t.Fatalf("unexpected digest %v != %v", dgst, expected) + dgsts := []Digest{ + alg.FromBytes(p), + alg.FromString(string(p)), + readerDgst, } - } + + if alg == Canonical { + readerDgst, err = FromReader(bytes.NewReader(p)) + if err != nil { + t.Fatalf("error calculating hash from reader: %v", err) + } + + dgsts = append(dgsts, + FromBytes(p), + FromString(string(p)), + readerDgst) + } + for _, dgst := range dgsts { + if dgst != expected { + t.Errorf("unexpected digest %v != %v", dgst, expected) + } + } + }) } }