mirror of
https://github.com/golang/go
synced 2024-11-18 15:24:41 -07:00
io.ReadFile
R=r,rsc DELTA=64 (63 added, 0 deleted, 1 changed) OCL=29702 CL=29702
This commit is contained in:
parent
c17ce9f94f
commit
34d12bfbae
@ -45,6 +45,7 @@ O1=\
|
|||||||
|
|
||||||
O2=\
|
O2=\
|
||||||
pipe.$O\
|
pipe.$O\
|
||||||
|
utils.$O\
|
||||||
|
|
||||||
|
|
||||||
phases: a1 a2
|
phases: a1 a2
|
||||||
@ -55,7 +56,7 @@ a1: $(O1)
|
|||||||
rm -f $(O1)
|
rm -f $(O1)
|
||||||
|
|
||||||
a2: $(O2)
|
a2: $(O2)
|
||||||
$(AR) grc _obj$D/io.a pipe.$O
|
$(AR) grc _obj$D/io.a pipe.$O utils.$O
|
||||||
rm -f $(O2)
|
rm -f $(O2)
|
||||||
|
|
||||||
|
|
||||||
|
27
src/lib/io/utils.go
Normal file
27
src/lib/io/utils.go
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
// Utility functions.
|
||||||
|
|
||||||
|
package io
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io";
|
||||||
|
"os";
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
// ReadFile reads the file named by filename and returns
|
||||||
|
// its contents if successful.
|
||||||
|
//
|
||||||
|
func ReadFile(filename string) ([]byte, os.Error) {
|
||||||
|
f, err := os.Open(filename, os.O_RDONLY, 0);
|
||||||
|
if err != nil {
|
||||||
|
return nil, err;
|
||||||
|
}
|
||||||
|
var b io.ByteBuffer;
|
||||||
|
_, err := io.Copy(f, &b);
|
||||||
|
f.Close();
|
||||||
|
return b.Data(), err;
|
||||||
|
}
|
37
src/lib/io/utils_test.go
Normal file
37
src/lib/io/utils_test.go
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
// 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 io
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io";
|
||||||
|
"os";
|
||||||
|
"testing";
|
||||||
|
)
|
||||||
|
|
||||||
|
func checkSize(t *testing.T, path string, size uint64) {
|
||||||
|
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 = "utils_test.go";
|
||||||
|
contents, err = ReadFile(filename);
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("ReadFile %s: %v", filename, err);
|
||||||
|
}
|
||||||
|
|
||||||
|
checkSize(t, filename, uint64(len(contents)));
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user