test1521: test *all* curl_easy_setopt options

mk-lib1521.pl generates a test program (lib1521.c) that calls
curl_easy_setopt() for every known option with a few typical values to
make sure they work (ignoring the return codes).

Some small changes were necessary to avoid asserts and NULL accesses
when doing this.

The perl script needs to be manually rerun when we add new options.

Closes #1543
This commit is contained in:
Daniel Stenberg 2017-06-05 11:57:47 +02:00
parent b95a07ea59
commit cccac4fb2b
7 changed files with 998 additions and 29 deletions

View file

@ -2137,35 +2137,37 @@ CURLcode Curl_http2_switched(struct connectdata *conn,
void Curl_http2_add_child(struct Curl_easy *parent, struct Curl_easy *child,
bool exclusive)
{
struct Curl_http2_dep **tail;
struct Curl_http2_dep *dep = calloc(1, sizeof(struct Curl_http2_dep));
dep->data = child;
if(parent) {
struct Curl_http2_dep **tail;
struct Curl_http2_dep *dep = calloc(1, sizeof(struct Curl_http2_dep));
dep->data = child;
if(parent->set.stream_dependents && exclusive) {
struct Curl_http2_dep *node = parent->set.stream_dependents;
while(node) {
node->data->set.stream_depends_on = child;
node = node->next;
if(parent->set.stream_dependents && exclusive) {
struct Curl_http2_dep *node = parent->set.stream_dependents;
while(node) {
node->data->set.stream_depends_on = child;
node = node->next;
}
tail = &child->set.stream_dependents;
while(*tail)
tail = &(*tail)->next;
DEBUGASSERT(!*tail);
*tail = parent->set.stream_dependents;
parent->set.stream_dependents = 0;
}
tail = &child->set.stream_dependents;
while(*tail)
tail = &parent->set.stream_dependents;
while(*tail) {
(*tail)->data->set.stream_depends_e = FALSE;
tail = &(*tail)->next;
}
DEBUGASSERT(!*tail);
*tail = parent->set.stream_dependents;
parent->set.stream_dependents = 0;
*tail = dep;
}
tail = &parent->set.stream_dependents;
while(*tail) {
(*tail)->data->set.stream_depends_e = FALSE;
tail = &(*tail)->next;
}
DEBUGASSERT(!*tail);
*tail = dep;
child->set.stream_depends_on = parent;
child->set.stream_depends_e = exclusive;
}