~jan-kneschke/mysql-proxy/packet-tracking-assertions

« back to all changes in this revision

Viewing changes to tests/unit/check_sql_tokenizer.c

  • Committer: jan at mysql
  • Date: 2010-05-27 14:19:43 UTC
  • Revision ID: jan@mysql.com-20100527141943-inwv2cohofexa2pb
added entry about #49716 - literals starting with digits

Show diffs side-by-side

added added

removed removed

Lines of Context:
76
76
                         /**
77
77
                          * a self-writing test-case 
78
78
                          */
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);
80
80
                        break;
81
81
                }
82
82
        }
114
114
                         /**
115
115
                          * a self-writing test-case 
116
116
                          */
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);
118
118
                        break;
119
119
                }
120
120
        }
135
135
        for (i = 0; i < TK_LAST_TOKEN; i++) {
136
136
                const char *name;
137
137
 
138
 
                g_assert((name = sql_token_get_name(i, NULL)));
 
138
                g_assert((name = sql_token_get_name(i)));
139
139
        }
140
140
} END_TEST
141
141
 
346
346
void test_tokenizer_keywords() {
347
347
        gsize i;
348
348
 
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;
351
 
                size_t keyword_len;
352
351
 
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;
355
354
                
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;
360
356
 
361
 
                g_assert_cmpint(sql_token_get_id_len(keyword, keyword_len), ==, i);
 
357
                g_assert_cmpint(sql_token_get_id(keyword), ==, i);
362
358
        }
363
 
        
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);
 
359
                
 
360
        g_assert_cmpint(sql_token_get_id("COMMIT"), ==, TK_LITERAL);
367
361
}
368
362
 
369
363
/**
381
375
        gsize i;
382
376
 
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);
386
380
 
387
381
        /* e1 is a literal ("e1") */
398
392
                         /**
399
393
                          * a self-writing test-case
400
394
                          */
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();
403
397
                }
404
398
        }
418
412
                         /**
419
413
                          * a self-writing test-case
420
414
                          */
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();
423
417
                }
424
418
        }
440
434
                         /**
441
435
                          * a self-writing test-case
442
436
                          */
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();
445
439
                }
446
440
        }
460
454
                         /**
461
455
                          * a self-writing test-case
462
456
                          */
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();
465
459
                }
466
460
        }
480
474
                         /**
481
475
                          * a self-writing test-case
482
476
                          */
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();
485
479
                }
486
480
        }
501
495
                         /**
502
496
                          * a self-writing test-case
503
497
                          */
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();
506
500
                }
507
501
        }
521
515
                         /**
522
516
                          * a self-writing test-case
523
517
                          */
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();
526
520
                }
527
521
        }
541
535
                         /**
542
536
                          * a self-writing test-case
543
537
                          */
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();
546
540
                }
547
541
        }
565
559
                         /**
566
560
                          * a self-writing test-case
567
561
                          */
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();
570
564
                }
571
565
        }
587
581
                         /**
588
582
                          * a self-writing test-case
589
583
                          */
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();
592
586
                }
593
587
        }
609
603
                         /**
610
604
                          * a self-writing test-case
611
605
                          */
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();
614
608
                }
615
609
        }
633
627
                         /**
634
628
                          * a self-writing test-case
635
629
                          */
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();
638
632
                }
639
633
        }
657
651
                         /**
658
652
                          * a self-writing test-case
659
653
                          */
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();
662
656
                }
663
657
        }
680
674
                         /**
681
675
                          * a self-writing test-case
682
676
                          */
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();
685
679
                }
686
680
        }
704
698
                         /**
705
699
                          * a self-writing test-case
706
700
                          */
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();
709
703
                }
710
704
        }