github.com/mvdan/u-root-coreutils@v0.0.0-20230122170626-c2eef2898555/pkg/mount/mtd/linux_test.go (about) 1 // Copyright 2019 the u-root 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 mtd 6 7 import ( 8 "bytes" 9 "os" 10 "testing" 11 ) 12 13 var ( 14 testString = "This is just a test string" 15 ) 16 17 func TestOpen(t *testing.T) { 18 if _, err := os.Stat(DevName); err != nil { 19 tmpDir := t.TempDir() 20 testmtd, err := os.CreateTemp(tmpDir, "testmtd") 21 if err != nil { 22 t.Errorf(`os.Create(tmpDir, "testmtd")=file, %q, want file, nil`, err) 23 } 24 DevName = testmtd.Name() 25 } 26 27 m, err := NewDev(DevName) 28 if err != nil { 29 t.Fatal(err) 30 } 31 defer m.Close() 32 33 if _, err := m.QueueWriteAt([]byte(testString), 0); err != nil { 34 t.Errorf("m.QueueWrite([]byte(testString), 0)=-,%q, want _,nil", err) 35 } 36 buf := make([]byte, 26) 37 if _, err := m.ReadAt(buf, 0); err != nil { 38 t.Errorf("m.ReadAt([]byte(), 0)=-,%q, want _,nil", err) 39 } 40 if !bytes.Equal(buf, []byte(testString)) { 41 t.Errorf("bytes.Equal(buf, []byte(testString))=false, want true") 42 } 43 if m.Name() != DevName { 44 t.Errorf("want %s == %s, want m.DevName() == testmtd.Name()", m.Name(), DevName) 45 } 46 }