Annotation of embedaddon/php/ext/mysqli/tests/mysqli_constants.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Constants exported by ext/mysqli
! 3: --SKIPIF--
! 4: <?php
! 5: require_once('skipif.inc');
! 6: require_once('skipifemb.inc');
! 7: require_once('skipifconnectfailure.inc');
! 8: ?>
! 9: --FILE--
! 10: <?php
! 11: require("connect.inc");
! 12: require("table.inc");
! 13:
! 14: $php_version = (int)str_replace('.', '', PHP_VERSION);
! 15: $constants = get_defined_constants(true);
! 16: sort($constants);
! 17:
! 18: $expected_constants = array(
! 19: 'MYSQLI_READ_DEFAULT_GROUP' => true,
! 20: 'MYSQLI_READ_DEFAULT_FILE' => true,
! 21: 'MYSQLI_OPT_CONNECT_TIMEOUT' => true,
! 22: 'MYSQLI_OPT_LOCAL_INFILE' => true,
! 23: 'MYSQLI_INIT_COMMAND' => true,
! 24: 'MYSQLI_CLIENT_SSL' => true,
! 25: "MYSQLI_CLIENT_COMPRESS" => true,
! 26: "MYSQLI_CLIENT_INTERACTIVE" => true,
! 27: "MYSQLI_CLIENT_IGNORE_SPACE" => true,
! 28: "MYSQLI_CLIENT_NO_SCHEMA" => true,
! 29: "MYSQLI_CLIENT_FOUND_ROWS" => true,
! 30: "MYSQLI_STORE_RESULT" => true,
! 31: "MYSQLI_USE_RESULT" => true,
! 32: "MYSQLI_ASSOC" => true,
! 33: "MYSQLI_NUM" => true,
! 34: "MYSQLI_BOTH" => true,
! 35: "MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH" => true,
! 36: "MYSQLI_NOT_NULL_FLAG" => true,
! 37: "MYSQLI_PRI_KEY_FLAG" => true,
! 38: "MYSQLI_UNIQUE_KEY_FLAG" => true,
! 39: "MYSQLI_MULTIPLE_KEY_FLAG" => true,
! 40: "MYSQLI_BLOB_FLAG" => true,
! 41: "MYSQLI_UNSIGNED_FLAG" => true,
! 42: "MYSQLI_ZEROFILL_FLAG" => true,
! 43: "MYSQLI_AUTO_INCREMENT_FLAG" => true,
! 44: "MYSQLI_TIMESTAMP_FLAG" => true,
! 45: "MYSQLI_SET_FLAG" => true,
! 46: "MYSQLI_NUM_FLAG" => true,
! 47: "MYSQLI_ENUM_FLAG" => true,
! 48: "MYSQLI_BINARY_FLAG" => true,
! 49: "MYSQLI_PART_KEY_FLAG" => true,
! 50: "MYSQLI_GROUP_FLAG" => true,
! 51: "MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED"=> true,
! 52: "MYSQLI_SERVER_QUERY_NO_INDEX_USED" => true,
! 53:
! 54: "MYSQLI_TYPE_DECIMAL" => true,
! 55: "MYSQLI_TYPE_TINY" => true,
! 56: "MYSQLI_TYPE_SHORT" => true,
! 57: "MYSQLI_TYPE_LONG" => true,
! 58: "MYSQLI_TYPE_FLOAT" => true,
! 59: "MYSQLI_TYPE_DOUBLE" => true,
! 60: "MYSQLI_TYPE_NULL" => true,
! 61: "MYSQLI_TYPE_TIMESTAMP" => true,
! 62: "MYSQLI_TYPE_LONGLONG" => true,
! 63: "MYSQLI_TYPE_INT24" => true,
! 64: "MYSQLI_TYPE_DATE" => true,
! 65: "MYSQLI_TYPE_TIME" => true,
! 66: "MYSQLI_TYPE_DATETIME" => true,
! 67: "MYSQLI_TYPE_YEAR" => true,
! 68: "MYSQLI_TYPE_NEWDATE" => true,
! 69: "MYSQLI_TYPE_ENUM" => true,
! 70: "MYSQLI_TYPE_SET" => true,
! 71: "MYSQLI_TYPE_TINY_BLOB" => true,
! 72: "MYSQLI_TYPE_MEDIUM_BLOB" => true,
! 73: "MYSQLI_TYPE_LONG_BLOB" => true,
! 74: "MYSQLI_TYPE_BLOB" => true,
! 75: "MYSQLI_TYPE_VAR_STRING" => true,
! 76: "MYSQLI_TYPE_STRING" => true,
! 77: "MYSQLI_TYPE_CHAR" => true,
! 78: "MYSQLI_TYPE_INTERVAL" => true,
! 79: "MYSQLI_TYPE_GEOMETRY" => true,
! 80: "MYSQLI_NO_DATA" => true,
! 81: "MYSQLI_REPORT_INDEX" => true,
! 82: "MYSQLI_REPORT_STRICT" => true,
! 83: "MYSQLI_REPORT_ALL" => true,
! 84: "MYSQLI_REPORT_ERROR" => true,
! 85: "MYSQLI_REPORT_OFF" => true,
! 86: "MYSQLI_SET_CHARSET_NAME" => true,
! 87: "MYSQLI_SET_CHARSET_DIR" => true,
! 88: "MYSQLI_REFRESH_GRANT" => true,
! 89: "MYSQLI_REFRESH_LOG" => true,
! 90: "MYSQLI_REFRESH_TABLES" => true,
! 91: "MYSQLI_REFRESH_HOSTS" => true,
! 92: "MYSQLI_REFRESH_STATUS" => true,
! 93: "MYSQLI_REFRESH_THREADS" => true,
! 94: "MYSQLI_REFRESH_SLAVE" => true,
! 95: "MYSQLI_REFRESH_MASTER" => true,
! 96: "MYSQLI_DEBUG_TRACE_ENABLED" => true,
! 97: );
! 98:
! 99: /* depends on the build - experimental */
! 100: if ($IS_MYSQLND && defined('MYSQLI_OPT_INT_AND_FLOAT_NATIVE')) {
! 101: $expected_constants['MYSQLI_OPT_INT_AND_FLOAT_NATIVE'] = true;
! 102: }
! 103:
! 104: if ($IS_MYSQLND || defined('MYSQLI_REFRESH_BACKUP_LOG')) {
! 105: $expected_constants['MYSQLI_REFRESH_BACKUP_LOG'] = true;
! 106: }
! 107:
! 108: if ($IS_MYSQLND) {
! 109: $version = 50007 + 1;
! 110: $expected_constants['MYSQLI_OPT_NET_CMD_BUFFER_SIZE'] = true;
! 111: $expected_constants['MYSQLI_OPT_NET_READ_BUFFER_SIZE'] = true;
! 112: $expected_constants['MYSQLI_ASYNC'] = true;
! 113:
! 114: $expected_constants['MYSQLI_SERVER_PS_OUT_PARAMS'] = true;
! 115: } else {
! 116: $version = mysqli_get_client_version();
! 117: }
! 118:
! 119: if (($version > 51122 && $version < 60000) || ($version > 60003) || $IS_MYSQLND) {
! 120: $expected_constants['MYSQLI_ON_UPDATE_NOW_FLAG'] = true;
! 121: }
! 122:
! 123: /* First introduced in MySQL 6.0, backported to MySQL 5.5 */
! 124: if ($version >= 50500 || $IS_MYSQLND) {
! 125: $expected_constants['MYSQLI_SERVER_QUERY_WAS_SLOW'] = true;
! 126: }
! 127:
! 128: if ($version > 50002) {
! 129: $expected_constants = array_merge($expected_constants, array(
! 130: "MYSQLI_TYPE_NEWDECIMAL" => true,
! 131: "MYSQLI_TYPE_BIT" => true,
! 132: ));
! 133: }
! 134:
! 135: if ($version > 50002 || $IS_MYSQLND) {
! 136: $expected_constants['MYSQLI_NO_DEFAULT_VALUE_FLAG'] = true;
! 137: }
! 138:
! 139: if ($version > 50003) {
! 140: $expected_constants = array_merge($expected_constants, array(
! 141: "MYSQLI_STMT_ATTR_CURSOR_TYPE" => true,
! 142: "MYSQLI_CURSOR_TYPE_NO_CURSOR" => true,
! 143: "MYSQLI_CURSOR_TYPE_READ_ONLY" => true,
! 144: "MYSQLI_CURSOR_TYPE_FOR_UPDATE" => true,
! 145: "MYSQLI_CURSOR_TYPE_SCROLLABLE" => true,
! 146: ));
! 147: }
! 148:
! 149: if ($version > 50007) {
! 150: $expected_constants = array_merge($expected_constants, array(
! 151: "MYSQLI_STMT_ATTR_PREFETCH_ROWS" => true,
! 152: ));
! 153: }
! 154:
! 155: if ($version > 50110 || $IS_MYSQLND) {
! 156: $expected_constants['MYSQLI_OPT_SSL_VERIFY_SERVER_CERT'] = true;
! 157: }
! 158:
! 159: /* pretty dump test, but that is the best way to mimic mysql.c */
! 160: if (defined('MYSQLI_DATA_TRUNCATED'))
! 161: $expected_constants["MYSQLI_DATA_TRUNCATED"] = true;
! 162:
! 163: if (defined('MYSQLI_SERVER_PS_OUT_PARAMS'))
! 164: $expected_constants["MYSQLI_SERVER_PS_OUT_PARAMS"] = true;
! 165:
! 166: if (!$IS_MYSQLND) {
! 167: /* libmysql only */
! 168:
! 169: /* are they available in all versions of ext/mysqli ?
! 170: ... no we must have removed them at some point - for BC, weakening the test
! 171: */
! 172: if (defined("MYSQLI_RPL_MASTER")) {
! 173: $expected_constants["MYSQLI_RPL_MASTER"] = true;
! 174: $expected_constants["MYSQLI_RPL_SLAVE"] = true;
! 175: $expected_constants["MYSQLI_RPL_ADMIN"] = true;
! 176: }
! 177: }
! 178:
! 179:
! 180: $unexpected_constants = array();
! 181:
! 182: foreach ($constants as $group => $consts) {
! 183: foreach ($consts as $name => $value) {
! 184: if (stristr($name, 'mysqli')) {
! 185: $name = strtoupper($name);
! 186: if (isset($expected_constants[$name])) {
! 187: unset($expected_constants[$name]);
! 188: } else {
! 189: $unexpected_constants[$name] = $name;
! 190: }
! 191: }
! 192: }
! 193: }
! 194:
! 195: if (!empty($unexpected_constants)) {
! 196: printf("Dumping list of unexpected constants\n");
! 197: var_dump($unexpected_constants);
! 198: }
! 199:
! 200: if (!empty($expected_constants)) {
! 201: printf("Dumping list of missing constants\n");
! 202: var_dump($expected_constants);
! 203: }
! 204:
! 205: print "done!";
! 206: ?>
! 207: --EXPECTF--
! 208: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>