},
{NULL, NULL, {0}, 0, 0}};
-static struct test_segment misc_segments[] = {
- /* 13 */
+static struct test_segment misc_segments[] =
{
- "ORF",
- "ORF, simple, single entry, single tuple",
- {/* hdr */ CAPABILITY_CODE_ORF, 0x7,
- /* mpc */ 0x0, 0x1, 0x0, 0x1,
- /* num */ 0x1,
- /* tuples */ 0x40, 0x3},
- 9,
- SHOULD_PARSE,
- },
- /* 14 */
- {
- "ORF-many",
- "ORF, multi entry/tuple",
+ /* 13 */
{
- /* hdr */ CAPABILITY_CODE_ORF,
- 0x21,
- /* mpc */ 0x0,
- 0x1,
- 0x0,
- 0x1,
- /* num */ 0x3,
- /* tuples */ 0x40,
- ORF_MODE_BOTH,
- 0x80,
- ORF_MODE_RECEIVE,
- 0x80,
- ORF_MODE_SEND,
- /* mpc */ 0x0,
- 0x2,
- 0x0,
- 0x1,
- /* num */ 0x3,
- /* tuples */ 0x40,
- ORF_MODE_BOTH,
- 0x80,
- ORF_MODE_RECEIVE,
- 0x80,
- ORF_MODE_SEND,
- /* mpc */ 0x0,
- 0x2,
- 0x0,
- 0x2,
- /* num */ 0x3,
- /* tuples */ 0x40,
- ORF_MODE_RECEIVE,
- 0x80,
- ORF_MODE_SEND,
- 0x80,
- ORF_MODE_BOTH,
+ "ORF",
+ "ORF, simple, single entry, single tuple",
+ {/* hdr */ CAPABILITY_CODE_ORF, 0x7,
+ /* mpc */ 0x0, 0x1, 0x0, 0x1,
+ /* num */ 0x1,
+ /* tuples */ 0x40, 0x3},
+ 9,
+ SHOULD_PARSE,
},
- 35,
- SHOULD_PARSE,
- },
- /* 15 */
- {
- "ORFlo",
- "ORF, multi entry/tuple, hdr length too short",
+ /* 14 */
{
- /* hdr */ CAPABILITY_CODE_ORF,
- 0x15,
- /* mpc */ 0x0,
- 0x1,
- 0x0,
- 0x1,
- /* num */ 0x3,
- /* tuples */ 0x40,
- 0x3,
- 0x80,
- 0x1,
- 0x80,
- 0x2,
- /* mpc */ 0x0,
- 0x1,
- 0x0,
- 0x1,
- /* num */ 0x3,
- /* tuples */ 0x40,
- 0x3,
- 0x80,
- 0x1,
- 0x80,
- 0x2,
- /* mpc */ 0x0,
- 0x2,
- 0x0,
- 0x2,
- /* num */ 0x3,
- /* tuples */ 0x40,
- 0x3,
- 0x80,
- 0x1,
- 0x80,
- 0x2,
+ "ORF-many",
+ "ORF, multi entry/tuple",
+ {
+ /* hdr */ CAPABILITY_CODE_ORF,
+ 0x21,
+ /* mpc */ 0x0,
+ 0x1,
+ 0x0,
+ 0x1,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ ORF_MODE_BOTH,
+ 0x80,
+ ORF_MODE_RECEIVE,
+ 0x80,
+ ORF_MODE_SEND,
+ /* mpc */ 0x0,
+ 0x2,
+ 0x0,
+ 0x1,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ ORF_MODE_BOTH,
+ 0x80,
+ ORF_MODE_RECEIVE,
+ 0x80,
+ ORF_MODE_SEND,
+ /* mpc */ 0x0,
+ 0x2,
+ 0x0,
+ 0x2,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ ORF_MODE_RECEIVE,
+ 0x80,
+ ORF_MODE_SEND,
+ 0x80,
+ ORF_MODE_BOTH,
+ },
+ 35,
+ SHOULD_PARSE,
},
- 35,
- SHOULD_ERR, /* It should error on invalid
- Route-Refresh.. */
- },
- /* 16 */
- {"ORFlu",
- "ORF, multi entry/tuple, length too long",
- {
- /* hdr */ 0x3, 0x22,
- /* mpc */ 0x0, 0x1, 0x0, 0x1,
- /* num */ 0x3,
- /* tuples */ 0x40, 0x3, 0x80, 0x1, 0x80, 0x2,
- /* mpc */ 0x0, 0x2, 0x0, 0x1,
- /* num */ 0x3,
- /* tuples */ 0x40, 0x3, 0x80, 0x1, 0x80, 0x2,
- /* mpc */ 0x0, 0x2, 0x0, 0x2,
- /* num */ 0x3,
- /* tuples */ 0x40, 0x3, 0x80, 0x1, 0x80, 0x2,
- },
- 35,
- SHOULD_ERR},
- /* 17 */
- {
- "ORFnu",
- "ORF, multi entry/tuple, entry number too long",
+ /* 15 */
{
- /* hdr */ 0x3, 0x21,
- /* mpc */ 0x0, 0x1, 0x0, 0x1,
- /* num */ 0x3,
- /* tuples */ 0x40, 0x3, 0x80, 0x1, 0x80, 0x2,
- /* mpc */ 0x0, 0x2, 0x0, 0x1,
- /* num */ 0x4,
- /* tuples */ 0x40, 0x3, 0x80, 0x1, 0x80, 0x2,
- /* mpc */ 0x0, 0x2, 0x0, 0x2,
- /* num */ 0x3,
- /* tuples */ 0x40, 0x3, 0x80, 0x1, 0x80, 0x2,
+ "ORFlo",
+ "ORF, multi entry/tuple, hdr length too short",
+ {
+ /* hdr */ CAPABILITY_CODE_ORF,
+ 0x15,
+ /* mpc */ 0x0,
+ 0x1,
+ 0x0,
+ 0x1,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ 0x3,
+ 0x80,
+ 0x1,
+ 0x80,
+ 0x2,
+ /* mpc */ 0x0,
+ 0x1,
+ 0x0,
+ 0x1,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ 0x3,
+ 0x80,
+ 0x1,
+ 0x80,
+ 0x2,
+ /* mpc */ 0x0,
+ 0x2,
+ 0x0,
+ 0x2,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ 0x3,
+ 0x80,
+ 0x1,
+ 0x80,
+ 0x2,
+ },
+ 35,
+ SHOULD_ERR, /* It should error on invalid
+ Route-Refresh.. */
},
- 35,
- SHOULD_PARSE, /* parses, but last few tuples should be
- gibberish */
- },
- /* 18 */
- {
- "ORFno",
- "ORF, multi entry/tuple, entry number too short",
+ /* 16 */
+ {"ORFlu",
+ "ORF, multi entry/tuple, length too long",
+ {
+ /* hdr */ 0x3,
+ 0x22,
+ /* mpc */ 0x0,
+ 0x1,
+ 0x0,
+ 0x1,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ 0x3,
+ 0x80,
+ 0x1,
+ 0x80,
+ 0x2,
+ /* mpc */ 0x0,
+ 0x2,
+ 0x0,
+ 0x1,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ 0x3,
+ 0x80,
+ 0x1,
+ 0x80,
+ 0x2,
+ /* mpc */ 0x0,
+ 0x2,
+ 0x0,
+ 0x2,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ 0x3,
+ 0x80,
+ 0x1,
+ 0x80,
+ 0x2,
+ },
+ 35,
+ SHOULD_ERR},
+ /* 17 */
{
- /* hdr */ 0x3, 0x21,
- /* mpc */ 0x0, 0x1, 0x0, 0x1,
- /* num */ 0x3,
- /* tuples */ 0x40, 0x3, 0x80, 0x1, 0x80, 0x2,
- /* mpc */ 0x0, 0x2, 0x0, 0x1,
- /* num */ 0x1,
- /* tuples */ 0x40, 0x3, 0x80, 0x1, 0x80, 0x2,
- /* mpc */ 0x0, 0x2, 0x0, 0x2,
- /* num */ 0x3,
- /* tuples */ 0x40, 0x3, 0x80, 0x1, 0x80, 0x2,
+ "ORFnu",
+ "ORF, multi entry/tuple, entry number too long",
+ {
+ /* hdr */ 0x3,
+ 0x21,
+ /* mpc */ 0x0,
+ 0x1,
+ 0x0,
+ 0x1,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ 0x3,
+ 0x80,
+ 0x1,
+ 0x80,
+ 0x2,
+ /* mpc */ 0x0,
+ 0x2,
+ 0x0,
+ 0x1,
+ /* num */ 0x4,
+ /* tuples */ 0x40,
+ 0x3,
+ 0x80,
+ 0x1,
+ 0x80,
+ 0x2,
+ /* mpc */ 0x0,
+ 0x2,
+ 0x0,
+ 0x2,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ 0x3,
+ 0x80,
+ 0x1,
+ 0x80,
+ 0x2,
+ },
+ 35,
+ SHOULD_PARSE, /* parses, but last few tuples should be
+ gibberish */
},
- 35,
- SHOULD_PARSE, /* Parses, but should get gibberish
- afi/safis */
- },
- /* 17 */
- {
- "ORFpad",
- "ORF, multi entry/tuple, padded to align",
+ /* 18 */
{
- /* hdr */ 0x3,
- 0x22,
- /* mpc */ 0x0,
- 0x1,
- 0x0,
- 0x1,
- /* num */ 0x3,
- /* tuples */ 0x40,
- 0x3,
- 0x80,
- 0x1,
- 0x80,
- 0x2,
- /* mpc */ 0x0,
- 0x2,
- 0x0,
- 0x1,
- /* num */ 0x3,
- /* tuples */ 0x40,
- 0x3,
- 0x80,
- 0x1,
- 0x80,
- 0x2,
- /* mpc */ 0x0,
- 0x2,
- 0x0,
- 0x2,
- /* num */ 0x3,
- /* tuples */ 0x40,
- 0x3,
- 0x80,
- 0x1,
- 0x80,
- 0x2,
- 0x00,
+ "ORFno",
+ "ORF, multi entry/tuple, entry number too short",
+ {
+ /* hdr */ 0x3,
+ 0x21,
+ /* mpc */ 0x0,
+ 0x1,
+ 0x0,
+ 0x1,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ 0x3,
+ 0x80,
+ 0x1,
+ 0x80,
+ 0x2,
+ /* mpc */ 0x0,
+ 0x2,
+ 0x0,
+ 0x1,
+ /* num */ 0x1,
+ /* tuples */ 0x40,
+ 0x3,
+ 0x80,
+ 0x1,
+ 0x80,
+ 0x2,
+ /* mpc */ 0x0,
+ 0x2,
+ 0x0,
+ 0x2,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ 0x3,
+ 0x80,
+ 0x1,
+ 0x80,
+ 0x2,
+ },
+ 35,
+ SHOULD_PARSE, /* Parses, but should get gibberish
+ afi/safis */
},
- 36,
- SHOULD_PARSE,
- },
- /* 19 */
- {
- "AS4",
- "AS4 capability",
- {0x41, 0x4, 0xab, 0xcd, 0xef, 0x12}, /* AS: 2882400018 */
- 6,
- SHOULD_PARSE,
- 2882400018,
- },
- {
- "AS4",
- "AS4 capability: short",
- {0x41, 0x4, 0xab, 0xcd, 0xef}, /* AS: 2882400018 */
- 5,
- SHOULD_ERR,
- },
- {
- "AS4",
- "AS4 capability: long",
- {0x41, 0x4, 0xab, 0xcd, 0xef, 0x12, 0x12},
- 7,
- SHOULD_ERR,
- 2882400018,
- },
- {
- "GR",
- "GR capability",
+ /* 17 */
{
- /* hdr */ CAPABILITY_CODE_RESTART,
- 0xe,
- /* R-bit, time */ 0xf1,
- 0x12,
- /* afi */ 0x0,
- 0x1,
- /* safi */ 0x1,
- /* flags */ 0xf,
- /* afi */ 0x0,
- 0x2,
- /* safi */ 0x1,
- /* flags */ 0x0,
- /* afi */ 0x0,
- 0x2,
- /* safi */ 0x2,
- /* flags */ 0x1,
+ "ORFpad",
+ "ORF, multi entry/tuple, padded to align",
+ {
+ /* hdr */ 0x3,
+ 0x22,
+ /* mpc */ 0x0,
+ 0x1,
+ 0x0,
+ 0x1,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ 0x3,
+ 0x80,
+ 0x1,
+ 0x80,
+ 0x2,
+ /* mpc */ 0x0,
+ 0x2,
+ 0x0,
+ 0x1,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ 0x3,
+ 0x80,
+ 0x1,
+ 0x80,
+ 0x2,
+ /* mpc */ 0x0,
+ 0x2,
+ 0x0,
+ 0x2,
+ /* num */ 0x3,
+ /* tuples */ 0x40,
+ 0x3,
+ 0x80,
+ 0x1,
+ 0x80,
+ 0x2,
+ 0x00,
+ },
+ 36,
+ SHOULD_PARSE,
},
- 16,
- SHOULD_PARSE,
- },
- {
- "GR-short",
- "GR capability, but header length too short",
+ /* 19 */
{
- /* hdr */ 0x40,
- 0xa,
- /* R-bit, time */ 0xf1,
- 0x12,
- /* afi */ 0x0,
- 0x1,
- /* safi */ 0x1,
- /* flags */ 0xf,
- /* afi */ 0x0,
- 0x2,
- /* safi */ 0x1,
- /* flags */ 0x0,
- /* afi */ 0x0,
- 0x2,
- /* safi */ 0x2,
- /* flags */ 0x1,
+ "AS4",
+ "AS4 capability",
+ {0x41, 0x4, 0xab, 0xcd, 0xef,
+ 0x12}, /* AS: 2882400018 */
+ 6,
+ SHOULD_PARSE,
+ 2882400018,
},
- 15 /* array is 16 though */,
- SHOULD_ERR,
- },
- {
- "GR-long",
- "GR capability, but header length too long",
{
- /* hdr */ 0x40,
- 0xf,
- /* R-bit, time */ 0xf1,
- 0x12,
- /* afi */ 0x0,
- 0x1,
- /* safi */ 0x1,
- /* flags */ 0xf,
- /* afi */ 0x0,
- 0x2,
- /* safi */ 0x1,
- /* flags */ 0x0,
- /* afi */ 0x0,
- 0x2,
- /* safi */ 0x2,
- /* flags */ 0x01,
+ "AS4",
+ "AS4 capability: short",
+ {0x41, 0x4, 0xab, 0xcd, 0xef}, /* AS: 2882400018 */
+ 5,
+ SHOULD_ERR,
},
- 16,
- SHOULD_ERR,
- },
- {
- "GR-trunc",
- "GR capability, but truncated",
{
- /* hdr */ 0x40,
- 0xf,
- /* R-bit, time */ 0xf1,
- 0x12,
- /* afi */ 0x0,
- 0x1,
- /* safi */ 0x1,
- /* flags */ 0xf,
- /* afi */ 0x0,
- 0x2,
- /* safi */ 0x1,
- /* flags */ 0x0,
- /* afi */ 0x0,
- 0x2,
- /* safi */ 0x2,
- /* flags */ 0x1,
+ "AS4",
+ "AS4 capability: long",
+ {0x41, 0x4, 0xab, 0xcd, 0xef, 0x12, 0x12},
+ 7,
+ SHOULD_ERR,
+ 2882400018,
},
- 15,
- SHOULD_ERR,
- },
- {
- "GR-empty",
- "GR capability, but empty.",
{
- /* hdr */ 0x40,
- 0x0,
+ "GR",
+ "GR capability",
+ {
+ /* hdr */ CAPABILITY_CODE_RESTART, 0xe,
+ /* R-bit, time */ 0xf1, 0x12,
+ /* afi */ 0x0, 0x1,
+ /* safi */ 0x1,
+ /* flags */ 0xf,
+ /* afi */ 0x0, 0x2,
+ /* safi */ 0x1,
+ /* flags */ 0x0,
+ /* afi */ 0x0, 0x2,
+ /* safi */ 0x2,
+ /* flags */ 0x1,
+ },
+ 16,
+ SHOULD_PARSE,
},
- 2,
- SHOULD_ERR,
- },
- {
- "MP-empty",
- "MP capability, but empty.",
{
- /* hdr */ 0x1,
- 0x0,
+ "GR-short",
+ "GR capability, but header length too short",
+ {
+ /* hdr */ 0x40, 0xa,
+ /* R-bit, time */ 0xf1, 0x12,
+ /* afi */ 0x0, 0x1,
+ /* safi */ 0x1,
+ /* flags */ 0xf,
+ /* afi */ 0x0, 0x2,
+ /* safi */ 0x1,
+ /* flags */ 0x0,
+ /* afi */ 0x0, 0x2,
+ /* safi */ 0x2,
+ /* flags */ 0x1,
+ },
+ 15 /* array is 16 though */,
+ SHOULD_ERR,
},
- 2,
- SHOULD_ERR,
- },
- {
- "ORF-empty",
- "ORF capability, but empty.",
{
- /* hdr */ 0x3,
- 0x0,
+ "GR-long",
+ "GR capability, but header length too long",
+ {
+ /* hdr */ 0x40, 0xf,
+ /* R-bit, time */ 0xf1, 0x12,
+ /* afi */ 0x0, 0x1,
+ /* safi */ 0x1,
+ /* flags */ 0xf,
+ /* afi */ 0x0, 0x2,
+ /* safi */ 0x1,
+ /* flags */ 0x0,
+ /* afi */ 0x0, 0x2,
+ /* safi */ 0x2,
+ /* flags */ 0x01,
+ },
+ 16,
+ SHOULD_ERR,
},
- 2,
- SHOULD_ERR,
- },
- {
- "AS4-empty",
- "AS4 capability, but empty.",
{
- /* hdr */ 0x41,
- 0x0,
+ "GR-trunc",
+ "GR capability, but truncated",
+ {
+ /* hdr */ 0x40, 0xf,
+ /* R-bit, time */ 0xf1, 0x12,
+ /* afi */ 0x0, 0x1,
+ /* safi */ 0x1,
+ /* flags */ 0xf,
+ /* afi */ 0x0, 0x2,
+ /* safi */ 0x1,
+ /* flags */ 0x0,
+ /* afi */ 0x0, 0x2,
+ /* safi */ 0x2,
+ /* flags */ 0x1,
+ },
+ 15,
+ SHOULD_ERR,
},
- 2,
- SHOULD_ERR,
- },
- {
- "dyn-empty",
- "Dynamic capability, but empty.",
{
- /* hdr */ 0x42,
- 0x0,
+ "GR-empty",
+ "GR capability, but empty.",
+ {
+ /* hdr */ 0x40, 0x0,
+ },
+ 2,
+ SHOULD_ERR,
},
- 2,
- SHOULD_PARSE,
- },
- {
- "dyn-old",
- "Dynamic capability (deprecated version)",
- {CAPABILITY_CODE_DYNAMIC, 0x0},
- 2,
- SHOULD_PARSE,
- },
- {NULL, NULL, {0}, 0, 0}};
+ {
+ "MP-empty",
+ "MP capability, but empty.",
+ {
+ /* hdr */ 0x1, 0x0,
+ },
+ 2,
+ SHOULD_ERR,
+ },
+ {
+ "ORF-empty",
+ "ORF capability, but empty.",
+ {
+ /* hdr */ 0x3, 0x0,
+ },
+ 2,
+ SHOULD_ERR,
+ },
+ {
+ "AS4-empty",
+ "AS4 capability, but empty.",
+ {
+ /* hdr */ 0x41, 0x0,
+ },
+ 2,
+ SHOULD_ERR,
+ },
+ {
+ "dyn-empty",
+ "Dynamic capability, but empty.",
+ {
+ /* hdr */ 0x42, 0x0,
+ },
+ 2,
+ SHOULD_PARSE,
+ },
+ {
+ "dyn-old",
+ "Dynamic capability (deprecated version)",
+ {CAPABILITY_CODE_DYNAMIC, 0x0},
+ 2,
+ SHOULD_PARSE,
+ },
+ {NULL, NULL, {0}, 0, 0}};
/* DYNAMIC message */
struct test_segment dynamic_cap_msgs[] = {
failed++;
if (tty)
- printf("%s", (failed > oldfailed)
- ? VT100_RED "failed!" VT100_RESET
- : VT100_GREEN "OK" VT100_RESET);
+ printf("%s",
+ (failed > oldfailed) ? VT100_RED "failed!" VT100_RESET
+ : VT100_GREEN "OK" VT100_RESET);
else
printf("%s", (failed > oldfailed) ? "failed!" : "OK");