@@ -9,38 +9,78 @@ import (
99)
1010
1111func TestAbsCaptureTimeExtension_Roundtrip (t * testing.T ) {
12- t0 := time .Now ()
13- e1 := NewAbsCaptureTimeExtension (t0 )
14- b1 , err1 := e1 .Marshal ()
15- if err1 != nil {
16- t .Fatal (err1 )
17- }
18- var o1 AbsCaptureTimeExtension
19- if err := o1 .Unmarshal (b1 ); err != nil {
20- t .Fatal (err )
21- }
22- dt1 := o1 .CaptureTime ().Sub (t0 ).Seconds ()
23- if dt1 < - 0.001 || dt1 > 0.001 {
24- t .Fatalf ("timestamp differs, want %v got %v (dt=%f)" , t0 , o1 .CaptureTime (), dt1 )
25- }
26- if o1 .EstimatedCaptureClockOffsetDuration () != nil {
27- t .Fatalf ("duration differs, want nil got %d" , o1 .EstimatedCaptureClockOffsetDuration ())
28- }
12+ t .Run ("positive captureClockOffset" , func (t * testing.T ) {
13+ t0 := time .Now ()
14+ e1 := NewAbsCaptureTimeExtension (t0 )
15+ b1 , err1 := e1 .Marshal ()
16+ if err1 != nil {
17+ t .Fatal (err1 )
18+ }
19+ var o1 AbsCaptureTimeExtension
20+ if err := o1 .Unmarshal (b1 ); err != nil {
21+ t .Fatal (err )
22+ }
23+ dt1 := o1 .CaptureTime ().Sub (t0 ).Seconds ()
24+ if dt1 < - 0.001 || dt1 > 0.001 {
25+ t .Fatalf ("timestamp differs, want %v got %v (dt=%f)" , t0 , o1 .CaptureTime (), dt1 )
26+ }
27+ if o1 .EstimatedCaptureClockOffsetDuration () != nil {
28+ t .Fatalf ("duration differs, want nil got %d" , o1 .EstimatedCaptureClockOffsetDuration ())
29+ }
2930
30- e2 := NewAbsCaptureTimeExtensionWithCaptureClockOffset (t0 , 1250 * time .Millisecond )
31- b2 , err2 := e2 .Marshal ()
32- if err2 != nil {
33- t .Fatal (err2 )
34- }
35- var o2 AbsCaptureTimeExtension
36- if err := o2 .Unmarshal (b2 ); err != nil {
37- t .Fatal (err )
38- }
39- dt2 := o1 .CaptureTime ().Sub (t0 ).Seconds ()
40- if dt2 < - 0.001 || dt2 > 0.001 {
41- t .Fatalf ("timestamp differs, want %v got %v (dt=%f)" , t0 , o2 .CaptureTime (), dt2 )
42- }
43- if * o2 .EstimatedCaptureClockOffsetDuration () != 1250 * time .Millisecond {
44- t .Fatalf ("duration differs, want 250ms got %d" , * o2 .EstimatedCaptureClockOffsetDuration ())
45- }
31+ e2 := NewAbsCaptureTimeExtensionWithCaptureClockOffset (t0 , 1250 * time .Millisecond )
32+ b2 , err2 := e2 .Marshal ()
33+ if err2 != nil {
34+ t .Fatal (err2 )
35+ }
36+ var o2 AbsCaptureTimeExtension
37+ if err := o2 .Unmarshal (b2 ); err != nil {
38+ t .Fatal (err )
39+ }
40+ dt2 := o1 .CaptureTime ().Sub (t0 ).Seconds ()
41+ if dt2 < - 0.001 || dt2 > 0.001 {
42+ t .Fatalf ("timestamp differs, want %v got %v (dt=%f)" , t0 , o2 .CaptureTime (), dt2 )
43+ }
44+ if * o2 .EstimatedCaptureClockOffsetDuration () != 1250 * time .Millisecond {
45+ t .Fatalf ("duration differs, want 250ms got %d" , * o2 .EstimatedCaptureClockOffsetDuration ())
46+ }
47+ })
48+
49+ // This test can verify the for for the issue 247
50+ t .Run ("negative captureClockOffset" , func (t * testing.T ) {
51+ t0 := time .Now ()
52+ e1 := NewAbsCaptureTimeExtension (t0 )
53+ b1 , err1 := e1 .Marshal ()
54+ if err1 != nil {
55+ t .Fatal (err1 )
56+ }
57+ var o1 AbsCaptureTimeExtension
58+ if err := o1 .Unmarshal (b1 ); err != nil {
59+ t .Fatal (err )
60+ }
61+ dt1 := o1 .CaptureTime ().Sub (t0 ).Seconds ()
62+ if dt1 < - 0.001 || dt1 > 0.001 {
63+ t .Fatalf ("timestamp differs, want %v got %v (dt=%f)" , t0 , o1 .CaptureTime (), dt1 )
64+ }
65+ if o1 .EstimatedCaptureClockOffsetDuration () != nil {
66+ t .Fatalf ("duration differs, want nil got %d" , o1 .EstimatedCaptureClockOffsetDuration ())
67+ }
68+
69+ e2 := NewAbsCaptureTimeExtensionWithCaptureClockOffset (t0 , - 250 * time .Millisecond )
70+ b2 , err2 := e2 .Marshal ()
71+ if err2 != nil {
72+ t .Fatal (err2 )
73+ }
74+ var o2 AbsCaptureTimeExtension
75+ if err := o2 .Unmarshal (b2 ); err != nil {
76+ t .Fatal (err )
77+ }
78+ dt2 := o1 .CaptureTime ().Sub (t0 ).Seconds ()
79+ if dt2 < - 0.001 || dt2 > 0.001 {
80+ t .Fatalf ("timestamp differs, want %v got %v (dt=%f)" , t0 , o2 .CaptureTime (), dt2 )
81+ }
82+ if * o2 .EstimatedCaptureClockOffsetDuration () != - 250 * time .Millisecond {
83+ t .Fatalf ("duration differs, want -250ms got %v" , * o2 .EstimatedCaptureClockOffsetDuration ())
84+ }
85+ })
4686}
0 commit comments