2
0

make the code in Write a little more logical, and add a missing test, though the code worked correctly before.

This commit is contained in:
Nate Finch
2014-06-16 13:24:02 -04:00
parent fc6790d66f
commit ffd1aed5ff
2 changed files with 37 additions and 4 deletions
+6 -4
View File
@@ -119,13 +119,15 @@ func (l *Logger) Write(p []byte) (n int, err error) {
"write length %d exceeds maximum file size %d", writeLen, l.max(),
)
}
if l.size+writeLen > l.max() {
if err := l.rotate(); err != nil {
if l.file == nil {
if err = l.openExistingOrNew(len(p)); err != nil {
return 0, err
}
}
if l.file == nil {
if err = l.openExistingOrNew(len(p)); err != nil {
if l.size+writeLen > l.max() {
if err := l.rotate(); err != nil {
return 0, err
}
}
+31
View File
@@ -183,6 +183,37 @@ func TestAutoRotate(t *testing.T) {
fileCount(dir, 2, t)
}
func TestFirstWriteRotate(t *testing.T) {
currentTime = fakeTime
dir := makeTempDir("TestFirstWriteRotate", t)
defer os.RemoveAll(dir)
l := &Logger{
Dir: dir,
NameFormat: format,
MaxSize: 10,
}
defer l.Close()
filename := logFile(dir)
err := ioutil.WriteFile(filename, []byte("boooooo!"), 0600)
isNil(err, t)
// set the current time one day later
defer newFakeTime(Day)()
// this would make us rotate
b := []byte("fooo!")
n, err := l.Write(b)
isNil(err, t)
equals(len(b), n, t)
filename2 := logFile(dir)
existsWithLen(filename2, n, t)
fileCount(dir, 2, t)
}
func TestMaxBackups(t *testing.T) {
currentTime = fakeTime
dir := makeTempDir("TestMaxBackups", t)