Commit 220eb3c
committed
tests: cover CHAR target and CHARACTER SET NONE in the rebind matrix
Existing rebind coverage (Issue161_SLongToVarcharViaDmlRebind) hits
only one corner of the (target column type × column charset) matrix:
VARCHAR under the database's default charset (UTF8 on the CI test
databases). Empirical measurements on Windows against FB 5.0.3 show
the original pre-PR driver misbehaviour is identical for CHAR and
VARCHAR targets and differs across UTF8 vs NONE charsets:
target / charset master +1-liner this PR
VARCHAR + UTF8 3/4 shapes FAIL 3/4 shapes FAIL 4/4 OK
CHAR(N) + UTF8 3/4 shapes FAIL 3/4 shapes FAIL 4/4 OK
VARCHAR + NONE 1/4 shape FAIL 4/4 OK 4/4 OK
CHAR(N) + NONE 1/4 shape FAIL 4/4 OK 4/4 OK
The CHAR and NONE corners have never been exercised by the gtest
suite; a regression specific to either would slip past CI today.
Refactor: extract a RunIssue161RebindVariant(pkColumnDef, nameColumnDef)
helper that runs the full prepare + rebind-per-row + assert body,
driven by the column definition strings. Add three new thin tests
that call it with the three uncovered matrix corners:
Issue161_SLongToCharViaDmlRebind — CHAR(20) UTF8
Issue161_SLongToVarcharViaDmlRebindCharsetNone — VARCHAR(20) NONE
Issue161_SLongToCharViaDmlRebindCharsetNone — CHAR(20) NONE
The existing Issue161_SLongToVarcharViaDmlRebind is deliberately left
intact — it already covers VARCHAR + default(UTF8) via inline code,
and refactoring it here would expand the blast radius of this commit.
Helper also drops ODBC_ISSUE161_SP before each run so that a crash in
the earlier Issue161_*ViaStoredProcedure test cannot leak a
dependency that prevents the table DROP.
All 7 Issue161 tests pass locally on FB 5.0.3 / CHARSET=UTF8 with
the full PR applied. Tests carry SKIP_ON_FIREBIRD6() matching the
existing convention.1 parent d5daa1d commit 220eb3c
1 file changed
Lines changed: 131 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
40 | 133 | | |
41 | 134 | | |
42 | 135 | | |
| |||
655 | 748 | | |
656 | 749 | | |
657 | 750 | | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
658 | 789 | | |
659 | 790 | | |
660 | 791 | | |
| |||
0 commit comments