Add more unit tests for conversion operations.
A batch of small sanity tests for the new conv instructions.
Esse commit está contido em:
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
function foo($v) {
|
||||
return (bool)$v;
|
||||
}
|
||||
|
||||
var_dump(foo(null));
|
||||
var_dump(foo(true));
|
||||
var_dump(foo(1));
|
||||
var_dump(foo(1.1));
|
||||
var_dump(foo("true"));
|
||||
var_dump(foo(array(123)));
|
||||
|
||||
class C{}
|
||||
|
||||
function bar($i) {
|
||||
$v1 = "undefined";
|
||||
$v2 = "undefined";
|
||||
$v3 = "undefined";
|
||||
$v4 = "undefined";
|
||||
$v5 = "undefined";
|
||||
$v6 = "undefined";
|
||||
$v7 = "undefined";
|
||||
$v8 = "undefined";
|
||||
$v9 = "undefined";
|
||||
$v10 = "undefined";
|
||||
$v11 = "undefined";
|
||||
if ($i >= 1) {
|
||||
$v1 = null;
|
||||
$v2 = false;
|
||||
$v3 = true;
|
||||
$v4 = 0;
|
||||
$v5 = 1;
|
||||
$v6 = 0.0;
|
||||
$v7 = 1.1;
|
||||
$v8 = "false";
|
||||
$v9 = new C();
|
||||
$v10 = array();
|
||||
$v11 = array(1);
|
||||
}
|
||||
var_dump((bool)$v1);
|
||||
var_dump((bool)$v2);
|
||||
var_dump((bool)$v3);
|
||||
var_dump((bool)$v4);
|
||||
var_dump((bool)$v5);
|
||||
var_dump((bool)$v6);
|
||||
var_dump((bool)$v7);
|
||||
var_dump((bool)$v8);
|
||||
var_dump((bool)$v9);
|
||||
var_dump((bool)$v10);
|
||||
var_dump((bool)$v11);
|
||||
}
|
||||
|
||||
bar(1);
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,17 @@
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(false)
|
||||
bool(true)
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
function foo($v) {
|
||||
return (double)$v;
|
||||
}
|
||||
|
||||
var_dump(foo(null));
|
||||
var_dump(foo(true));
|
||||
var_dump(foo(1));
|
||||
var_dump(foo(9007199254740992));
|
||||
var_dump(foo(1.1));
|
||||
var_dump(foo("abc"));
|
||||
var_dump(foo(array(123)));
|
||||
class C { public $foo = "bar"; }
|
||||
var_dump(foo(new C));
|
||||
|
||||
function bar($i) {
|
||||
$v1 = "undefined";
|
||||
$v2 = "undefined";
|
||||
$v3 = "undefined";
|
||||
$v4 = "undefined";
|
||||
$v5 = "undefined";
|
||||
$v6 = "undefined";
|
||||
$v7 = "undefined";
|
||||
$v8 = "undefined";
|
||||
$v9 = "undefined";
|
||||
$v10 = "undefined";
|
||||
$v11 = "undefined";
|
||||
if ($i >= 1) {
|
||||
$v1 = null;
|
||||
$v2 = false;
|
||||
$v3 = true;
|
||||
$v4 = 0;
|
||||
$v5 = "1";
|
||||
$v6 = 0.0;
|
||||
$v7 = "1.1";
|
||||
$v8 = "abc";
|
||||
$v9 = new C;
|
||||
$v10 = array();
|
||||
$v11 = array(123);
|
||||
}
|
||||
var_dump((double)$v1);
|
||||
var_dump((double)$v2);
|
||||
var_dump((double)$v3);
|
||||
var_dump((double)$v4);
|
||||
var_dump((double)$v5);
|
||||
var_dump((double)$v6);
|
||||
var_dump((double)$v7);
|
||||
var_dump((double)$v8);
|
||||
var_dump((double)$v9);
|
||||
var_dump((double)$v10);
|
||||
var_dump((double)$v11);
|
||||
}
|
||||
|
||||
bar(1);
|
||||
@@ -0,0 +1,21 @@
|
||||
float(0)
|
||||
float(1)
|
||||
float(1)
|
||||
float(9.007199254741E+15)
|
||||
float(1.1)
|
||||
float(0)
|
||||
float(1)
|
||||
HipHop Notice: Object of class C could not be converted to int in hphp/test/vm/cnvDbl.php on line 4
|
||||
float(1)
|
||||
float(0)
|
||||
float(0)
|
||||
float(1)
|
||||
float(0)
|
||||
float(1)
|
||||
float(0)
|
||||
float(1.1)
|
||||
float(0)
|
||||
HipHop Notice: Object of class C could not be converted to int in hphp/test/vm/cnvDbl.php on line 50
|
||||
float(1)
|
||||
float(0)
|
||||
float(1)
|
||||
Link simbólico
+1
@@ -0,0 +1 @@
|
||||
filepath.filter
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
function foo($v) {
|
||||
return (int)$v;
|
||||
}
|
||||
|
||||
var_dump(foo(null));
|
||||
var_dump(foo(true));
|
||||
var_dump(foo(1));
|
||||
var_dump(foo(9007199254740992));
|
||||
var_dump(foo(1.1));
|
||||
var_dump(foo("abc"));
|
||||
var_dump(foo(array(123)));
|
||||
class C { public $foo = "bar"; }
|
||||
var_dump(foo(new C));
|
||||
|
||||
function bar($i) {
|
||||
$v1 = "undefined";
|
||||
$v2 = "undefined";
|
||||
$v3 = "undefined";
|
||||
$v4 = "undefined";
|
||||
$v5 = "undefined";
|
||||
$v6 = "undefined";
|
||||
$v7 = "undefined";
|
||||
$v8 = "undefined";
|
||||
$v9 = "undefined";
|
||||
$v10 = "undefined";
|
||||
$v11 = "undefined";
|
||||
if ($i >= 1) {
|
||||
$v1 = null;
|
||||
$v2 = false;
|
||||
$v3 = true;
|
||||
$v4 = 0;
|
||||
$v5 = "1";
|
||||
$v6 = 0.0;
|
||||
$v7 = "1.1";
|
||||
$v8 = "abc";
|
||||
$v9 = new C;
|
||||
$v10 = array();
|
||||
$v11 = array(123);
|
||||
}
|
||||
var_dump((int)$v1);
|
||||
var_dump((int)$v2);
|
||||
var_dump((int)$v3);
|
||||
var_dump((int)$v4);
|
||||
var_dump((int)$v5);
|
||||
var_dump((int)$v6);
|
||||
var_dump((int)$v7);
|
||||
var_dump((int)$v8);
|
||||
var_dump((int)$v9);
|
||||
var_dump((int)$v10);
|
||||
var_dump((int)$v11);
|
||||
}
|
||||
|
||||
bar(1);
|
||||
@@ -0,0 +1,21 @@
|
||||
int(0)
|
||||
int(1)
|
||||
int(1)
|
||||
int(9007199254740992)
|
||||
int(1)
|
||||
int(0)
|
||||
int(1)
|
||||
HipHop Notice: Object of class C could not be converted to int in hphp/test/vm/cnvInt.php on line 4
|
||||
int(1)
|
||||
int(0)
|
||||
int(0)
|
||||
int(1)
|
||||
int(0)
|
||||
int(1)
|
||||
int(0)
|
||||
int(1)
|
||||
int(0)
|
||||
HipHop Notice: Object of class C could not be converted to int in hphp/test/vm/cnvInt.php on line 50
|
||||
int(1)
|
||||
int(0)
|
||||
int(1)
|
||||
Link simbólico
+1
@@ -0,0 +1 @@
|
||||
filepath.filter
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
function foo($v) {
|
||||
return (object)$v;
|
||||
}
|
||||
|
||||
var_dump(foo(null));
|
||||
var_dump(foo(false));
|
||||
var_dump(foo(true));
|
||||
var_dump(foo(1));
|
||||
var_dump(foo(1.1));
|
||||
var_dump(foo("abc"));
|
||||
var_dump(foo(array(123)));
|
||||
class C { }
|
||||
var_dump(foo(new C));
|
||||
|
||||
function bar($v) {
|
||||
$nonStaticStr = (string)$v;
|
||||
return (object)$nonStaticStr;
|
||||
}
|
||||
var_dump(bar(1));
|
||||
|
||||
function candy($i) {
|
||||
$v1 = "undefined";
|
||||
if ($i >= 1) {
|
||||
$v1 = null;
|
||||
}
|
||||
var_dump((object)$v1);
|
||||
}
|
||||
|
||||
candy(1);
|
||||
@@ -0,0 +1,34 @@
|
||||
object(stdClass)#1 (0) {
|
||||
}
|
||||
object(stdClass)#1 (1) {
|
||||
["scalar"]=>
|
||||
bool(false)
|
||||
}
|
||||
object(stdClass)#1 (1) {
|
||||
["scalar"]=>
|
||||
bool(true)
|
||||
}
|
||||
object(stdClass)#1 (1) {
|
||||
["scalar"]=>
|
||||
int(1)
|
||||
}
|
||||
object(stdClass)#1 (1) {
|
||||
["scalar"]=>
|
||||
float(1.1)
|
||||
}
|
||||
object(stdClass)#1 (1) {
|
||||
["scalar"]=>
|
||||
string(3) "abc"
|
||||
}
|
||||
object(stdClass)#1 (1) {
|
||||
[0]=>
|
||||
int(123)
|
||||
}
|
||||
object(C)#1 (0) {
|
||||
}
|
||||
object(stdClass)#1 (1) {
|
||||
["scalar"]=>
|
||||
string(1) "1"
|
||||
}
|
||||
object(stdClass)#1 (0) {
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
function foo($v) {
|
||||
return (string)$v;
|
||||
}
|
||||
|
||||
var_dump(foo(null));
|
||||
var_dump(foo(false));
|
||||
var_dump(foo(true));
|
||||
var_dump(foo(1));
|
||||
var_dump(foo(1.1));
|
||||
var_dump(foo("abc"));
|
||||
var_dump(foo(array(123)));
|
||||
class C { public function __toString() { return "a C"; } }
|
||||
var_dump(foo(new C));
|
||||
|
||||
function bar($i) {
|
||||
$v1 = "undefined";
|
||||
$v2 = "undefined";
|
||||
$v3 = "undefined";
|
||||
$v4 = "undefined";
|
||||
$v5 = "undefined";
|
||||
$v6 = "undefined";
|
||||
$v7 = "undefined";
|
||||
$v8 = "undefined";
|
||||
$v9 = "undefined";
|
||||
$v10 = "undefined";
|
||||
$v11 = "undefined";
|
||||
if ($i >= 1) {
|
||||
$v1 = null;
|
||||
$v2 = false;
|
||||
$v3 = true;
|
||||
$v4 = 0;
|
||||
$v5 = 1;
|
||||
$v6 = 0.0;
|
||||
$v7 = 1.1;
|
||||
$v8 = "abc";
|
||||
$v9 = new C();
|
||||
$v10 = array();
|
||||
$v11 = array(123);
|
||||
}
|
||||
var_dump((string)$v1);
|
||||
var_dump((string)$v2);
|
||||
var_dump((string)$v3);
|
||||
var_dump((string)$v4);
|
||||
var_dump((string)$v5);
|
||||
var_dump((string)$v6);
|
||||
var_dump((string)$v7);
|
||||
var_dump((string)$v8);
|
||||
var_dump((string)$v9);
|
||||
var_dump((string)$v10);
|
||||
var_dump((string)$v11);
|
||||
}
|
||||
|
||||
bar(1);
|
||||
|
||||
class D { }
|
||||
var_dump(foo(new D));
|
||||
@@ -0,0 +1,20 @@
|
||||
string(0) ""
|
||||
string(0) ""
|
||||
string(1) "1"
|
||||
string(1) "1"
|
||||
string(3) "1.1"
|
||||
string(3) "abc"
|
||||
string(5) "Array"
|
||||
string(3) "a C"
|
||||
string(0) ""
|
||||
string(0) ""
|
||||
string(1) "1"
|
||||
string(1) "0"
|
||||
string(1) "1"
|
||||
string(1) "0"
|
||||
string(3) "1.1"
|
||||
string(3) "abc"
|
||||
string(3) "a C"
|
||||
string(5) "Array"
|
||||
string(5) "Array"
|
||||
HipHop Fatal error: Bad type conversion: D::__toString() was not defined. in hphp/test/vm/cnvStr.php on line 4
|
||||
Link simbólico
+1
@@ -0,0 +1 @@
|
||||
filepath.filter
|
||||
Referência em uma Nova Issue
Bloquear um usuário