550
#ifdef UNIV_COMPILE_TEST_FUNCS
553
test_ut_str_sql_format()
558
#define CALL_AND_TEST(str, str_len, buf, buf_size, ret_expected, buf_expected)\
561
memset(buf, 'x', 10);\
563
fprintf(stderr, "TESTING \"%s\", %lu, %lu\n",\
564
str, (ulint) str_len, (ulint) buf_size);\
565
ret = ut_str_sql_format(str, str_len, buf, buf_size);\
566
if (ret != ret_expected) {\
567
fprintf(stderr, "expected ret %lu, got %lu\n",\
568
(ulint) ret_expected, ret);\
571
if (strcmp((char*) buf, buf_expected) != 0) {\
572
fprintf(stderr, "expected buf \"%s\", got \"%s\"\n",\
577
fprintf(stderr, "OK: %lu, \"%s\"\n\n",\
584
CALL_AND_TEST("abcd", 4, buf, 0, 0, "xxxxxxxxxx");
586
CALL_AND_TEST("abcd", 4, buf, 1, 1, "");
588
CALL_AND_TEST("abcd", 4, buf, 2, 1, "");
590
CALL_AND_TEST("abcd", 0, buf, 3, 3, "''");
591
CALL_AND_TEST("abcd", 1, buf, 3, 1, "");
592
CALL_AND_TEST("abcd", 2, buf, 3, 1, "");
593
CALL_AND_TEST("abcd", 3, buf, 3, 1, "");
594
CALL_AND_TEST("abcd", 4, buf, 3, 1, "");
596
CALL_AND_TEST("abcd", 0, buf, 4, 3, "''");
597
CALL_AND_TEST("abcd", 1, buf, 4, 4, "'a'");
598
CALL_AND_TEST("abcd", 2, buf, 4, 4, "'a'");
599
CALL_AND_TEST("abcd", 3, buf, 4, 4, "'a'");
600
CALL_AND_TEST("abcd", 4, buf, 4, 4, "'a'");
601
CALL_AND_TEST("abcde", 5, buf, 4, 4, "'a'");
602
CALL_AND_TEST("'", 1, buf, 4, 3, "''");
603
CALL_AND_TEST("''", 2, buf, 4, 3, "''");
604
CALL_AND_TEST("a'", 2, buf, 4, 4, "'a'");
605
CALL_AND_TEST("'a", 2, buf, 4, 3, "''");
606
CALL_AND_TEST("ab", 2, buf, 4, 4, "'a'");
608
CALL_AND_TEST("abcdef", 0, buf, 5, 3, "''");
609
CALL_AND_TEST("abcdef", 1, buf, 5, 4, "'a'");
610
CALL_AND_TEST("abcdef", 2, buf, 5, 5, "'ab'");
611
CALL_AND_TEST("abcdef", 3, buf, 5, 5, "'ab'");
612
CALL_AND_TEST("abcdef", 4, buf, 5, 5, "'ab'");
613
CALL_AND_TEST("abcdef", 5, buf, 5, 5, "'ab'");
614
CALL_AND_TEST("abcdef", 6, buf, 5, 5, "'ab'");
615
CALL_AND_TEST("'", 1, buf, 5, 5, "''''");
616
CALL_AND_TEST("''", 2, buf, 5, 5, "''''");
617
CALL_AND_TEST("a'", 2, buf, 5, 4, "'a'");
618
CALL_AND_TEST("'a", 2, buf, 5, 5, "''''");
619
CALL_AND_TEST("ab", 2, buf, 5, 5, "'ab'");
620
CALL_AND_TEST("abc", 3, buf, 5, 5, "'ab'");
622
CALL_AND_TEST("ab", 2, buf, 6, 5, "'ab'");
624
CALL_AND_TEST("a'b'c", 5, buf, 32, 10, "'a''b''c'");
625
CALL_AND_TEST("a'b'c'", 6, buf, 32, 12, "'a''b''c'''");
628
#endif /* UNIV_COMPILE_TEST_FUNCS */