summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStevenWdV <stevenwdv@gmail.com>2021-11-19 14:31:00 +0100
committerStevenWdV <stevenwdv@gmail.com>2021-11-19 14:31:28 +0100
commit226a40a27942d37060a8dc595a1a15379652d224 (patch)
treeadfaa8dba9cd7cefa36f3a14a28460949a6c2f96
parent68c3c92e5e008b1b0914b856274a61d1666ba75d (diff)
Improve test error messages
-rw-r--r--verify_test.go91
1 files changed, 37 insertions, 54 deletions
diff --git a/verify_test.go b/verify_test.go
index 0288897..ca8d5a9 100644
--- a/verify_test.go
+++ b/verify_test.go
@@ -2,6 +2,8 @@ package eduvpn_verify
import (
"bufio"
+ "errors"
+ "fmt"
"io/ioutil"
"os"
"strconv"
@@ -13,6 +15,33 @@ const (
errAny = -2
)
+func compareResults(t *testing.T, ret bool, err error, expected VerifyErrCode, call func() string) {
+ if (err == nil) != (expected == ok) || err != nil && expected != errAny && err.(VerifyError).Code != expected {
+ var errMsg string
+ if err != nil {
+ errMsg = fmt.Sprintf("%v %v (cause %v)", err.(VerifyError).Code, err, errors.Unwrap(err))
+ } else {
+ errMsg = "<ok>"
+ }
+
+ var wantErrCode string
+ switch expected {
+ case ok:
+ wantErrCode = "<ok>"
+ case errAny:
+ wantErrCode = "<any>"
+ default:
+ wantErrCode = strconv.Itoa(int(expected))
+ }
+
+ t.Errorf("%v\nerror = %v, wantErr %v", call(), errMsg, wantErrCode)
+ return
+ }
+ if ret != (expected == ok) {
+ t.Errorf("%v\n= %v, want %v", call(), ret, expected == ok)
+ }
+}
+
func Test_verifyWithKeys(t *testing.T) {
var err error
@@ -125,33 +154,10 @@ func Test_verifyWithKeys(t *testing.T) {
t.Parallel()
valid, err := verifyWithKeys(string(files[tt.signatureFile]), files[tt.jsonFile],
tt.expectedFileName, tt.minSignTime, tt.allowedPks)
- if (err == nil) != (tt.result == ok) || err != nil && tt.result != errAny && err.(VerifyError).Code != tt.result {
- var errCode string
- if err != nil {
- errCode = strconv.Itoa(int(err.(VerifyError).Code))
- } else {
- errCode = "<ok>"
- }
-
- var wantErrCode string
- switch tt.result {
- case ok:
- wantErrCode = "<ok>"
- case errAny:
- wantErrCode = "<any>"
- default:
- wantErrCode = strconv.Itoa(int(tt.result))
- }
-
- t.Errorf("verifyWithKeys(%q, %q, %q, %v)\nerror = %v %v, wantErr %v",
- tt.signatureFile, tt.jsonFile, tt.expectedFileName, tt.minSignTime,
- errCode, err, wantErrCode)
- return
- }
- if valid != (tt.result == ok) {
- t.Errorf("verifyWithKeys(%q, %q, %q, %v)\n= %v, want %v",
- tt.signatureFile, tt.jsonFile, tt.expectedFileName, tt.minSignTime, valid, tt.result == ok)
- }
+ compareResults(t, valid, err, tt.result, func() string {
+ return fmt.Sprintf("verifyWithKeys(%q, %q, %q, %v, %v)",
+ tt.signatureFile, tt.jsonFile, tt.expectedFileName, tt.minSignTime, tt.allowedPks)
+ })
})
}
}
@@ -198,33 +204,10 @@ func Test_Verify(t *testing.T) {
t.Run(tt.testName, func(t *testing.T) {
t.Parallel()
valid, err := Verify(string(files[tt.signatureFile]), files[tt.jsonFile], tt.expectedFileName, tt.minSignTime)
- if (err == nil) != (tt.result == ok) || err != nil && tt.result != errAny && err.(VerifyError).Code != tt.result {
- var errCode string
- if err != nil {
- errCode = strconv.Itoa(int(err.(VerifyError).Code))
- } else {
- errCode = "<ok>"
- }
-
- var wantErrCode string
- switch tt.result {
- case ok:
- wantErrCode = "<ok>"
- case errAny:
- wantErrCode = "<any>"
- default:
- wantErrCode = strconv.Itoa(int(tt.result))
- }
-
- t.Errorf("verifyWithKeys(%q, %q, %q, %v)\nerror = %v %v, wantErr %v",
- tt.signatureFile, tt.jsonFile, tt.expectedFileName, tt.minSignTime,
- errCode, err, wantErrCode)
- return
- }
- if valid != (tt.result == ok) {
- t.Errorf("verifyWithKeys(%q, %q, %q, %v)\n= %v, want %v",
- tt.signatureFile, tt.jsonFile, tt.expectedFileName, tt.minSignTime, valid, tt.result == ok)
- }
+ compareResults(t, valid, err, tt.result, func() string {
+ return fmt.Sprintf("Verify(%q, %q, %q, %v)",
+ tt.signatureFile, tt.jsonFile, tt.expectedFileName, tt.minSignTime)
+ })
})
}
}