@@ -25,6 +25,7 @@ SOFTWARE.
25
25
package packet
26
26
27
27
import (
28
+ "bytes"
28
29
"testing"
29
30
)
30
31
@@ -43,15 +44,112 @@ func generatePacketAF(t *testing.T, AFString string) (*Packet, *AdaptationField)
43
44
func TestDiscontinuity (t * testing.T ) {
44
45
_ , a := generatePacketAF (t , "0180" )
45
46
if discontinuity , err := a .Discontinuity (); ! discontinuity || err != nil {
46
- t .Errorf ("failed to read discontinuity correctly." )
47
+ t .Errorf ("failed to read discontinuity correctly. expected false got true. " )
47
48
}
48
49
_ , a = generatePacketAF (t , "0190" )
49
50
if discontinuity , err := a .Discontinuity (); ! discontinuity || err != nil {
50
- t .Errorf ("failed to read discontinuity correctly." )
51
+ t .Errorf ("failed to read discontinuity correctly. expected true got false. " )
51
52
}
52
53
_ , a = generatePacketAF (t , "0170" )
53
54
if discontinuity , err := a .Discontinuity (); discontinuity || err != nil {
54
- t .Errorf ("failed to read discontinuity correctly." )
55
+ t .Errorf ("failed to read discontinuity correctly. expected false got true." )
56
+ }
57
+ }
58
+
59
+ func TestSetDiscontinuity (t * testing.T ) {
60
+ target , _ := generatePacketAF (t , "0180" )
61
+ generated , a := generatePacketAF (t , "0100" )
62
+ a .SetDiscontinuity (true )
63
+ if ! Equal (generated , target ) {
64
+ t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the Discontinuity to true has failed." , * generated , * target )
65
+ }
66
+ target , _ = generatePacketAF (t , "0100" )
67
+ generated , a = generatePacketAF (t , "0180" )
68
+ a .SetDiscontinuity (false )
69
+ if ! Equal (generated , target ) {
70
+ t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the Discontinuity to false has failed." , * generated , * target )
71
+ }
72
+ }
73
+
74
+ func TestRandomAccess (t * testing.T ) {
75
+ _ , a := generatePacketAF (t , "0140" )
76
+ if randomAccess , err := a .RandomAccess (); ! randomAccess || err != nil {
77
+ t .Errorf ("failed to read RandomAccess correctly. expected true got false." )
78
+ }
79
+ _ , a = generatePacketAF (t , "0130" )
80
+ if randomAccess , err := a .RandomAccess (); randomAccess || err != nil {
81
+ t .Errorf ("failed to read RandomAccess correctly. expected false got true." )
82
+ }
83
+ }
84
+
85
+ func TestSetRandomAccess (t * testing.T ) {
86
+ target , _ := generatePacketAF (t , "0140" )
87
+ generated , a := generatePacketAF (t , "0100" )
88
+ a .SetRandomAccess (true )
89
+ if ! Equal (generated , target ) {
90
+ t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the RandomAccess to true has failed." , * generated , * target )
91
+ }
92
+ target , _ = generatePacketAF (t , "0100" )
93
+ generated , a = generatePacketAF (t , "0140" )
94
+ a .SetRandomAccess (false )
95
+ if ! Equal (generated , target ) {
96
+ t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the RandomAccess to false has failed." , * generated , * target )
97
+ }
98
+ }
99
+
100
+ func TestElementaryStreamPriority (t * testing.T ) {
101
+ _ , a := generatePacketAF (t , "0120" )
102
+ if esp , err := a .ElementaryStreamPriority (); ! esp || err != nil {
103
+ t .Errorf ("failed to read ElementaryStreamPriority correctly. expected true got false." )
104
+ }
105
+ _ , a = generatePacketAF (t , "0110" )
106
+ if esp , err := a .ElementaryStreamPriority (); esp || err != nil {
107
+ t .Errorf ("failed to read ElementaryStreamPriority correctly. expected false got true." )
108
+ }
109
+ }
110
+
111
+ func TestSetElementaryStreamPriority (t * testing.T ) {
112
+ target , _ := generatePacketAF (t , "0120" )
113
+ generated , a := generatePacketAF (t , "0100" )
114
+ a .SetElementaryStreamPriority (true )
115
+ if ! Equal (generated , target ) {
116
+ t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the ElementaryStreamPriority to true has failed." , * generated , * target )
117
+ }
118
+ target , _ = generatePacketAF (t , "0100" )
119
+ generated , a = generatePacketAF (t , "0120" )
120
+ a .SetElementaryStreamPriority (false )
121
+ if ! Equal (generated , target ) {
122
+ t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the ElementaryStreamPriority to false has failed." , * generated , * target )
123
+ }
124
+ }
125
+
126
+ func TestHasSplicingPoint (t * testing.T ) {
127
+ _ , a := generatePacketAF (t , "0104" )
128
+ if hsp , err := a .HasSplicingPoint (); ! hsp || err != nil {
129
+ t .Errorf ("failed to read HasSplicingPoint correctly. expected true got false." )
130
+ }
131
+ _ , a = generatePacketAF (t , "0111" )
132
+ if hsp , err := a .HasSplicingPoint (); hsp || err != nil {
133
+ t .Errorf ("failed to read HasSplicingPoint correctly. expected false got true." )
134
+ }
135
+ }
136
+
137
+ func TestSetHasSplicingPoint (t * testing.T ) {
138
+ target , _ := generatePacketAF (t , "0F04" )
139
+ generated , a := generatePacketAF (t , "0100" )
140
+ if a .SetHasSplicingPoint (true ) == nil {
141
+ t .Error ("adaptation field cannot fit a splice countdown field but no error was returned" )
142
+ }
143
+ generated , a = generatePacketAF (t , "0F00" )
144
+ a .SetHasSplicingPoint (true )
145
+ if ! Equal (generated , target ) {
146
+ t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the HasSplicingPoint to true has failed." , * generated , * target )
147
+ }
148
+ target , _ = generatePacketAF (t , "0100" )
149
+ generated , a = generatePacketAF (t , "0104" )
150
+ a .SetHasSplicingPoint (false )
151
+ if ! Equal (generated , target ) {
152
+ t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the HasSplicingPoint to false has failed." , * generated , * target )
55
153
}
56
154
}
57
155
@@ -84,39 +182,124 @@ func TestAdaptationFieldFull(t *testing.T) {
84
182
}
85
183
a .SetPCR (1 )
86
184
if ! Equal (generated , target ) {
87
- t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the PCR to 1 has failed." , generated , target )
185
+ t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the PCR to 1 has failed." , * generated , * target )
88
186
}
89
187
90
188
target , _ = generatePacketAF (t , "B718000000007E01000000007E02" )
91
189
a .SetHasOPCR (true )
92
190
a .SetOPCR (2 )
93
191
if ! Equal (generated , target ) {
94
- t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the OPCR to 2 has failed." , generated , target )
192
+ t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the OPCR to 2 has failed." , * generated , * target )
95
193
}
96
194
97
195
target , _ = generatePacketAF (t , "B71A000000007E01000000007E020188" )
98
196
a .SetHasTransportPrivateData (true )
99
197
a .SetTransportPrivateData ([]byte {0x88 })
100
198
if ! Equal (generated , target ) {
101
- t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the Transport Private Data to 0x88 has failed." , generated , target )
199
+ t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the Transport Private Data to 0x88 has failed." , * generated , * target )
102
200
}
103
201
104
202
target , _ = generatePacketAF (t , "B71B000000007E01000000007E0201880100" )
105
203
a .SetHasAdaptationFieldExtension (true )
106
204
a .SetAdaptationFieldExtension ([]byte {0x00 })
107
205
if ! Equal (generated , target ) {
108
- t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the Adaptation Field Extension to 0x00 has failed." , generated , target )
206
+ t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the Adaptation Field Extension to 0x00 has failed." , * generated , * target )
109
207
}
110
208
111
209
target , _ = generatePacketAF (t , "B71B000000007E01000000007E020266660100" )
112
210
a .SetTransportPrivateData ([]byte {0x66 , 0x66 })
113
211
if ! Equal (generated , target ) {
114
- t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the Transport Private Data to 0x6666 has failed." , generated , target )
212
+ t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the Transport Private Data to 0x6666 has failed." , * generated , * target )
115
213
}
116
214
117
215
target , _ = generatePacketAF (t , "B713000000007E010266660100" )
118
216
a .SetHasOPCR (false )
119
217
if ! Equal (generated , target ) {
120
- t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n removing has failed." , generated , target )
218
+ t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n removing has failed." , * generated , * target )
219
+ }
220
+
221
+ target , _ = generatePacketAF (t , "B717000000007E01510266660100" )
222
+ a .SetHasSplicingPoint (true )
223
+ a .SetSpliceCountdown (0x51 )
224
+ if ! Equal (generated , target ) {
225
+ t .Errorf ("crafted packet:\n %X \n does not match expected packet:\n %X\n Setting the Transport Private Data to 0x6666 has failed." , * generated , * target )
226
+ }
227
+
228
+ a .SetHasOPCR (true )
229
+ a .SetOPCR (2 )
230
+
231
+ hasPCR , err := a .HasPCR ()
232
+ if err != nil {
233
+ t .Errorf ("failed to get HasPCR. error: %s" , err .Error ())
234
+ }
235
+ if hasPCR != true {
236
+ t .Errorf ("generated HasPCR (%t) does not match expected HasPCR (%t)" , hasPCR , true )
237
+ }
238
+ pcr , err := a .PCR ()
239
+ if err != nil {
240
+ t .Errorf ("failed to get PCR. error: %s" , err .Error ())
241
+ }
242
+ if pcr != 1 {
243
+ t .Errorf ("generated PCR (%d) does not match expected PCR (%d)" , pcr , 1 )
244
+ }
245
+
246
+ hasOPCR , err := a .HasOPCR ()
247
+ if err != nil {
248
+ t .Errorf ("failed to get HasPCR. error: %s" , err .Error ())
249
+ }
250
+ if hasOPCR != true {
251
+ t .Errorf ("generated HasPCR (%t) does not match expected HasPCR (%t)" , hasOPCR , true )
252
+ }
253
+ opcr , err := a .OPCR ()
254
+ if err != nil {
255
+ t .Errorf ("failed to get OPCR. error: %s" , err .Error ())
256
+ }
257
+ if opcr != 2 {
258
+ t .Errorf ("generated OPCR (%d) does not match expected OPCR (%d)" , opcr , 2 )
259
+ }
260
+
261
+ hasSplicingPoint , err := a .HasSplicingPoint ()
262
+ if err != nil {
263
+ t .Errorf ("failed to get HasSplicingPoint. error: %s" , err .Error ())
264
+ }
265
+ if hasSplicingPoint != true {
266
+ t .Errorf ("generated hasSplicingPoint (%t) does not match expected hasSplicingPoint (%t)" , hasSplicingPoint , true )
267
+ }
268
+ spliceCountdown , err := a .SpliceCountdown ()
269
+ if err != nil {
270
+ t .Errorf ("failed to get spliceCountdown. error: %s" , err .Error ())
271
+ }
272
+ if spliceCountdown != 0x51 {
273
+ t .Errorf ("generated spliceCountdown (0x%X) does not match expected spliceCountdown (0x%X)" , spliceCountdown , 0x51 )
274
+ }
275
+
276
+ hasTPD , err := a .HasTransportPrivateData ()
277
+ if err != nil {
278
+ t .Errorf ("failed to get hasTPD. error: %s" , err .Error ())
279
+ }
280
+ if hasTPD != true {
281
+ t .Errorf ("generated HasTransportPrivateData (%t) does not match expected HasTransportPrivateData (%t)" , hasTPD , true )
282
+ }
283
+ tpd , err := a .TransportPrivateData ()
284
+ if err != nil {
285
+ t .Errorf ("failed to get TransportPrivateData. error: %s" , err .Error ())
286
+ }
287
+ if bytes .Equal (tpd , []byte {0x66 , 0x66 }) {
288
+ t .Errorf ("generated TransportPrivateData (0x%X) does not match expected TransportPrivateData (0x%X)" , tpd , []byte {0x66 , 0x66 })
289
+ }
290
+
291
+ hasAFE , err := a .HasAdaptationFieldExtension ()
292
+ if err != nil {
293
+ t .Errorf ("failed to get HasAdaptationFieldExtension. error: %s" , err .Error ())
294
+ }
295
+ if hasAFE != true {
296
+ t .Errorf ("generated HasAdaptationFieldExtension (%t) does not match expected HasAdaptationFieldExtension (%t)" , hasAFE , true )
297
+ }
298
+ afe , err := a .AdaptationFieldExtension ()
299
+ if err != nil {
300
+ t .Errorf ("failed to get AdaptationFieldExtension. error: %s" , err .Error ())
301
+ }
302
+ if bytes .Equal (afe , []byte {0x00 }) {
303
+ t .Errorf ("generated AdaptationFieldExtension (0x%X) does not match expected AdaptationFieldExtension (0x%X)" , tpd , []byte {0x00 })
121
304
}
122
305
}
0 commit comments