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  }