bug33389.phpt   [plain text]


--TEST--
Reflection Bug #33389 (double free() when exporting a ReflectionClass)
--SKIPIF--
<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
define ('foobar', 1);
class Test {
    function foo1($arg=foobar) {
    }
    function foo2($arg=null) {
    }
    function foo3($arg=false) {
    }
    function foo4($arg='foo') {
    }
    function foo5($arg=1) {
    }
    function bar($arg) {
    }
    function foo() {
    }
}
Reflection::export(new ReflectionClass('Test'));
?>
===DONE===
<?php exit(0); ?>
--EXPECTF--
Class [ <user> class Test ] {
  @@ %sbug33389.php 3-18

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [7] {
    Method [ <user> public method foo1 ] {
      @@ %sbug33389.php 4 - 5

      - Parameters [1] {
        Parameter #0 [ <optional> $arg = 1 ]
      }
    }

    Method [ <user> public method foo2 ] {
      @@ %sbug33389.php 6 - 7

      - Parameters [1] {
        Parameter #0 [ <optional> $arg = NULL ]
      }
    }

    Method [ <user> public method foo3 ] {
      @@ %sbug33389.php 8 - 9

      - Parameters [1] {
        Parameter #0 [ <optional> $arg = false ]
      }
    }

    Method [ <user> public method foo4 ] {
      @@ %sbug33389.php 10 - 11

      - Parameters [1] {
        Parameter #0 [ <optional> $arg = 'foo' ]
      }
    }

    Method [ <user> public method foo5 ] {
      @@ %sbug33389.php 12 - 13

      - Parameters [1] {
        Parameter #0 [ <optional> $arg = 1 ]
      }
    }

    Method [ <user> public method bar ] {
      @@ %sbug33389.php 14 - 15

      - Parameters [1] {
        Parameter #0 [ <required> $arg ]
      }
    }

    Method [ <user> public method foo ] {
      @@ %sbug33389.php 16 - 17
    }
  }
}

===DONE===