Annotation of embedaddon/php/ext/interbase/tests/003.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: InterBase: misc sql types (may take a while)
        !             3: --SKIPIF--
        !             4: <?php include("skipif.inc"); ?>
        !             5: --FILE--
        !             6: <?php /* $Id: 003.phpt 321992 2012-01-10 05:26:20Z mariuz $ */
        !             7: 
        !             8:     require("interbase.inc");
        !             9:     ibase_connect($test_base);
        !            10:     
        !            11:     ibase_query(
        !            12:        "create table test3 (
        !            13:             iter               integer not null,
        !            14:             v_char             char(1000),
        !            15:             v_date      timestamp,
        !            16:                        v_decimal4_2            decimal(4,2),
        !            17:                        v_decimal4_0            decimal(4,0),
        !            18:                        v_decimal7_2            decimal(7,2),
        !            19:                        v_decimal7_0            decimal(7,0),
        !            20:                        v_numeric15_15          numeric(15,15),
        !            21:                        v_numeric15_0   numeric(15,0),
        !            22:             v_double   double precision,
        !            23:             v_float     float,
        !            24:             v_integer   integer,
        !            25:             v_smallint  smallint,
        !            26:             v_varchar   varchar(10000)
        !            27:             )");
        !            28:     ibase_commit();
        !            29: 
        !            30:        /* should fail, but gracefully */
        !            31:        @ibase_query("insert into test3 (iter) values (?)", null);
        !            32: 
        !            33:     /* if timefmt is not supported, suppress error here */
        !            34:     ini_set('ibase.timestampformat',"%m/%d/%Y %H:%M:%S");
        !            35: 
        !            36:     for($iter = 0; $iter < 10; $iter++){
        !            37:        /* prepare data  */
        !            38:        $v_char = rand_str(1000);
        !            39:        $v_date = rand_datetime();
        !            40:        $v_decimal4_2 = rand_number(4,2);
        !            41:        $v_decimal4_0 = rand_number(4,0);
        !            42:        $v_decimal7_2 = rand_number(7,2);
        !            43:        $v_decimal7_0 = rand_number(7,0);
        !            44:        $v_numeric15_15 = rand_number(15,15);
        !            45:        $v_numeric15_0 = $iter ? rand_number(15,0) : 0;
        !            46:        $v_double  = rand_number(18);
        !            47:        $v_float   = rand_number(7);
        !            48:        $v_integer = rand_number(9,0);
        !            49:        $v_smallint = rand_number(5) % 32767;
        !            50:        $v_varchar = rand_str(10000);
        !            51: 
        !            52:        ibase_query(
        !            53:        "insert into test3 (iter, v_char,v_date,v_decimal4_2, v_decimal4_0, v_decimal7_2, v_decimal7_0,v_numeric15_15, v_numeric15_0,v_double,v_float,v_integer,v_smallint,v_varchar)
        !            54:        values ($iter, '$v_char','$v_date',$v_decimal4_2, $v_decimal4_0, $v_decimal7_2, $v_decimal7_0,$v_numeric15_15, $v_numeric15_0,$v_double,$v_float,$v_integer,$v_smallint,'$v_varchar')");
        !            55:        $sel = ibase_query("select * from test3 where iter = $iter");
        !            56:        $row = ibase_fetch_object($sel);
        !            57:        if(substr($row->V_CHAR,0,strlen($v_char)) != $v_char){
        !            58:                echo " CHAR fail:\n";
        !            59:             echo " in:  $v_char\n";
        !            60:             echo " out: $row->V_CHAR\n";
        !            61:         }
        !            62:         if($row->V_DATE != $v_date){
        !            63:             echo " DATE fail\n";
        !            64:             echo " in:  $v_date\n";
        !            65:             echo " out: $row->V_DATE\n";
        !            66:         }
        !            67:         if($row->V_DECIMAL4_2 != $v_decimal4_2){
        !            68:             echo " DECIMAL4_2 fail\n";
        !            69:             echo " in:  $v_decimal4_2\n";
        !            70:             echo " out: $row->V_DECIMAL4_2\n";
        !            71:         }
        !            72:         if($row->V_DECIMAL4_0 != $v_decimal4_0){
        !            73:             echo " DECIMAL4_0 fail\n";
        !            74:             echo " in:  $v_decimal4_0\n";
        !            75:             echo " out: $row->V_DECIMAL4_0\n";
        !            76:         }
        !            77:         if($row->V_DECIMAL7_2 != $v_decimal7_2){
        !            78:             echo " DECIMAL7_2 fail\n";
        !            79:             echo " in:  $v_decimal7_2\n";
        !            80:             echo " out: $row->V_DECIMAL7_2\n";
        !            81:         }
        !            82:         if($row->V_DECIMAL7_0 != $v_decimal7_0){
        !            83:             echo " DECIMAL7_0 fail\n";
        !            84:             echo " in:  $v_decimal7_0\n";
        !            85:             echo " out: $row->V_DECIMAL7_0\n";
        !            86:         }
        !            87:         if($row->V_NUMERIC15_15 != $v_numeric15_15){
        !            88:             echo " NUMERIC15_15 fail\n";
        !            89:             echo " in:  $v_numeric15_15\n";
        !            90:             echo " out: $row->V_NUMERIC15_15\n";
        !            91:         }
        !            92:         if($row->V_NUMERIC15_0 != (string)$v_numeric15_0){
        !            93:             echo " NUMERIC15_0 fail\n";
        !            94:             echo " in:  $v_numeric15_0\n";
        !            95:             echo " out: $row->V_NUMERIC15_0\n";
        !            96:         }
        !            97: 
        !            98:         if(abs($row->V_DOUBLE - $v_double) > abs($v_double / 1E15)){
        !            99:             echo " DOUBLE fail\n";
        !           100:             echo " in:  $v_double\n";
        !           101:             echo " out: $row->V_DOUBLE\n";
        !           102:         }
        !           103:         if(abs($row->V_FLOAT - $v_float) > abs($v_float / 1E7)){
        !           104:             echo " FLOAT fail\n";
        !           105:             echo " in:  $v_float\n";
        !           106:             echo " out: $row->V_FLOAT\n";
        !           107:         }
        !           108:         if($row->V_INTEGER != $v_integer){
        !           109:             echo " INTEGER fail\n";
        !           110:             echo " in:  $v_integer\n";
        !           111:             echo " out: $row->V_INTEGER\n";
        !           112:         }
        !           113:         if($row->V_SMALLINT != $v_smallint){
        !           114:             echo " SMALLINT fail\n";
        !           115:             echo " in:  $v_smallint\n";
        !           116:             echo " out: $row->V_SMALLINT\n";
        !           117:         }
        !           118: 
        !           119:          if(substr($row->V_VARCHAR,0,strlen($v_varchar)) != $v_varchar){
        !           120:                echo " VARCHAR fail:\n";
        !           121:             echo " in:  $v_varchar\n";
        !           122:             echo " out: $row->V_VARCHAR\n";
        !           123:         }
        !           124: 
        !           125:         ibase_free_result($sel);
        !           126:     } /* for($iter) */
        !           127: 
        !           128:        /* check for correct handling of duplicate field names */
        !           129:        $q = ibase_query('SELECT 1 AS id, 2 AS id, 3 AS id, 4 AS id, 5 AS id, 6 AS id, 7 AS id, 8 AS id, 9 AS id,
        !           130:                10 AS id, 11 AS id, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 FROM rdb$database');
        !           131:        var_dump(ibase_fetch_assoc($q));
        !           132:        
        !           133:     ibase_close();
        !           134:     echo "end of test\n";
        !           135: ?>
        !           136: --EXPECT--
        !           137: array(22) {
        !           138:   ["ID"]=>
        !           139:   int(1)
        !           140:   ["ID_01"]=>
        !           141:   int(2)
        !           142:   ["ID_02"]=>
        !           143:   int(3)
        !           144:   ["ID_03"]=>
        !           145:   int(4)
        !           146:   ["ID_04"]=>
        !           147:   int(5)
        !           148:   ["ID_05"]=>
        !           149:   int(6)
        !           150:   ["ID_06"]=>
        !           151:   int(7)
        !           152:   ["ID_07"]=>
        !           153:   int(8)
        !           154:   ["ID_08"]=>
        !           155:   int(9)
        !           156:   ["ID_09"]=>
        !           157:   int(10)
        !           158:   ["ID_10"]=>
        !           159:   int(11)
        !           160:   ["CONSTANT"]=>
        !           161:   int(12)
        !           162:   ["CONSTANT_01"]=>
        !           163:   int(13)
        !           164:   ["CONSTANT_02"]=>
        !           165:   int(14)
        !           166:   ["CONSTANT_03"]=>
        !           167:   int(15)
        !           168:   ["CONSTANT_04"]=>
        !           169:   int(16)
        !           170:   ["CONSTANT_05"]=>
        !           171:   int(17)
        !           172:   ["CONSTANT_06"]=>
        !           173:   int(18)
        !           174:   ["CONSTANT_07"]=>
        !           175:   int(19)
        !           176:   ["CONSTANT_08"]=>
        !           177:   int(20)
        !           178:   ["CONSTANT_09"]=>
        !           179:   int(21)
        !           180:   ["CONSTANT_10"]=>
        !           181:   int(22)
        !           182: }
        !           183: end of test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>