MCPcopy Create free account
hub / github.com/ElementsProject/lightning / check_example_7

Function check_example_7

ccan/ccan/graphql/test/run.c:402–494  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

400}
401
402void check_example_7(char *source) {
403 struct list_head *tokens;
404 struct graphql_token *tok;
405
406 if (!mute) printf("// Example No. 7\n");
407
408 sprintf(source, "\
409{\n\
410 id\n\
411 firstName\n\
412 lastName\n\
413}\n\
414 ");
415
416 // Test the lexer.
417 TEST_CONT(graphql_lex(NULL, source, &tokens) == NULL);
418 TEST_ABRT(listlen(tokens) == 5);
419 tok = list_pop(tokens, struct graphql_token, node);
420 TEST_CONT(tok->token_type == '{');
421 tok = list_pop(tokens, struct graphql_token, node);
422 TEST_CONT(tok->token_type == 'a');
423 TEST_STRG(tok->token_string, "id");
424 TEST_CONT(tok->source_line == 2);
425 TEST_CONT(tok->source_column == 3);
426 TEST_CONT(tok->source_len == 2);
427 tok = list_pop(tokens, struct graphql_token, node);
428 TEST_CONT(tok->token_type == 'a');
429 TEST_STRG(tok->token_string, "firstName");
430 TEST_CONT(tok->source_line == 3);
431 TEST_CONT(tok->source_column == 3);
432 TEST_CONT(tok->source_len == 9);
433 tok = list_pop(tokens, struct graphql_token, node);
434 TEST_CONT(tok->token_type == 'a');
435 TEST_STRG(tok->token_string, "lastName");
436 TEST_CONT(tok->source_line == 4);
437 TEST_CONT(tok->source_column == 3);
438 TEST_CONT(tok->source_len == 8);
439 tok = list_pop(tokens, struct graphql_token, node);
440 TEST_CONT(tok->token_type == '}');
441 tok = list_pop(tokens, struct graphql_token, node);
442 TEST_CONT(tok == NULL);
443 tokens = tal_free(tokens);
444
445 // Test the parser.
446 struct graphql_executable_document *doc;
447 TEST_CONT(graphql_lex(NULL, source, &tokens) == NULL);
448 TEST_ABRT(graphql_parse(tokens, &doc) == NULL);
449 TEST_ABRT(doc != NULL);
450 TEST_ABRT(doc->first_def != NULL);
451 TEST_CONT(doc->first_def->next_def == NULL);
452 TEST_CONT(doc->first_def->frag_def == NULL);
453 TEST_ABRT(doc->first_def->op_def != NULL);
454 TEST_CONT(doc->first_def->op_def->op_type == NULL);
455 TEST_ABRT(doc->first_def->op_def->op_name == NULL);
456 TEST_CONT(doc->first_def->op_def->vars == NULL);
457 TEST_CONT(doc->first_def->op_def->directives == NULL);
458 TEST_ABRT(doc->first_def->op_def->sel_set != NULL);
459 TEST_ABRT(doc->first_def->op_def->sel_set->first != NULL);

Callers

nothing calls this directly

Calls 4

graphql_lexFunction · 0.85
listlenFunction · 0.85
tal_freeFunction · 0.85
graphql_parseFunction · 0.85

Tested by

no test coverage detected