...
Run Format

Source file src/io/ioutil/ioutil_test.go

Documentation: io/ioutil

  // Copyright 2009 The Go Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style
  // license that can be found in the LICENSE file.
  
  package ioutil
  
  import (
  	"os"
  	"testing"
  )
  
  func checkSize(t *testing.T, path string, size int64) {
  	dir, err := os.Stat(path)
  	if err != nil {
  		t.Fatalf("Stat %q (looking for size %d): %s", path, size, err)
  	}
  	if dir.Size() != size {
  		t.Errorf("Stat %q: size %d want %d", path, dir.Size(), size)
  	}
  }
  
  func TestReadFile(t *testing.T) {
  	filename := "rumpelstilzchen"
  	contents, err := ReadFile(filename)
  	if err == nil {
  		t.Fatalf("ReadFile %s: error expected, none found", filename)
  	}
  
  	filename = "ioutil_test.go"
  	contents, err = ReadFile(filename)
  	if err != nil {
  		t.Fatalf("ReadFile %s: %v", filename, err)
  	}
  
  	checkSize(t, filename, int64(len(contents)))
  }
  
  func TestWriteFile(t *testing.T) {
  	f, err := TempFile("", "ioutil-test")
  	if err != nil {
  		t.Fatal(err)
  	}
  	filename := f.Name()
  	data := "Programming today is a race between software engineers striving to " +
  		"build bigger and better idiot-proof programs, and the Universe trying " +
  		"to produce bigger and better idiots. So far, the Universe is winning."
  
  	if err := WriteFile(filename, []byte(data), 0644); err != nil {
  		t.Fatalf("WriteFile %s: %v", filename, err)
  	}
  
  	contents, err := ReadFile(filename)
  	if err != nil {
  		t.Fatalf("ReadFile %s: %v", filename, err)
  	}
  
  	if string(contents) != data {
  		t.Fatalf("contents = %q\nexpected = %q", string(contents), data)
  	}
  
  	// cleanup
  	f.Close()
  	os.Remove(filename) // ignore error
  }
  
  func TestReadDir(t *testing.T) {
  	dirname := "rumpelstilzchen"
  	_, err := ReadDir(dirname)
  	if err == nil {
  		t.Fatalf("ReadDir %s: error expected, none found", dirname)
  	}
  
  	dirname = ".."
  	list, err := ReadDir(dirname)
  	if err != nil {
  		t.Fatalf("ReadDir %s: %v", dirname, err)
  	}
  
  	foundFile := false
  	foundSubDir := false
  	for _, dir := range list {
  		switch {
  		case !dir.IsDir() && dir.Name() == "io_test.go":
  			foundFile = true
  		case dir.IsDir() && dir.Name() == "ioutil":
  			foundSubDir = true
  		}
  	}
  	if !foundFile {
  		t.Fatalf("ReadDir %s: io_test.go file not found", dirname)
  	}
  	if !foundSubDir {
  		t.Fatalf("ReadDir %s: ioutil directory not found", dirname)
  	}
  }
  

View as plain text