| 400 | } |
| 401 | |
| 402 | void 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); |
nothing calls this directly
no test coverage detected