[php] Add runme for long_long testcase
This commit is contained in:
parent
48bb7e0e95
commit
b78f0ee263
1 changed files with 61 additions and 0 deletions
61
Examples/test-suite/php/long_long_runme.php
Normal file
61
Examples/test-suite/php/long_long_runme.php
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
// This is the long_long runtime testcase. It checks that the long long and
|
||||
// unsigned long long types map correctly to PHP int or string (for values
|
||||
// which don't fit in a PHP int).
|
||||
|
||||
require "tests.php";
|
||||
|
||||
check::functions(array("foo1","foo2","foo3","foo4","foo5","foo6","bar1","bar2","bar3","bar4","bar5","bar6","UnsignedToSigned"));
|
||||
check::classes(array("long_long"));
|
||||
check::globals(array("ll","ull"));
|
||||
|
||||
function check_ll($ll) {
|
||||
long_long::ll_set($ll);
|
||||
check::equivalent($ll, long_long::ll_get(), "Round tripping of long long failed");
|
||||
}
|
||||
|
||||
function check_ull($ull) {
|
||||
long_long::ull_set($ull);
|
||||
check::equivalent($ull, long_long::ull_get(), "Round tripping of unsigned long long failed");
|
||||
}
|
||||
|
||||
check_ll("0");
|
||||
check_ll(0);
|
||||
check_ll(0x7FFFFFFFFFFFFFFF);
|
||||
check_ll(-10);
|
||||
|
||||
$testNumber = 0;
|
||||
const COUNT = 1025;
|
||||
|
||||
for ($i=0; $i<COUNT; $i++) {
|
||||
check_ull($testNumber);
|
||||
$testNumber += 1;
|
||||
}
|
||||
|
||||
$testNumber = 256*256/2-COUNT;
|
||||
for ($i=0; $i<COUNT*2; $i++) {
|
||||
check_ull($testNumber);
|
||||
$testNumber += 1;
|
||||
}
|
||||
|
||||
$testNumber = 256*256-COUNT;
|
||||
for ($i=0; $i<COUNT*2; $i++) {
|
||||
check_ull($testNumber);
|
||||
$testNumber += 1;
|
||||
}
|
||||
|
||||
$testNumber = 0x7FFFFFFFFFFFFFFF-COUNT;
|
||||
for ($i=0; $i<COUNT*2; $i++) {
|
||||
check_ull($testNumber);
|
||||
$testNumber += 1;
|
||||
}
|
||||
|
||||
// Check that conversion from unsigned long long to long long gives expected
|
||||
// value (including negative numbers)
|
||||
|
||||
check::equal(long_long::UnsignedToSigned(0), 0, "UnsignedToSigned test failed");
|
||||
check::equal(long_long::UnsignedToSigned(0xff), 0xff, "UnsignedToSigned test failed");
|
||||
check::equal(long_long::UnsignedToSigned(-0xff), -0xff, "UnsignedToSigned test failed");
|
||||
check::equal(long_long::UnsignedToSigned(-1), -1, "UnsignedToSigned test failed");
|
||||
|
||||
check::done();
|
||||
Loading…
Add table
Add a link
Reference in a new issue