66package bwe_test
77
88import (
9+ "encoding/json"
910 "errors"
1011 "fmt"
1112 "io"
13+ "log"
1214 "log/slog"
1315 "os"
1416 "path/filepath"
@@ -20,35 +22,47 @@ import (
2022 "github.com/stretchr/testify/assert"
2123)
2224
23- func testLogger (t * testing.T ) (* slog.Logger , func ()) {
24- t .Helper ()
25+ var logDir string
2526
26- logDir := os .Getenv ("BWE_LOG_DIR" )
27+ func TestMain (m * testing.M ) {
28+ logDir = os .Getenv ("BWE_LOG_DIR" )
2729 if logDir == "" {
28- logDir = "logs"
30+ logDir = "test-web/ logs"
2931 }
3032 if err := os .MkdirAll (logDir , 0o755 ); err != nil {
31- t .Fatalf ("failed to create log dir %q: %v" , logDir , err )
33+ log .Printf ("failed to create log dir %q: %v" , logDir , err )
34+ os .Exit (1 )
3235 }
3336
34- filename := filepath .Join (logDir , fmt .Sprintf ("%s.jsonl" , t .Name ()))
35- file , err := os .Create (filename )
37+ ec := m .Run ()
38+
39+ files , err := filepath .Glob (filepath .Join (logDir , "*.jsonl" ))
3640 if err != nil {
37- t . Fatalf ( "failed to create log file %q : %v", filename , err )
41+ log . Printf ( "Failed to list JSONL files : %v" , err )
3842 }
3943
40- handler := slog .NewJSONHandler (file , & slog.HandlerOptions {Level : slog .LevelInfo })
41- logger := slog .New (handler )
44+ var names []string
45+ for _ , f := range files {
46+ names = append (names , filepath .Base (f ))
47+ }
4248
43- cleanup := func () {
44- file .Sync ()
45- file .Close ()
49+ b , err := json .Marshal (names )
50+ if err != nil {
51+ log .Printf ("Failed to marshal index.json: %v" , err )
52+ os .Exit (ec )
4653 }
4754
48- return logger , cleanup
55+ indexPath := filepath .Join (logDir , "index.json" )
56+ if err := os .WriteFile (indexPath , b , 0644 ); err != nil {
57+ log .Printf ("Failed to write index.json: %v" , err )
58+ } else {
59+ log .Printf ("Generated index.json with %d files" , len (names ))
60+ }
61+
62+ os .Exit (ec )
4963}
5064
51- func TestVnet (t * testing.T ) {
65+ func TestBWE (t * testing.T ) {
5266 synctest .Test (t , func (t * testing.T ) {
5367 t .Helper ()
5468
@@ -98,6 +112,7 @@ func TestVnet(t *testing.T) {
98112 registerPacketLogger (logger .With ("vantage-point" , "sender" )),
99113 registerRTPFB (),
100114 initGCC (func (rate int ) {
115+ logger .Info ("setting codec target bitrate" , "rate" , rate )
101116 codec .setTargetBitrate (rate )
102117 }),
103118 )
@@ -148,3 +163,23 @@ func TestVnet(t *testing.T) {
148163 synctest .Wait ()
149164 })
150165}
166+
167+ func testLogger (t * testing.T ) (* slog.Logger , func ()) {
168+ t .Helper ()
169+
170+ filename := filepath .Join (logDir , fmt .Sprintf ("%s.jsonl" , t .Name ()))
171+ file , err := os .Create (filename )
172+ if err != nil {
173+ t .Fatalf ("failed to create log file %q: %v" , filename , err )
174+ }
175+
176+ handler := slog .NewJSONHandler (file , & slog.HandlerOptions {Level : slog .LevelInfo })
177+ logger := slog .New (handler )
178+
179+ cleanup := func () {
180+ file .Sync ()
181+ file .Close ()
182+ }
183+
184+ return logger , cleanup
185+ }
0 commit comments