tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

test_netinfo.c (1134B)


      1 /* Copyright (c) 2007-2021, The Tor Project, Inc. */
      2 /* See LICENSE for licensing information */
      3 
      4 #include "orconfig.h"
      5 #include "core/or/or.h"
      6 #include "trunnel/netinfo.h"
      7 #include "test/test.h"
      8 
      9 static void
     10 test_netinfo_unsupported_addr(void *arg)
     11 {
     12  const uint8_t wire_data[] =
     13    { // TIME
     14      0x00, 0x00, 0x00, 0x01,
     15      // OTHERADDR
     16      0x04, // ATYPE
     17      0x04, // ALEN
     18      0x08, 0x08, 0x08, 0x08, // AVAL
     19      0x01, // NMYADDR
     20      0x03, // ATYPE (unsupported)
     21      0x05, // ALEN
     22      'a', 'd', 'r', 'r', '!' // AVAL (unsupported)
     23    };
     24 
     25  (void)arg;
     26 
     27  netinfo_cell_t *parsed_cell = NULL;
     28 
     29  ssize_t parsed = netinfo_cell_parse(&parsed_cell, wire_data,
     30                  sizeof(wire_data));
     31 
     32  tt_assert(parsed == sizeof(wire_data));
     33 
     34  netinfo_addr_t *addr = netinfo_cell_get_my_addrs(parsed_cell, 0);
     35  tt_assert(addr);
     36 
     37  tt_int_op(3, OP_EQ, netinfo_addr_get_addr_type(addr));
     38  tt_int_op(5, OP_EQ, netinfo_addr_get_len(addr));
     39 
     40 done:
     41  netinfo_cell_free(parsed_cell);
     42 }
     43 
     44 struct testcase_t netinfo_tests[] = {
     45  { "unsupported_addr", test_netinfo_unsupported_addr, 0, NULL, NULL },
     46  END_OF_TESTCASES
     47 };