1 #include "incs.h" 2 3 /* 4 * del attributes 5 */ 6 7 void test03(void) 8 { 9 RADIUS_PACKET *packet; 10 11 static const uint8_t data0[] = { 0xfe, 0xdc, 0xba, 0x98 }; 12 static const uint8_t data1[] = { 0x76, 0x54, 0x32, 0x10 }; 13 static const uint8_t data2[] = { 0x0f, 0x1e, 0x2d, 0x3c }; 14 static const uint8_t data3[] = { 0x4b, 0x5a, 0x69, 0x67 }; 15 static const uint8_t attrs_afterdel[] = { 16 80, 6, 0x0f, 0x1e, 0x2d, 0x3c, 17 80, 6, 0x0f, 0x1e, 0x2d, 0x3c, 18 RADIUS_TYPE_VENDOR_SPECIFIC, 12, 0, 0, 0, 70, 60, 6, 0x0f, 0x1e, 0x2d, 0x3c, 19 }; 20 21 packet = radius_new_request_packet(RADIUS_CODE_ACCESS_REQUEST); 22 23 radius_put_raw_attr(packet, 10, data0, sizeof(data0)); 24 radius_put_raw_attr(packet, 80, data2, sizeof(data2)); 25 radius_put_raw_attr(packet, 10, data1, sizeof(data1)); 26 radius_put_raw_attr(packet, 80, data2, sizeof(data2)); 27 radius_put_vs_raw_attr(packet, 20, 30, data1, sizeof(data1)); 28 radius_put_vs_raw_attr(packet, 20, 30, data0, sizeof(data0)); 29 radius_put_vs_raw_attr(packet, 70, 60, data2, sizeof(data2)); 30 radius_put_vs_raw_attr(packet, 20, 30, data3, sizeof(data3)); 31 32 CHECK(radius_del_attr_all(packet, 10) == 0); 33 CHECK(radius_del_vs_attr_all(packet, 20, 30) == 0); 34 35 CHECK(radius_get_length(packet) == sizeof(attrs_afterdel) + 20); 36 CHECK(memcmp(radius_get_data(packet) + 20, attrs_afterdel, sizeof(attrs_afterdel)) == 0); 37 38 CHECK(radius_del_attr_all(packet, 90) == 0); 39 CHECK(radius_del_vs_attr_all(packet, 90, 90) == 0); 40 41 CHECK(radius_get_length(packet) == sizeof(attrs_afterdel) + 20); 42 CHECK(memcmp(radius_get_data(packet) + 20, attrs_afterdel, sizeof(attrs_afterdel)) == 0); 43 } 44 45 ADD_TEST(test03) 46