77
77
* a self-writing test-case
79
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
79
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
115
115
* a self-writing test-case
117
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
117
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
346
346
void test_tokenizer_keywords() {
349
for (i = 0; sql_token_get_name(i, NULL); i++) {
349
for (i = 0; sql_token_get_name(i); i++) {
350
350
const char *keyword;
353
352
/** only tokens with TK_SQL_* are keyworks */
354
if (0 != strncmp(sql_token_get_name(i, NULL), "TK_SQL_", sizeof("TK_SQL_") - 1)) continue;
353
if (0 != strncmp(sql_token_get_name(i), "TK_SQL_", sizeof("TK_SQL_") - 1)) continue;
356
keyword = sql_token_get_name(i, &keyword_len);
357
/* strip the TK_SQL_ prefix to get the keyword itself */
358
keyword += sizeof("TK_SQL_") - 1;
359
keyword_len -= sizeof("TK_SQL_") - 1;
355
keyword = sql_token_get_name(i) + sizeof("TK_SQL_") - 1;
361
g_assert_cmpint(sql_token_get_id_len(keyword, keyword_len), ==, i);
357
g_assert_cmpint(sql_token_get_id(keyword), ==, i);
364
/* check that some SQL commands are not keywords */
365
g_assert_cmpint(sql_token_get_id_len(C("COMMIT")), ==, TK_LITERAL);
366
g_assert_cmpint(sql_token_get_id_len(C("TRUNCATE")), ==, TK_LITERAL);
360
g_assert_cmpint(sql_token_get_id("COMMIT"), ==, TK_LITERAL);
383
377
#define T(t_id, t_text) \
384
g_assert_cmpstr(sql_token_get_name(token->token_id, NULL), ==, sql_token_get_name(t_id, NULL)); \
378
g_assert_cmpstr(sql_token_get_name(token->token_id), ==, sql_token_get_name(t_id)); \
385
379
g_assert_cmpstr(token->text->str, ==, t_text);
387
381
/* e1 is a literal ("e1") */
399
393
* a self-writing test-case
401
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
395
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
402
396
g_assert_not_reached();
419
413
* a self-writing test-case
421
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
415
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
422
416
g_assert_not_reached();
441
435
* a self-writing test-case
443
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
437
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
444
438
g_assert_not_reached();
461
455
* a self-writing test-case
463
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
457
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
464
458
g_assert_not_reached();
481
475
* a self-writing test-case
483
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
477
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
484
478
g_assert_not_reached();
502
496
* a self-writing test-case
504
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
498
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
505
499
g_assert_not_reached();
522
516
* a self-writing test-case
524
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
518
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
525
519
g_assert_not_reached();
542
536
* a self-writing test-case
544
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
538
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
545
539
g_assert_not_reached();
566
560
* a self-writing test-case
568
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
562
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
569
563
g_assert_not_reached();
588
582
* a self-writing test-case
590
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
584
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
591
585
g_assert_not_reached();
610
604
* a self-writing test-case
612
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
606
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
613
607
g_assert_not_reached();
634
628
* a self-writing test-case
636
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
630
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
637
631
g_assert_not_reached();
658
652
* a self-writing test-case
660
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
654
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
661
655
g_assert_not_reached();
681
675
* a self-writing test-case
683
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
677
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
684
678
g_assert_not_reached();
705
699
* a self-writing test-case
707
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id, NULL), token->text->str);
701
printf("case %"G_GSIZE_FORMAT": T(%s, \"%s\"); break;\n", i, sql_token_get_name(token->token_id), token->text->str);
708
702
g_assert_not_reached();