replace the logging.Export() method by a Close() method

This commit is contained in:
Marten Seemann
2020-06-29 12:14:47 +07:00
parent 7fdace490c
commit 7f6eca84da
6 changed files with 66 additions and 55 deletions

View File

@@ -4,6 +4,7 @@ import (
"bytes"
"fmt"
"io"
"log"
"net"
"sync"
"time"
@@ -90,8 +91,14 @@ func (t *tracer) run() {
}
}
// Export writes a qlog.
func (t *tracer) Export() error {
func (t *tracer) Close() {
if err := t.export(); err != nil {
log.Printf("exporting qlog failed: %s\n", err)
}
}
// export writes a qlog.
func (t *tracer) export() error {
close(t.events)
<-t.runStopped
if t.encodeErr != nil {

View File

@@ -5,7 +5,9 @@ import (
"encoding/json"
"errors"
"io"
"log"
"net"
"os"
"time"
"github.com/lucas-clemente/quic-go/internal/congestion"
@@ -63,7 +65,7 @@ var _ = Describe("Tracer", func() {
})
It("exports a trace that has the right metadata", func() {
Expect(tracer.Export()).To(Succeed())
tracer.Close()
m := make(map[string]interface{})
Expect(json.Unmarshal(buf.Bytes(), &m)).To(Succeed())
@@ -98,12 +100,17 @@ var _ = Describe("Tracer", func() {
for i := uint32(0); i < 1000; i++ {
tracer.UpdatedPTOCount(i)
}
Expect(tracer.Export()).To(MatchError("writer full"))
buf := &bytes.Buffer{}
log.SetOutput(buf)
defer log.SetOutput(os.Stdout)
tracer.Close()
Expect(buf.String()).To(ContainSubstring("writer full"))
})
Context("Events", func() {
exportAndParse := func() []entry {
Expect(tracer.Export()).To(Succeed())
tracer.Close()
m := make(map[string]interface{})
Expect(json.Unmarshal(buf.Bytes(), &m)).To(Succeed())