MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / test_bracket_escapes

Function test_bracket_escapes

modules/rtpengine/test/test.c:214–276  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

212}
213
214static void test_bracket_escapes(void)
215{
216 bencode_buffer_t buf;
217 int t = 1;
218
219 /* 1. Double-dash escapes to equals: fmtp:96..useinbandfec--1
220 * '..' -> ' ', '--' -> '=' => "fmtp:96 useinbandfec=1" */
221 ok(bencode_buffer_init(&buf) == 0, "test-bracket-escape-%d", t++);
222 ok(check_bencode("fmtp:96..useinbandfec--1", 24,
223 "l22:fmtp:96 useinbandfec=1e", &buf, 0),
224 "test-bracket-escape-%d", t++);
225 bencode_buffer_free(&buf);
226
227 /* 2. Double-dot escapes to space: rtpmap:96..opus/48000/2
228 * => "rtpmap:96 opus/48000/2" */
229 ok(bencode_buffer_init(&buf) == 0, "test-bracket-escape-%d", t++);
230 ok(check_bencode("rtpmap:96..opus/48000/2", 23,
231 "l22:rtpmap:96 opus/48000/2e", &buf, 0),
232 "test-bracket-escape-%d", t++);
233 bencode_buffer_free(&buf);
234
235 /* 3. No escapes - single dash/dot pass through unchanged */
236 ok(bencode_buffer_init(&buf) == 0, "test-bracket-escape-%d", t++);
237 ok(check_bencode("a-b c.d", 7,
238 "l3:a-b3:c.de", &buf, 0),
239 "test-bracket-escape-%d", t++);
240 bencode_buffer_free(&buf);
241
242 /* 4. Consecutive escapes: ---- becomes == */
243 ok(bencode_buffer_init(&buf) == 0, "test-bracket-escape-%d", t++);
244 ok(check_bencode("a----b", 6,
245 "l4:a==be", &buf, 0),
246 "test-bracket-escape-%d", t++);
247 bencode_buffer_free(&buf);
248
249 /* 5. Escape at end of token: foo-- becomes foo= */
250 ok(bencode_buffer_init(&buf) == 0, "test-bracket-escape-%d", t++);
251 ok(check_bencode("foo--", 5,
252 "l4:foo=e", &buf, 0),
253 "test-bracket-escape-%d", t++);
254 bencode_buffer_free(&buf);
255
256 /* 6. Escape in dict value: key=val--ue => key: "val=ue" */
257 ok(bencode_buffer_init(&buf) == 0, "test-bracket-escape-%d", t++);
258 ok(check_bencode("key=val--ue", 11,
259 "d3:key6:val=uee", &buf, 0),
260 "test-bracket-escape-%d", t++);
261 bencode_buffer_free(&buf);
262
263 /* 7. sdp-attr real-world case: add=[fmtp:96..useinbandfec--1] */
264 ok(bencode_buffer_init(&buf) == 0, "test-bracket-escape-%d", t++);
265 ok(check_bencode("add=[fmtp:96..useinbandfec--1]", 30,
266 "d3:addl22:fmtp:96 useinbandfec=1ee", &buf, 0),
267 "test-bracket-escape-%d", t++);
268 bencode_buffer_free(&buf);
269
270 /* 8. Mixed escape and no-escape tokens in a list */
271 ok(bencode_buffer_init(&buf) == 0, "test-bracket-escape-%d", t++);

Callers 1

mod_testsFunction · 0.85

Calls 3

bencode_buffer_initFunction · 0.85
check_bencodeFunction · 0.85
bencode_buffer_freeFunction · 0.85

Tested by

no test coverage detected