github.com/linuxboot/fiano@v1.2.0/pkg/visitors/validate_test.go (about) 1 // Copyright 2018 the LinuxBoot Authors. All rights reserved 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package visitors 6 7 import ( 8 "testing" 9 10 "github.com/linuxboot/fiano/pkg/uefi" 11 ) 12 13 func TestValidateFV(t *testing.T) { 14 var tests = []struct { 15 name string 16 buf []byte 17 msgs []string 18 }{ 19 {"sampleFV", sampleFV, nil}, 20 } 21 for _, test := range tests { 22 t.Run(test.name, func(t *testing.T) { 23 fv, err := uefi.NewFirmwareVolume(test.buf, 0, false) 24 if err != nil { 25 t.Fatalf("Error was not expected, got %v", err.Error()) 26 } 27 v := &Validate{} 28 if err := v.Run(fv); err != nil { 29 t.Fatal(err) 30 } 31 if len(v.Errors) != len(test.msgs) { 32 t.Errorf("Errors mismatched, wanted \n%v\n, got \n%v\n", test.msgs, v.Errors) 33 } else { 34 for i := range v.Errors { 35 if v.Errors[i].Error() != test.msgs[i] { 36 t.Errorf("Error mismatched, wanted \n%v\n, got \n%v\n", test.msgs[i], v.Errors[i].Error()) 37 } 38 } 39 } 40 }) 41 } 42 } 43 44 func TestValidateFile(t *testing.T) { 45 var tests = []struct { 46 name string 47 buf []byte 48 msgs []string 49 }{ 50 {"emptyPadFile", emptyPadFile, nil}, 51 {"badFreeFormFile", badFreeFormFile, []string{"file FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF header checksum failure! sum was 54"}}, 52 {"goodFreeFormFile", goodFreeFormFile, nil}, 53 } 54 for _, test := range tests { 55 t.Run(test.name, func(t *testing.T) { 56 f, err := uefi.NewFile(test.buf) 57 if err != nil { 58 t.Fatalf("Error was not expected, got %v", err.Error()) 59 } 60 v := &Validate{} 61 if err := v.Run(f); err != nil { 62 t.Fatal(err) 63 } 64 if len(v.Errors) != len(test.msgs) { 65 t.Errorf("Errors mismatched, wanted \n%v\n, got \n%v\n", test.msgs, v.Errors) 66 } else { 67 for i := range v.Errors { 68 if v.Errors[i].Error() != test.msgs[i] { 69 t.Errorf("Error mismatched, wanted \n%v\n, got \n%v\n", test.msgs[i], v.Errors[i].Error()) 70 } 71 } 72 } 73 }) 74 } 75 }