diff options
author | andy wharmby <wharmby@php.net> | 2009-01-26 22:27:03 +0000 |
---|---|---|
committer | andy wharmby <wharmby@php.net> | 2009-01-26 22:27:03 +0000 |
commit | 4f3a4e597b7315c12f58974c9f719fd83002f0a1 (patch) | |
tree | aace7f074b4faf38877f295ebb2f7a5893d9e442 /ext/standard | |
parent | cbdb8f6167bbf99d3de58e61ebfadeadd4592d4d (diff) | |
download | php-git-4f3a4e597b7315c12f58974c9f719fd83002f0a1.tar.gz |
Split-ip var_export.phpt and add new error tests. Tested on Windows, Linux and Linux 64 bit
Diffstat (limited to 'ext/standard')
12 files changed, 1346 insertions, 1054 deletions
diff --git a/ext/standard/tests/general_functions/var_export.phpt b/ext/standard/tests/general_functions/var_export.phpt deleted file mode 100644 index b5cc886e4b..0000000000 --- a/ext/standard/tests/general_functions/var_export.phpt +++ /dev/null @@ -1,1054 +0,0 @@ ---TEST-- -Test var_export() function ---INI-- -precision=14 ---FILE-- -<?php -/* Prototype: mixed var_export( mixed expression [, bool return]); - * Description: Returns the variable representation when the return parameter is used and evaluates to TRUE. Otherwise, this function will return NULL. - -*/ - -echo "*** Testing var_export() with integer values ***\n"; -// different integer vlaues -$valid_ints = array( - '0', - '1', - '-1', - '-2147483648', // max negative integer value - '-2147483647', - 2147483647, // max positive integer value - 2147483640, - 0x123B, // integer as hexadecimal - '0x12ab', - '0Xfff', - '0XFA', - -0x80000000, // max negative integer as hexadecimal - '0x7fffffff', // max postive integer as hexadecimal - 0x7FFFFFFF, // max postive integer as hexadecimal - '0123', // integer as octal - 01912, // should be quivalent to octal 1 - -020000000000, // max negative integer as octal - 017777777777, // max positive integer as octal - ); -$counter = 1; -/* Loop to check for above integer values with var_export() */ -echo "\n*** Output for integer values ***\n"; -foreach($valid_ints as $int_value) { -echo "\nIteration ".$counter."\n"; -var_export( $int_value ); -echo "\n"; -var_export( $int_value, FALSE); -echo "\n"; -var_dump( var_export( $int_value, TRUE) ); -echo "\n"; -$counter++; -} - -echo "*** Testing var_export() with valid boolean values ***\n"; -// different valid boolean vlaues -$valid_bool = array( - 1, - TRUE, - true, - 0, - FALSE, - false - ); -$counter = 1; -/* Loop to check for above boolean values with var_export() */ -echo "\n*** Output for boolean values ***\n"; -foreach($valid_bool as $bool_value) { -echo "\nIteration ".$counter."\n"; -var_export( $bool_value ); -echo "\n"; -var_export( $bool_value, FALSE); -echo "\n"; -var_dump( var_export( $bool_value, TRUE) ); -echo "\n"; -$counter++; -} - -echo "*** Testing var_export() with valid float values ***\n"; -// different valid float vlaues -$valid_floats = array( - -2147483649, // float value - 2147483648, // float value - -0x80000001, // float value, beyond max negative int - 0x800000001, // float value, beyond max positive int - 020000000001, // float value, beyond max positive int - -020000000001, // float value, beyond max negative int - 0.0, - -0.1, - 10.0000000000000000005, - 10.5e+5, - 1e5, - 1e-5, - 1e+5, - 1E5, - 1E+5, - 1E-5, - .5e+7, - .6e-19, - .05E+44, - .0034E-30 -); -$counter = 1; -/* Loop to check for above float values with var_export() */ -echo "\n*** Output for float values ***\n"; -foreach($valid_bool as $float_value) { -echo "\nIteration ".$counter."\n"; -var_export( $float_value ); -echo "\n"; -var_export( $float_value, FALSE); -echo "\n"; -var_dump( var_export( $float_value, TRUE) ); -echo "\n"; -$counter++; -} - -echo "*** Testing var_export() with valid strings ***\n"; -// different valid string -$valid_strings = array( - "", - " ", - '', - ' ', - "string", - 'string', - "NULL", - 'null', - "FALSE", - 'false', - "\x0b", - "\0", - '\0', - '\060', - "\070" - ); -$counter = 1; -/* Loop to check for above strings with var_export() */ -echo "\n*** Output for strings ***\n"; -foreach($valid_strings as $str) { -echo "\nIteration ".$counter."\n"; -var_export( $str ); -echo "\n"; -var_export( $str, FALSE); -echo "\n"; -var_dump( var_export( $str, TRUE) ); -echo "\n"; -$counter++; -} - -echo "*** Testing var_export() with valid arrays ***\n"; -// different valid arrays -$valid_arrays = array( - array(), - array(NULL), - array(null), - array(true), - array(""), - array(''), - array(array(), array()), - array(array(1, 2), array('a', 'b')), - array(1 => 'One'), - array("test" => "is_array"), - array(0), - array(-1), - array(10.5, 5.6), - array("string", "test"), - array('string', 'test') - ); -$counter = 1; -/* Loop to check for above arrays with var_export() */ -echo "\n*** Output for arrays ***\n"; -foreach($valid_arrays as $arr) { -echo "\nIteration ".$counter."\n"; -var_export( $arr ); -echo "\n"; -var_export( $arr, FALSE); -echo "\n"; -var_dump( var_export( $arr, TRUE) ); -echo "\n"; -$counter++; -} - -echo "*** Testing var_export() with valid objects ***\n"; - -// class with no members -class foo -{ -// no members -} - -// abstract class -abstract class abstractClass -{ - abstract protected function getClassName(); - public function printClassName () { - echo $this->getClassName() . "\n"; - } -} -// implement abstract class -class concreteClass extends abstractClass -{ - protected function getClassName() { - return "concreteClass"; - } -} - -// interface class -interface iValue -{ - public function setVal ($name, $val); - public function dumpVal (); -} -// implement the interface -class Value implements iValue -{ - private $vars = array (); - - public function setVal ( $name, $val ) { - $this->vars[$name] = $val; - } - - public function dumpVal () { - var_export ( $vars ); - } -} - -// a gereral class -class myClass -{ - var $foo_object; - public $public_var; - public $public_var1; - private $private_var; - protected $protected_var; - - function myClass ( ) { - $this->foo_object = new foo(); - $this->public_var = 10; - $this->public_var1 = new foo(); - $this->private_var = new foo(); - $this->proected_var = new foo(); - } -} - -// create a object of each class defined above -$myClass_object = new myClass(); -$foo_object = new foo(); -$Value_object = new Value(); -$concreteClass_object = new concreteClass(); - -$valid_objects = array( - new stdclass, - new foo, - new concreteClass, - new Value, - new myClass, - $myClass_object, - $myClass_object->foo_object, - $myClass_object->public_var1, - $foo_object, - $Value_object, - $concreteClass_object - ); - $counter = 1; -/* Loop to check for above objects with var_export() */ -echo "\n*** Output for objects ***\n"; -foreach($valid_objects as $obj) { -echo "\nIteration ".$counter."\n"; -var_export( $obj ); -echo "\n"; -var_export( $obj, FALSE); -echo "\n"; -var_dump( var_export( $obj, TRUE) ); -echo "\n"; -$counter++; -} - -echo "*** Testing var_export() with valid null values ***\n"; -// different valid null vlaues -$unset_var = array(); -unset ($unset_var); // now a null -$null_var = NULL; - -$valid_nulls = array( - NULL, - null, - $null_var, - ); - $counter = 1; -/* Loop to check for above null values with var_export() */ -echo "\n*** Output for null values ***\n"; -foreach($valid_nulls as $null_value) { -echo "\nIteration ".$counter."\n"; -var_export( $null_value ); -echo "\n"; -var_export( $null_value, FALSE); -echo "\n"; -var_dump( var_export( $null_value, true) ); -echo "\n"; -$counter++; -} - -echo "\n*** Testing error conditions ***\n"; -//Zero argument -var_export( var_export() ); - -//arguments more than expected -var_export( var_export(TRUE, FALSE, TRUE) ); - -echo "\n\nDone"; - - -?> ---EXPECTF-- -*** Testing var_export() with integer values *** - -*** Output for integer values *** - -Iteration 1 -'0' -'0' -string(3) "'0'" - - -Iteration 2 -'1' -'1' -string(3) "'1'" - - -Iteration 3 -'-1' -'-1' -string(4) "'-1'" - - -Iteration 4 -'-2147483648' -'-2147483648' -string(13) "'-2147483648'" - - -Iteration 5 -'-2147483647' -'-2147483647' -string(13) "'-2147483647'" - - -Iteration 6 -2147483647 -2147483647 -string(10) "2147483647" - - -Iteration 7 -2147483640 -2147483640 -string(10) "2147483640" - - -Iteration 8 -4667 -4667 -string(4) "4667" - - -Iteration 9 -'0x12ab' -'0x12ab' -string(8) "'0x12ab'" - - -Iteration 10 -'0Xfff' -'0Xfff' -string(7) "'0Xfff'" - - -Iteration 11 -'0XFA' -'0XFA' -string(6) "'0XFA'" - - -Iteration 12 --2147483648 --2147483648 -string(11) "-2147483648" - - -Iteration 13 -'0x7fffffff' -'0x7fffffff' -string(12) "'0x7fffffff'" - - -Iteration 14 -2147483647 -2147483647 -string(10) "2147483647" - - -Iteration 15 -'0123' -'0123' -string(6) "'0123'" - - -Iteration 16 -1 -1 -string(1) "1" - - -Iteration 17 --2147483648 --2147483648 -string(11) "-2147483648" - - -Iteration 18 -2147483647 -2147483647 -string(10) "2147483647" - -*** Testing var_export() with valid boolean values *** - -*** Output for boolean values *** - -Iteration 1 -1 -1 -string(1) "1" - - -Iteration 2 -true -true -string(4) "true" - - -Iteration 3 -true -true -string(4) "true" - - -Iteration 4 -0 -0 -string(1) "0" - - -Iteration 5 -false -false -string(5) "false" - - -Iteration 6 -false -false -string(5) "false" - -*** Testing var_export() with valid float values *** - -*** Output for float values *** - -Iteration 1 -1 -1 -string(1) "1" - - -Iteration 2 -true -true -string(4) "true" - - -Iteration 3 -true -true -string(4) "true" - - -Iteration 4 -0 -0 -string(1) "0" - - -Iteration 5 -false -false -string(5) "false" - - -Iteration 6 -false -false -string(5) "false" - -*** Testing var_export() with valid strings *** - -*** Output for strings *** - -Iteration 1 -'' -'' -string(2) "''" - - -Iteration 2 -' ' -' ' -string(3) "' '" - - -Iteration 3 -'' -'' -string(2) "''" - - -Iteration 4 -' ' -' ' -string(3) "' '" - - -Iteration 5 -'string' -'string' -string(8) "'string'" - - -Iteration 6 -'string' -'string' -string(8) "'string'" - - -Iteration 7 -'NULL' -'NULL' -string(6) "'NULL'" - - -Iteration 8 -'null' -'null' -string(6) "'null'" - - -Iteration 9 -'FALSE' -'FALSE' -string(7) "'FALSE'" - - -Iteration 10 -'false' -'false' -string(7) "'false'" - - -Iteration 11 -'' -'' -string(3) "''" - - -Iteration 12 -'' . "\0" . '' -'' . "\0" . '' -string(14) "'' . "\0" . ''" - - -Iteration 13 -'\\0' -'\\0' -string(5) "'\\0'" - - -Iteration 14 -'\\060' -'\\060' -string(7) "'\\060'" - - -Iteration 15 -'8' -'8' -string(3) "'8'" - -*** Testing var_export() with valid arrays *** - -*** Output for arrays *** - -Iteration 1 -array ( -) -array ( -) -string(9) "array ( -)" - - -Iteration 2 -array ( - 0 => NULL, -) -array ( - 0 => NULL, -) -string(22) "array ( - 0 => NULL, -)" - - -Iteration 3 -array ( - 0 => NULL, -) -array ( - 0 => NULL, -) -string(22) "array ( - 0 => NULL, -)" - - -Iteration 4 -array ( - 0 => true, -) -array ( - 0 => true, -) -string(22) "array ( - 0 => true, -)" - - -Iteration 5 -array ( - 0 => '', -) -array ( - 0 => '', -) -string(20) "array ( - 0 => '', -)" - - -Iteration 6 -array ( - 0 => '', -) -array ( - 0 => '', -) -string(20) "array ( - 0 => '', -)" - - -Iteration 7 -array ( - 0 => - array ( - ), - 1 => - array ( - ), -) -array ( - 0 => - array ( - ), - 1 => - array ( - ), -) -string(55) "array ( - 0 => - array ( - ), - 1 => - array ( - ), -)" - - -Iteration 8 -array ( - 0 => - array ( - 0 => 1, - 1 => 2, - ), - 1 => - array ( - 0 => 'a', - 1 => 'b', - ), -) -array ( - 0 => - array ( - 0 => 1, - 1 => 2, - ), - 1 => - array ( - 0 => 'a', - 1 => 'b', - ), -) -string(107) "array ( - 0 => - array ( - 0 => 1, - 1 => 2, - ), - 1 => - array ( - 0 => 'a', - 1 => 'b', - ), -)" - - -Iteration 9 -array ( - 1 => 'One', -) -array ( - 1 => 'One', -) -string(23) "array ( - 1 => 'One', -)" - - -Iteration 10 -array ( - 'test' => 'is_array', -) -array ( - 'test' => 'is_array', -) -string(33) "array ( - 'test' => 'is_array', -)" - - -Iteration 11 -array ( - 0 => 0, -) -array ( - 0 => 0, -) -string(19) "array ( - 0 => 0, -)" - - -Iteration 12 -array ( - 0 => -1, -) -array ( - 0 => -1, -) -string(20) "array ( - 0 => -1, -)" - - -Iteration 13 -array ( - 0 => 10.5, - 1 => 5.6, -) -array ( - 0 => 10.5, - 1 => 5.6, -) -string(34) "array ( - 0 => 10.5, - 1 => 5.6, -)" - - -Iteration 14 -array ( - 0 => 'string', - 1 => 'test', -) -array ( - 0 => 'string', - 1 => 'test', -) -string(41) "array ( - 0 => 'string', - 1 => 'test', -)" - - -Iteration 15 -array ( - 0 => 'string', - 1 => 'test', -) -array ( - 0 => 'string', - 1 => 'test', -) -string(41) "array ( - 0 => 'string', - 1 => 'test', -)" - -*** Testing var_export() with valid objects *** - -*** Output for objects *** - -Iteration 1 -stdClass::__set_state(array( -)) -stdClass::__set_state(array( -)) -string(31) "stdClass::__set_state(array( -))" - - -Iteration 2 -foo::__set_state(array( -)) -foo::__set_state(array( -)) -string(26) "foo::__set_state(array( -))" - - -Iteration 3 -concreteClass::__set_state(array( -)) -concreteClass::__set_state(array( -)) -string(36) "concreteClass::__set_state(array( -))" - - -Iteration 4 -Value::__set_state(array( - 'vars' => - array ( - ), -)) -Value::__set_state(array( - 'vars' => - array ( - ), -)) -string(57) "Value::__set_state(array( - 'vars' => - array ( - ), -))" - - -Iteration 5 -myClass::__set_state(array( - 'foo_object' => - foo::__set_state(array( - )), - 'public_var' => 10, - 'public_var1' => - foo::__set_state(array( - )), - 'private_var' => - foo::__set_state(array( - )), - 'protected_var' => NULL, - 'proected_var' => - foo::__set_state(array( - )), -)) -myClass::__set_state(array( - 'foo_object' => - foo::__set_state(array( - )), - 'public_var' => 10, - 'public_var1' => - foo::__set_state(array( - )), - 'private_var' => - foo::__set_state(array( - )), - 'protected_var' => NULL, - 'proected_var' => - foo::__set_state(array( - )), -)) -string(293) "myClass::__set_state(array( - 'foo_object' => - foo::__set_state(array( - )), - 'public_var' => 10, - 'public_var1' => - foo::__set_state(array( - )), - 'private_var' => - foo::__set_state(array( - )), - 'protected_var' => NULL, - 'proected_var' => - foo::__set_state(array( - )), -))" - - -Iteration 6 -myClass::__set_state(array( - 'foo_object' => - foo::__set_state(array( - )), - 'public_var' => 10, - 'public_var1' => - foo::__set_state(array( - )), - 'private_var' => - foo::__set_state(array( - )), - 'protected_var' => NULL, - 'proected_var' => - foo::__set_state(array( - )), -)) -myClass::__set_state(array( - 'foo_object' => - foo::__set_state(array( - )), - 'public_var' => 10, - 'public_var1' => - foo::__set_state(array( - )), - 'private_var' => - foo::__set_state(array( - )), - 'protected_var' => NULL, - 'proected_var' => - foo::__set_state(array( - )), -)) -string(293) "myClass::__set_state(array( - 'foo_object' => - foo::__set_state(array( - )), - 'public_var' => 10, - 'public_var1' => - foo::__set_state(array( - )), - 'private_var' => - foo::__set_state(array( - )), - 'protected_var' => NULL, - 'proected_var' => - foo::__set_state(array( - )), -))" - - -Iteration 7 -foo::__set_state(array( -)) -foo::__set_state(array( -)) -string(26) "foo::__set_state(array( -))" - - -Iteration 8 -foo::__set_state(array( -)) -foo::__set_state(array( -)) -string(26) "foo::__set_state(array( -))" - - -Iteration 9 -foo::__set_state(array( -)) -foo::__set_state(array( -)) -string(26) "foo::__set_state(array( -))" - - -Iteration 10 -Value::__set_state(array( - 'vars' => - array ( - ), -)) -Value::__set_state(array( - 'vars' => - array ( - ), -)) -string(57) "Value::__set_state(array( - 'vars' => - array ( - ), -))" - - -Iteration 11 -concreteClass::__set_state(array( -)) -concreteClass::__set_state(array( -)) -string(36) "concreteClass::__set_state(array( -))" - -*** Testing var_export() with valid null values *** - -*** Output for null values *** - -Iteration 1 -NULL -NULL -string(4) "NULL" - - -Iteration 2 -NULL -NULL -string(4) "NULL" - - -Iteration 3 -NULL -NULL -string(4) "NULL" - - -*** Testing error conditions *** - -Warning: var_export() expects at least 1 parameter, 0 given in %s on line %d -NULL -Warning: var_export() expects at most 2 parameters, 3 given in %s on line %d -NULL - -Done diff --git a/ext/standard/tests/general_functions/var_export_basic1.phpt b/ext/standard/tests/general_functions/var_export_basic1.phpt new file mode 100644 index 0000000000..3a734c7fe0 --- /dev/null +++ b/ext/standard/tests/general_functions/var_export_basic1.phpt @@ -0,0 +1,141 @@ +--TEST-- +Test var_export() function with integer values +--FILE-- +<?php +/* Prototype : mixed var_export(mixed var [, bool return]) + * Description: Outputs or returns a string representation of a variable + * Source code: ext/standard/var.c + * Alias to functions: + */ + +echo "*** Testing var_export() with integer values ***\n"; +// different integer vlaues +$valid_ints = array( + '0' => '0', + '1' => '1', + '-1' => '-1', + '-2147483648' => '-2147483648', // max negative integer value + '-2147483647' => '-2147483647', + '2147483647' => 2147483647, // max positive integer value + '2147483640' => 2147483640, + '0x123B' => 0x123B, // integer as hexadecimal + "'0x12ab'" => '0x12ab', + "'0Xfff'" => '0Xfff', + "'0XFA'" => '0XFA', + "-0x80000000" => -0x80000000, // max negative integer as hexadecimal + "'0x7fffffff'" => '0x7fffffff', // max postive integer as hexadecimal + "0x7FFFFFFF" => 0x7FFFFFFF, // max postive integer as hexadecimal + "'0123'" => '0123', // integer as octal + "01912" => 01912, // should be quivalent to octal 1 + "-020000000000" => -020000000000, // max negative integer as octal + "017777777777" => 017777777777, // max positive integer as octal +); + +/* Loop to check for above integer values with var_export() */ +echo "\n*** Output for integer values ***\n"; +foreach($valid_ints as $key => $int_value) { + echo "\n-- Iteration: $key --\n"; + var_export( $int_value ); + echo "\n"; + var_export( $int_value, FALSE); + echo "\n"; + var_dump( var_export( $int_value, TRUE) ); +} + +?> +===DONE=== +--EXPECT-- +*** Testing var_export() with integer values *** + +*** Output for integer values *** + +-- Iteration: 0 -- +'0' +'0' +string(3) "'0'" + +-- Iteration: 1 -- +'1' +'1' +string(3) "'1'" + +-- Iteration: -1 -- +'-1' +'-1' +string(4) "'-1'" + +-- Iteration: -2147483648 -- +'-2147483648' +'-2147483648' +string(13) "'-2147483648'" + +-- Iteration: -2147483647 -- +'-2147483647' +'-2147483647' +string(13) "'-2147483647'" + +-- Iteration: 2147483647 -- +2147483647 +2147483647 +string(10) "2147483647" + +-- Iteration: 2147483640 -- +2147483640 +2147483640 +string(10) "2147483640" + +-- Iteration: 0x123B -- +4667 +4667 +string(4) "4667" + +-- Iteration: '0x12ab' -- +'0x12ab' +'0x12ab' +string(8) "'0x12ab'" + +-- Iteration: '0Xfff' -- +'0Xfff' +'0Xfff' +string(7) "'0Xfff'" + +-- Iteration: '0XFA' -- +'0XFA' +'0XFA' +string(6) "'0XFA'" + +-- Iteration: -0x80000000 -- +-2147483648 +-2147483648 +string(11) "-2147483648" + +-- Iteration: '0x7fffffff' -- +'0x7fffffff' +'0x7fffffff' +string(12) "'0x7fffffff'" + +-- Iteration: 0x7FFFFFFF -- +2147483647 +2147483647 +string(10) "2147483647" + +-- Iteration: '0123' -- +'0123' +'0123' +string(6) "'0123'" + +-- Iteration: 01912 -- +1 +1 +string(1) "1" + +-- Iteration: -020000000000 -- +-2147483648 +-2147483648 +string(11) "-2147483648" + +-- Iteration: 017777777777 -- +2147483647 +2147483647 +string(10) "2147483647" +===DONE=== diff --git a/ext/standard/tests/general_functions/var_export_basic2.phpt b/ext/standard/tests/general_functions/var_export_basic2.phpt new file mode 100644 index 0000000000..33ca400cc6 --- /dev/null +++ b/ext/standard/tests/general_functions/var_export_basic2.phpt @@ -0,0 +1,76 @@ +--TEST-- +Test var_export() function with valid boolean values +--FILE-- +<?php + +/* Prototype : mixed var_export(mixed var [, bool return]) + * Description: Outputs or returns a string representation of a variable + * Source code: ext/standard/var.c + * Alias to functions: + */ + +echo "*** Testing var_export() with valid boolean values ***\n"; +// different valid boolean vlaues +$valid_bool = array( + "1" => 1, + "TRUE" => TRUE, + "true" => true, + "0" => 0, + "FALSE" => FALSE, + "false" => false +); + +/* Loop to check for above boolean values with var_export() */ +echo "\n*** Output for boolean values ***\n"; +foreach($valid_bool as $key => $bool_value) { + echo "\n-- Iteration: $key --\n"; + var_export( $bool_value ); + echo "\n"; + var_export( $bool_value, FALSE); + echo "\n"; + var_dump( var_export( $bool_value, TRUE) ); + echo "\n"; +} +?> +===DONE=== +--EXPECT-- +*** Testing var_export() with valid boolean values *** + +*** Output for boolean values *** + +-- Iteration: 1 -- +1 +1 +string(1) "1" + + +-- Iteration: TRUE -- +true +true +string(4) "true" + + +-- Iteration: true -- +true +true +string(4) "true" + + +-- Iteration: 0 -- +0 +0 +string(1) "0" + + +-- Iteration: FALSE -- +false +false +string(5) "false" + + +-- Iteration: false -- +false +false +string(5) "false" + +===DONE===
\ No newline at end of file diff --git a/ext/standard/tests/general_functions/var_export_basic3.phpt b/ext/standard/tests/general_functions/var_export_basic3.phpt new file mode 100644 index 0000000000..2997215910 --- /dev/null +++ b/ext/standard/tests/general_functions/var_export_basic3.phpt @@ -0,0 +1,175 @@ +--TEST-- +Test var_export() function with valid float values +--INI-- +precision=14 +--FILE-- +<?php +/* Prototype : mixed var_export(mixed var [, bool return]) + * Description: Outputs or returns a string representation of a variable + * Source code: ext/standard/var.c + * Alias to functions: + */ + +echo "*** Testing var_export() with valid float values ***\n"; +// different valid float vlaues +$valid_floats = array( + "-2147483649" => -2147483649, // float value + "2147483648" => 2147483648, // float value + "-0x80000001" => -0x80000001, // float value, beyond max negative int + "0x800000001" => 0x800000001, // float value, beyond max positive int + "020000000001" => 020000000001, // float value, beyond max positive int + "-020000000001" => -020000000001, // float value, beyond max negative int + "0.0" => 0.0, + "-0.1" => -0.1, + "10.0000000000000000005" => 10.0000000000000000005, + "10.5e+5" => 10.5e+5, + "1e5" => 1e5, + "1e-5" => 1e-5, + "1e+5" => 1e+5, + "1E5" => 1E5, + "1E+5" => 1E+5, + "1E-5" => 1E-5, + ".5e+7" => .5e+7, + ".6e-19" => .6e-19, + ".05E+44" => .05E+44, + ".0034E-30" => .0034E-30 +); +/* Loop to check for above float values with var_export() */ +echo "\n*** Output for float values ***\n"; +foreach($valid_floats as $key => $float_value) { + echo "\n-- Iteration: $key --\n"; + var_export( $float_value ); + echo "\n"; + var_export( $float_value, FALSE); + echo "\n"; + var_dump( var_export( $float_value, TRUE) ); + echo "\n"; +} + +?> +===DONE=== +--EXPECT-- +*** Testing var_export() with valid float values *** + +*** Output for float values *** + +-- Iteration: -2147483649 -- +-2147483649 +-2147483649 +string(11) "-2147483649" + + +-- Iteration: 2147483648 -- +2147483648 +2147483648 +string(10) "2147483648" + + +-- Iteration: -0x80000001 -- +-2147483649 +-2147483649 +string(11) "-2147483649" + + +-- Iteration: 0x800000001 -- +34359738369 +34359738369 +string(11) "34359738369" + + +-- Iteration: 020000000001 -- +2147483649 +2147483649 +string(10) "2147483649" + + +-- Iteration: -020000000001 -- +-2147483649 +-2147483649 +string(11) "-2147483649" + + +-- Iteration: 0.0 -- +0 +0 +string(1) "0" + + +-- Iteration: -0.1 -- +-0.1 +-0.1 +string(4) "-0.1" + + +-- Iteration: 10.0000000000000000005 -- +10 +10 +string(2) "10" + + +-- Iteration: 10.5e+5 -- +1050000 +1050000 +string(7) "1050000" + + +-- Iteration: 1e5 -- +100000 +100000 +string(6) "100000" + + +-- Iteration: 1e-5 -- +1.0E-5 +1.0E-5 +string(6) "1.0E-5" + + +-- Iteration: 1e+5 -- +100000 +100000 +string(6) "100000" + + +-- Iteration: 1E5 -- +100000 +100000 +string(6) "100000" + + +-- Iteration: 1E+5 -- +100000 +100000 +string(6) "100000" + + +-- Iteration: 1E-5 -- +1.0E-5 +1.0E-5 +string(6) "1.0E-5" + + +-- Iteration: .5e+7 -- +5000000 +5000000 +string(7) "5000000" + + +-- Iteration: .6e-19 -- +6.0E-20 +6.0E-20 +string(7) "6.0E-20" + + +-- Iteration: .05E+44 -- +5.0E+42 +5.0E+42 +string(7) "5.0E+42" + + +-- Iteration: .0034E-30 -- +3.4E-33 +3.4E-33 +string(7) "3.4E-33" + +===DONE=== diff --git a/ext/standard/tests/general_functions/var_export_basic4.phpt b/ext/standard/tests/general_functions/var_export_basic4.phpt new file mode 100644 index 0000000000..4668ace1c5 --- /dev/null +++ b/ext/standard/tests/general_functions/var_export_basic4.phpt @@ -0,0 +1,147 @@ +--TEST-- +Test var_export() function with valid strings +--FILE-- +<?php +/* Prototype : mixed var_export(mixed var [, bool return]) + * Description: Outputs or returns a string representation of a variable + * Source code: ext/standard/var.c + * Alias to functions: + */ + + +echo "*** Testing var_export() with valid strings ***\n"; +// different valid string +$valid_strings = array( + "\"\"" => "", + "\" \"" => " ", + "''" => '', + "' '" => ' ', + "\"string\"" => "string", + "'string'" => 'string', + "\"\\0Hello\\0 World\\0\"" => "\0Hello\0 World\0", + "\"NULL\"" => "NULL", + "'null'" => 'null', + "\"FALSE\"" => "FALSE", + "'false'" => 'false', + "\"\\x0b\"" => "\x0b", + "\"\\0\"" => "\0", + "'\\0'" => '\0', + "'\\060'" => '\060', + "\"\\070\"" => "\070" +); + +/* Loop to check for above strings with var_export() */ +echo "\n*** Output for strings ***\n"; +foreach($valid_strings as $key => $str) { + echo "\n-- Iteration: $key --\n"; + var_export( $str ); + echo "\n"; + var_export( $str, FALSE); + echo "\n"; + var_dump( var_export( $str, TRUE) ); + echo "\n"; +} + +?> +===DONE=== +--EXPECT-- +*** Testing var_export() with valid strings *** + +*** Output for strings *** + +-- Iteration: "" -- +'' +'' +string(2) "''" + + +-- Iteration: " " -- +' ' +' ' +string(3) "' '" + + +-- Iteration: '' -- +'' +'' +string(2) "''" + + +-- Iteration: ' ' -- +' ' +' ' +string(3) "' '" + + +-- Iteration: "string" -- +'string' +'string' +string(8) "'string'" + + +-- Iteration: 'string' -- +'string' +'string' +string(8) "'string'" + + +-- Iteration: "\0Hello\0 World\0" -- +'' . "\0" . 'Hello' . "\0" . ' World' . "\0" . '' +'' . "\0" . 'Hello' . "\0" . ' World' . "\0" . '' +string(49) "'' . "\0" . 'Hello' . "\0" . ' World' . "\0" . ''" + + +-- Iteration: "NULL" -- +'NULL' +'NULL' +string(6) "'NULL'" + + +-- Iteration: 'null' -- +'null' +'null' +string(6) "'null'" + + +-- Iteration: "FALSE" -- +'FALSE' +'FALSE' +string(7) "'FALSE'" + + +-- Iteration: 'false' -- +'false' +'false' +string(7) "'false'" + + +-- Iteration: "\x0b" -- +'' +'' +string(3) "''" + + +-- Iteration: "\0" -- +'' . "\0" . '' +'' . "\0" . '' +string(14) "'' . "\0" . ''" + + +-- Iteration: '\0' -- +'\\0' +'\\0' +string(5) "'\\0'" + + +-- Iteration: '\060' -- +'\\060' +'\\060' +string(7) "'\\060'" + + +-- Iteration: "\070" -- +'8' +'8' +string(3) "'8'" + +===DONE===
\ No newline at end of file diff --git a/ext/standard/tests/general_functions/var_export_basic5.phpt b/ext/standard/tests/general_functions/var_export_basic5.phpt new file mode 100644 index 0000000000..96b3f54cc9 --- /dev/null +++ b/ext/standard/tests/general_functions/var_export_basic5.phpt @@ -0,0 +1,277 @@ +--TEST-- +Test var_export() function with valid arrays +--FILE-- +<?php +/* Prototype : mixed var_export(mixed var [, bool return]) + * Description: Outputs or returns a string representation of a variable + * Source code: ext/standard/var.c + * Alias to functions: + */ + + +echo "*** Testing var_export() with valid arrays ***\n"; +// different valid arrays +$valid_arrays = array( + "array()" => array(), + "array(NULL)" => array(NULL), + "array(null)" => array(null), + "array(true)" => array(true), + "array(\"\")" => array(""), + "array('')" => array(''), + "array(array(), array())" => array(array(), array()), + "array(array(1, 2), array('a', 'b'))" => array(array(1, 2), array('a', 'b')), + "array(1 => 'One')" => array(1 => 'One'), + "array(\"test\" => \"is_array\")" => array("test" => "is_array"), + "array(0)" => array(0), + "array(-1)" => array(-1), + "array(10.5, 5.6)" => array(10.5, 5.6), + "array(\"string\", \"test\")" => array("string", "test"), + "array('string', 'test')" => array('string', 'test') +); + +/* Loop to check for above arrays with var_export() */ +echo "\n*** Output for arrays ***\n"; +foreach($valid_arrays as $key => $arr) { + echo "\n--Iteration: $key --\n"; + var_export( $arr ); + echo "\n"; + var_export( $arr, FALSE); + echo "\n"; + var_dump( var_export( $arr, TRUE) ); + echo "\n"; +} +?> +===DONE=== +--EXPECT-- +*** Testing var_export() with valid arrays *** + +*** Output for arrays *** + +--Iteration: array() -- +array ( +) +array ( +) +string(9) "array ( +)" + + +--Iteration: array(NULL) -- +array ( + 0 => NULL, +) +array ( + 0 => NULL, +) +string(22) "array ( + 0 => NULL, +)" + + +--Iteration: array(null) -- +array ( + 0 => NULL, +) +array ( + 0 => NULL, +) +string(22) "array ( + 0 => NULL, +)" + + +--Iteration: array(true) -- +array ( + 0 => true, +) +array ( + 0 => true, +) +string(22) "array ( + 0 => true, +)" + + +--Iteration: array("") -- +array ( + 0 => '', +) +array ( + 0 => '', +) +string(20) "array ( + 0 => '', +)" + + +--Iteration: array('') -- +array ( + 0 => '', +) +array ( + 0 => '', +) +string(20) "array ( + 0 => '', +)" + + +--Iteration: array(array(), array()) -- +array ( + 0 => + array ( + ), + 1 => + array ( + ), +) +array ( + 0 => + array ( + ), + 1 => + array ( + ), +) +string(55) "array ( + 0 => + array ( + ), + 1 => + array ( + ), +)" + + +--Iteration: array(array(1, 2), array('a', 'b')) -- +array ( + 0 => + array ( + 0 => 1, + 1 => 2, + ), + 1 => + array ( + 0 => 'a', + 1 => 'b', + ), +) +array ( + 0 => + array ( + 0 => 1, + 1 => 2, + ), + 1 => + array ( + 0 => 'a', + 1 => 'b', + ), +) +string(107) "array ( + 0 => + array ( + 0 => 1, + 1 => 2, + ), + 1 => + array ( + 0 => 'a', + 1 => 'b', + ), +)" + + +--Iteration: array(1 => 'One') -- +array ( + 1 => 'One', +) +array ( + 1 => 'One', +) +string(23) "array ( + 1 => 'One', +)" + + +--Iteration: array("test" => "is_array") -- +array ( + 'test' => 'is_array', +) +array ( + 'test' => 'is_array', +) +string(33) "array ( + 'test' => 'is_array', +)" + + +--Iteration: array(0) -- +array ( + 0 => 0, +) +array ( + 0 => 0, +) +string(19) "array ( + 0 => 0, +)" + + +--Iteration: array(-1) -- +array ( + 0 => -1, +) +array ( + 0 => -1, +) +string(20) "array ( + 0 => -1, +)" + + +--Iteration: array(10.5, 5.6) -- +array ( + 0 => 10.5, + 1 => 5.6, +) +array ( + 0 => 10.5, + 1 => 5.6, +) +string(34) "array ( + 0 => 10.5, + 1 => 5.6, +)" + + +--Iteration: array("string", "test") -- +array ( + 0 => 'string', + 1 => 'test', +) +array ( + 0 => 'string', + 1 => 'test', +) +string(41) "array ( + 0 => 'string', + 1 => 'test', +)" + + +--Iteration: array('string', 'test') -- +array ( + 0 => 'string', + 1 => 'test', +) +array ( + 0 => 'string', + 1 => 'test', +) +string(41) "array ( + 0 => 'string', + 1 => 'test', +)" + +===DONE===
\ No newline at end of file diff --git a/ext/standard/tests/general_functions/var_export_basic6.phpt b/ext/standard/tests/general_functions/var_export_basic6.phpt new file mode 100644 index 0000000000..8935d0e79d --- /dev/null +++ b/ext/standard/tests/general_functions/var_export_basic6.phpt @@ -0,0 +1,310 @@ +--TEST-- +Test var_export() function with valid objects +--FILE-- +<?php +/* Prototype : mixed var_export(mixed var [, bool return]) + * Description: Outputs or returns a string representation of a variable + * Source code: ext/standard/var.c + * Alias to functions: + */ + +echo "*** Testing var_export() with valid objects ***\n"; + +// class with no members +class foo +{ +// no members +} + +// abstract class +abstract class abstractClass +{ + abstract protected function getClassName(); + public function printClassName () { + echo $this->getClassName() . "\n"; + } +} +// implement abstract class +class concreteClass extends abstractClass +{ + protected function getClassName() { + return "concreteClass"; + } +} + +// interface class +interface iValue +{ + public function setVal ($name, $val); + public function dumpVal (); +} +// implement the interface +class Value implements iValue +{ + private $vars = array (); + + public function setVal ( $name, $val ) { + $this->vars[$name] = $val; + } + + public function dumpVal () { + var_export ( $vars ); + } +} + +// a gereral class +class myClass +{ + var $foo_object; + public $public_var; + public $public_var1; + private $private_var; + protected $protected_var; + + function myClass ( ) { + $this->foo_object = new foo(); + $this->public_var = 10; + $this->public_var1 = new foo(); + $this->private_var = new foo(); + $this->proected_var = new foo(); + } +} + +// create a object of each class defined above +$myClass_object = new myClass(); +$foo_object = new foo(); +$Value_object = new Value(); +$concreteClass_object = new concreteClass(); + +$valid_objects = array( + "new stdclass" => new stdclass, + "new foo" => new foo, + "new concreteClass" => new concreteClass, + "new Value" => new Value, + "new myClass" => new myClass, + "myClass_object" => $myClass_object, + "myClass_object->foo_object" => $myClass_object->foo_object, + "myClass_object->public_var1" => $myClass_object->public_var1, + "foo_object" => $foo_object, + "Value_object" => $Value_object, + "concreteClass_object" => $concreteClass_object + ); +/* Loop to check for above objects with var_export() */ +echo "\n*** Output for objects ***\n"; +foreach($valid_objects as $key => $obj) { + echo "\n-- Iteration: $key --\n"; + var_export( $obj ); + echo "\n"; + var_export( $obj, FALSE); + echo "\n"; + var_dump( var_export( $obj, TRUE) ); + echo "\n"; +} +?> +===DONE=== +--EXPECT-- +*** Testing var_export() with valid objects *** + +*** Output for objects *** + +-- Iteration: new stdclass -- +stdClass::__set_state(array( +)) +stdClass::__set_state(array( +)) +string(31) "stdClass::__set_state(array( +))" + + +-- Iteration: new foo -- +foo::__set_state(array( +)) +foo::__set_state(array( +)) +string(26) "foo::__set_state(array( +))" + + +-- Iteration: new concreteClass -- +concreteClass::__set_state(array( +)) +concreteClass::__set_state(array( +)) +string(36) "concreteClass::__set_state(array( +))" + + +-- Iteration: new Value -- +Value::__set_state(array( + 'vars' => + array ( + ), +)) +Value::__set_state(array( + 'vars' => + array ( + ), +)) +string(57) "Value::__set_state(array( + 'vars' => + array ( + ), +))" + + +-- Iteration: new myClass -- +myClass::__set_state(array( + 'foo_object' => + foo::__set_state(array( + )), + 'public_var' => 10, + 'public_var1' => + foo::__set_state(array( + )), + 'private_var' => + foo::__set_state(array( + )), + 'protected_var' => NULL, + 'proected_var' => + foo::__set_state(array( + )), +)) +myClass::__set_state(array( + 'foo_object' => + foo::__set_state(array( + )), + 'public_var' => 10, + 'public_var1' => + foo::__set_state(array( + )), + 'private_var' => + foo::__set_state(array( + )), + 'protected_var' => NULL, + 'proected_var' => + foo::__set_state(array( + )), +)) +string(293) "myClass::__set_state(array( + 'foo_object' => + foo::__set_state(array( + )), + 'public_var' => 10, + 'public_var1' => + foo::__set_state(array( + )), + 'private_var' => + foo::__set_state(array( + )), + 'protected_var' => NULL, + 'proected_var' => + foo::__set_state(array( + )), +))" + + +-- Iteration: myClass_object -- +myClass::__set_state(array( + 'foo_object' => + foo::__set_state(array( + )), + 'public_var' => 10, + 'public_var1' => + foo::__set_state(array( + )), + 'private_var' => + foo::__set_state(array( + )), + 'protected_var' => NULL, + 'proected_var' => + foo::__set_state(array( + )), +)) +myClass::__set_state(array( + 'foo_object' => + foo::__set_state(array( + )), + 'public_var' => 10, + 'public_var1' => + foo::__set_state(array( + )), + 'private_var' => + foo::__set_state(array( + )), + 'protected_var' => NULL, + 'proected_var' => + foo::__set_state(array( + )), +)) +string(293) "myClass::__set_state(array( + 'foo_object' => + foo::__set_state(array( + )), + 'public_var' => 10, + 'public_var1' => + foo::__set_state(array( + )), + 'private_var' => + foo::__set_state(array( + )), + 'protected_var' => NULL, + 'proected_var' => + foo::__set_state(array( + )), +))" + + +-- Iteration: myClass_object->foo_object -- +foo::__set_state(array( +)) +foo::__set_state(array( +)) +string(26) "foo::__set_state(array( +))" + + +-- Iteration: myClass_object->public_var1 -- +foo::__set_state(array( +)) +foo::__set_state(array( +)) +string(26) "foo::__set_state(array( +))" + + +-- Iteration: foo_object -- +foo::__set_state(array( +)) +foo::__set_state(array( +)) +string(26) "foo::__set_state(array( +))" + + +-- Iteration: Value_object -- +Value::__set_state(array( + 'vars' => + array ( + ), +)) +Value::__set_state(array( + 'vars' => + array ( + ), +)) +string(57) "Value::__set_state(array( + 'vars' => + array ( + ), +))" + + +-- Iteration: concreteClass_object -- +concreteClass::__set_state(array( +)) +concreteClass::__set_state(array( +)) +string(36) "concreteClass::__set_state(array( +))" + +===DONE=== diff --git a/ext/standard/tests/general_functions/var_export_basic7.phpt b/ext/standard/tests/general_functions/var_export_basic7.phpt new file mode 100644 index 0000000000..10dc032900 --- /dev/null +++ b/ext/standard/tests/general_functions/var_export_basic7.phpt @@ -0,0 +1,59 @@ +--TEST-- +Test var_export() function with valid null values +--FILE-- +<?php +/* Prototype : mixed var_export(mixed var [, bool return]) + * Description: Outputs or returns a string representation of a variable + * Source code: ext/standard/var.c + * Alias to functions: + */ + +echo "*** Testing var_export() with valid null values ***\n"; + +// different valid null vlaues +$unset_var = array(); +unset ($unset_var); // now a null +$null_var = NULL; + +$valid_nulls = array( + "NULL" => NULL, + "null" => null, + "null_var" => $null_var, +); + +/* Loop to check for above null values with var_export() */ +echo "\n*** Output for null values ***\n"; +foreach($valid_nulls as $key => $null_value) { + echo "\n-- Iteration: $key --\n"; + var_export( $null_value ); + echo "\n"; + var_export( $null_value, FALSE); + echo "\n"; + var_dump( var_export( $null_value, true) ); + echo "\n"; +} +?> +===DONE=== +--EXPECT-- +*** Testing var_export() with valid null values *** + +*** Output for null values *** + +-- Iteration: NULL -- +NULL +NULL +string(4) "NULL" + + +-- Iteration: null -- +NULL +NULL +string(4) "NULL" + + +-- Iteration: null_var -- +NULL +NULL +string(4) "NULL" + +===DONE=== diff --git a/ext/standard/tests/general_functions/var_export_basic8.phpt b/ext/standard/tests/general_functions/var_export_basic8.phpt new file mode 100644 index 0000000000..6e6263d2ad --- /dev/null +++ b/ext/standard/tests/general_functions/var_export_basic8.phpt @@ -0,0 +1,71 @@ +--TEST-- +var_export(): simple test with arrays and objects +--FILE-- +<?php +/* Prototype : mixed var_export(mixed var [, bool return]) + * Description: Outputs or returns a string representation of a variable + * Source code: ext/standard/var.c + * Alias to functions: + */ + +echo "\n\n-- Var export on a simple object --\n"; +$o1 = new stdclass; +$o1->p = '22'; +$o2 = new stdclass; +$o2->a = 1; +$o2->b = array('k'=>2); +$o2->x = $o1; +var_export($o2); + +echo "\n\n-- Var export on an simple array --\n"; +$a = array(1,2,3,4); +var_export($a); + +echo "\n\n-- Var export on an nested array --\n"; +$a = array('one' => 'first'); +$b = array('foo' => $a, 'bar' => $o2); +var_export($b); + +?> +===DONE=== +--EXPECTF-- +-- Var export on a simple object -- +stdClass::__set_state(array( + 'a' => 1, + 'b' => + array ( + 'k' => 2, + ), + 'x' => + stdClass::__set_state(array( + 'p' => '22', + )), +)) + +-- Var export on an simple array -- +array ( + 0 => 1, + 1 => 2, + 2 => 3, + 3 => 4, +) + +-- Var export on an nested array -- +array ( + 'foo' => + array ( + 'one' => 'first', + ), + 'bar' => + stdClass::__set_state(array( + 'a' => 1, + 'b' => + array ( + 'k' => 2, + ), + 'x' => + stdClass::__set_state(array( + 'p' => '22', + )), + )), +)===DONE=== diff --git a/ext/standard/tests/general_functions/var_export_error1.phpt b/ext/standard/tests/general_functions/var_export_error1.phpt new file mode 100644 index 0000000000..d9c5eee9dc --- /dev/null +++ b/ext/standard/tests/general_functions/var_export_error1.phpt @@ -0,0 +1,38 @@ +--TEST-- +Test var_export() function : error conditions +--FILE-- +<?php +/* Prototype : mixed var_export(mixed var [, bool return]) + * Description: Outputs or returns a string representation of a variable + * Source code: ext/standard/var.c + * Alias to functions: + */ + +echo "*** Testing var_export() : error conditions ***\n"; + +// Zero arguments +echo "\n-- Testing var_export() function with Zero arguments --\n"; +var_dump( var_export() ); + +//Test var_export with one more than the expected number of arguments +echo "\n-- Testing var_export() function with more than expected no. of arguments --\n"; +$var = 1; +$return = true; +$extra_arg = 10; +var_dump( var_export($var, $return, $extra_arg) ); + +?> +===DONE=== +--EXPECTF-- +*** Testing var_export() : error conditions *** + +-- Testing var_export() function with Zero arguments -- + +Warning: var_export() expects at least 1 parameter, 0 given in %s on line 12 +NULL + +-- Testing var_export() function with more than expected no. of arguments -- + +Warning: var_export() expects at most 2 parameters, 3 given in %s on line 19 +NULL +===DONE=== diff --git a/ext/standard/tests/general_functions/var_export_error2.phpt b/ext/standard/tests/general_functions/var_export_error2.phpt new file mode 100644 index 0000000000..93d0dc1646 --- /dev/null +++ b/ext/standard/tests/general_functions/var_export_error2.phpt @@ -0,0 +1,25 @@ +--TEST-- +Test var_export() function : error conditions - recursive object +--FILE-- +<?php +/* Prototype : mixed var_export(mixed var [, bool return]) + * Description: Outputs or returns a string representation of a variable + * Source code: ext/standard/var.c + * Alias to functions: + */ + +@$obj->p =& $obj; +var_export($obj, true); + +?> +===DONE=== +--EXPECTF-- +stdClass::__set_state(array( + 'p' => + stdClass::__set_state(array( + 'p' => + stdClass::__set_state(array( + 'p' => + stdClass::__set_state(array( + +Fatal error: Nesting level too deep - recursive dependency? in %s on line 9
\ No newline at end of file diff --git a/ext/standard/tests/general_functions/var_export_error3.phpt b/ext/standard/tests/general_functions/var_export_error3.phpt new file mode 100644 index 0000000000..4ad5121682 --- /dev/null +++ b/ext/standard/tests/general_functions/var_export_error3.phpt @@ -0,0 +1,27 @@ +--TEST-- +Test var_export() function : error conditions - recursive array +--FILE-- +<?php +/* Prototype : mixed var_export(mixed var [, bool return]) + * Description: Outputs or returns a string representation of a variable + * Source code: ext/standard/var.c + * Alias to functions: + */ + +$a[] =& $a; +var_export($a, true); + +?> +===DONE=== +--EXPECTF-- +array ( + 0 => + array ( + 0 => + array ( + 0 => + array ( + 0 => + array ( + +Fatal error: Nesting level too deep - recursive dependency? in %s on line 9
\ No newline at end of file |