github.com/jgbaldwinbrown/perf@v0.1.1/storage/fs/local/local_test.go (about)

     1  // Copyright 2017 The Go 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 local
     6  
     7  import (
     8  	"context"
     9  	"os"
    10  	"path/filepath"
    11  	"testing"
    12  
    13  	"golang.org/x/perf/internal/diff"
    14  )
    15  
    16  func TestNewWriter(t *testing.T) {
    17  	ctx := context.Background()
    18  
    19  	dir, err := os.MkdirTemp("", "local_test")
    20  	if err != nil {
    21  		t.Fatalf("TempDir = %v", err)
    22  	}
    23  	defer os.RemoveAll(dir)
    24  
    25  	fs := NewFS(dir)
    26  
    27  	w, err := fs.NewWriter(ctx, "dir/file", map[string]string{"key": "value", "key2": "value2"})
    28  	if err != nil {
    29  		t.Fatalf("NewWriter = %v", err)
    30  	}
    31  
    32  	want := "hello world"
    33  
    34  	if _, err := w.Write([]byte(want)); err != nil {
    35  		t.Fatalf("Write = %v", err)
    36  	}
    37  
    38  	if err := w.Close(); err != nil {
    39  		t.Fatalf("Close = %v", err)
    40  	}
    41  
    42  	have, err := os.ReadFile(filepath.Join(dir, "dir/file"))
    43  	if err != nil {
    44  		t.Fatalf("ReadFile = %v", err)
    45  	}
    46  	if d := diff.Diff(string(have), want); d != "" {
    47  		t.Errorf("file contents differ. have (-)/want (+)\n%s", d)
    48  	}
    49  }