|
10 | 10 | from lib.core.common import Backend |
11 | 11 | from lib.core.common import Format |
12 | 12 | from lib.core.common import randomRange |
| 13 | +from lib.core.common import randomStr |
13 | 14 | from lib.core.compat import xrange |
14 | 15 | from lib.core.convert import getUnicode |
15 | 16 | from lib.core.data import conf |
@@ -74,13 +75,14 @@ def _sysTablesCheck(self): |
74 | 75 | ("1.5", ("NULLIF(%d,%d) IS NULL", "EXISTS(SELECT CURRENT_TRANSACTION FROM RDB$DATABASE)")), |
75 | 76 | ("2.0", ("EXISTS(SELECT CURRENT_TIME(0) FROM RDB$DATABASE)", "BIT_LENGTH(%d)>0", "CHAR_LENGTH(%d)>0")), |
76 | 77 | ("2.1", ("BIN_XOR(%d,%d)=0", "PI()>0.%d", "RAND()<1.%d", "FLOOR(1.%d)>=0")), |
77 | | - # TODO: add test for Firebird 2.5 |
| 78 | + ("2.5", ("'%s' SIMILAR TO '%s'",)), # Reference: https://firebirdsql.org/refdocs/langrefupd25-similar-to.html |
| 79 | + ("3.0", ("FALSE IS FALSE",)), # https://www.firebirdsql.org/file/community/conference-2014/pdf/02_fb.2014.whatsnew.30.en.pdf |
78 | 80 | ) |
79 | 81 |
|
80 | 82 | for i in xrange(len(table)): |
81 | 83 | version, checks = table[i] |
82 | 84 | failed = False |
83 | | - check = checks[randomRange(0, len(checks) - 1)].replace("%d", getUnicode(randomRange(1, 100))) |
| 85 | + check = checks[randomRange(0, len(checks) - 1)].replace("%d", getUnicode(randomRange(1, 100))).replace("%s", getUnicode(randomStr())) |
84 | 86 | result = inject.checkBooleanExpression(check) |
85 | 87 |
|
86 | 88 | if result: |
|
0 commit comments