github.com/linuxboot/fiano@v1.2.0/pkg/intel/metadata/common/unittest/read_write.go (about) 1 // Copyright 2017-2021 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 unittest 6 7 import ( 8 "bytes" 9 "os" 10 "testing" 11 12 "github.com/linuxboot/fiano/pkg/intel/metadata/bg" 13 "github.com/linuxboot/fiano/pkg/intel/metadata/cbnt" 14 "github.com/stretchr/testify/require" 15 ) 16 17 func CBNTManifestReadWrite(t *testing.T, m cbnt.Manifest, testDataFilePath string) { 18 testData, err := os.ReadFile(testDataFilePath) 19 require.NoError(t, err) 20 21 nR, err := m.ReadFrom(bytes.NewReader(append(testData, []byte(`extra bytes`)...))) 22 require.NoError(t, err) 23 require.Equal(t, int64(len(testData)), nR) 24 require.Equal(t, nR, int64(m.TotalSize())) 25 26 prettyString := m.PrettyString(0, true) 27 28 var out bytes.Buffer 29 nW, err := m.WriteTo(&out) 30 require.NoError(t, err) 31 32 newPrettyString := m.PrettyString(0, true) 33 require.Equal(t, prettyString, newPrettyString, newPrettyString) 34 require.Equal(t, string(testData), out.String()) 35 require.Equal(t, nW, nR) 36 require.Equal(t, nW, int64(out.Len())) 37 } 38 39 func BGManifestReadWrite(t *testing.T, m bg.Manifest, testDataFilePath string) { 40 testData, err := os.ReadFile(testDataFilePath) 41 require.NoError(t, err) 42 43 nR, err := m.ReadFrom(bytes.NewReader(testData)) 44 require.NoError(t, err) 45 require.Equal(t, int64(len(testData)), nR) 46 require.Equal(t, nR, int64(m.TotalSize())) 47 48 prettyString := m.PrettyString(0, true) 49 50 var out bytes.Buffer 51 nW, err := m.WriteTo(&out) 52 require.NoError(t, err) 53 54 newPrettyString := m.PrettyString(0, true) 55 require.Equal(t, prettyString, newPrettyString, newPrettyString) 56 require.Equal(t, string(testData), out.String()) 57 require.Equal(t, nW, nR) 58 require.Equal(t, nW, int64(out.Len())) 59 }