void TestBencodeListGetNextTwice( CuTest * tc ) { bencode_t ben; bencode_t ben2; char *str = strdup("l4:test3:fooe"); const char *ren; int len; bencode_init(&ben, str, strlen(str)); CuAssertTrue(tc, 1 == bencode_list_get_next(&ben, &ben2)); bencode_string_value(&ben2, &ren, &len); CuAssertTrue(tc, !strncmp("test", ren, len)); CuAssertTrue(tc, 1 == bencode_list_get_next(&ben, &ben2)); bencode_string_value(&ben2, &ren, &len); CuAssertTrue(tc, !strncmp("foo", ren, len)); // printf("%s\n", str); // CuAssertTrue(tc, !strcmp("l4:test3:fooe", str)); free(str); }
void TestBencodeDictGetNextInnerList( CuTest * tc ) { bencode_t ben; bencode_t ben2; bencode_t ben3; char *str = strdup("d3:keyl4:test3:fooee"); const char *ren; int len; bencode_init(&ben, str, strlen(str)); bencode_dict_get_next(&ben, &ben2, &ren, &len); CuAssertTrue(tc, !strncmp(ren, "key", len)); bencode_list_get_next(&ben2, &ben3); bencode_string_value(&ben3, &ren, &len); CuAssertTrue(tc, !strncmp("test", ren, len)); bencode_list_get_next(&ben2, &ben3); bencode_string_value(&ben3, &ren, &len); CuAssertTrue(tc, !strncmp("foo", ren, len)); CuAssertTrue(tc, !bencode_dict_has_next(&ben)); // printf("%s\n", str); // CuAssertTrue(tc, !strcmp("l4:test3:fooe", str)); free(str); }
void TestBencodeListGetNextTwiceWhereOnlyOneAvailable( CuTest * tc ) { bencode_t ben, ben2; char *str = strdup("l4:teste"); bencode_init(&ben, str, strlen(str)); CuAssertTrue(tc, 1 == bencode_list_get_next(&ben, &ben2)); CuAssertTrue(tc, 0 == bencode_list_get_next(&ben, &ben2)); free(str); }
void TestBencodeListGetNextAtInvalidEnd( CuTest * tc ) { bencode_t ben, ben2; char *str = strdup("l4:testg"); bencode_init(&ben, str, strlen(str)); CuAssertTrue(tc, 1 == bencode_list_get_next(&ben, &ben2)); CuAssertTrue(tc, -1 == bencode_list_get_next(&ben, &ben2)); free(str); }
void TestBencodeEmptyListInListWontGetNextIfEmpty( CuTest * tc ) { bencode_t ben, ben2; char *str = strdup("llee"); bencode_init(&ben, str, strlen(str)); CuAssertTrue(tc, 1 == bencode_list_has_next(&ben)); CuAssertTrue(tc, 1 == bencode_list_get_next(&ben, &ben2)); CuAssertTrue(tc, 1 == bencode_is_list(&ben2)); CuAssertTrue(tc, 0 == bencode_list_get_next(&ben, &ben2)); free(str); }
void TestBencodeListInListWithValue( CuTest * tc ) { bencode_t ben, ben2, ben3; const char *ren; char *str = strdup("ll3:fooee"); int len; bencode_init(&ben, str, strlen(str)); CuAssertTrue(tc, 1 == bencode_is_list(&ben)); CuAssertTrue(tc, 1 == bencode_list_get_next(&ben, &ben2)); CuAssertTrue(tc, 1 == bencode_is_list(&ben2)); CuAssertTrue(tc, 1 == bencode_list_get_next(&ben2, &ben3)); CuAssertTrue(tc, 1 == bencode_is_string(&ben3)); bencode_string_value(&ben3, &ren, &len); CuAssertTrue(tc, !strncmp("foo", ren, len)); CuAssertTrue(tc, 0 == bencode_list_get_next(&ben, &ben2)); free(str); }
void TestBencodeListGetNext( CuTest * tc ) { bencode_t ben, ben2; char *str = strdup("l3:foo3:bare"); const char *ren; int len; bencode_init(&ben, str, strlen(str)); CuAssertTrue(tc, 1 == bencode_list_get_next(&ben, &ben2)); bencode_string_value(&ben2, &ren, &len); CuAssertTrue(tc, !strncmp("foo", ren, len)); free(str); }