From cc52373c1002b9e99d590c7bba89ceadb15cc32c Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Mon, 3 Mar 2003 11:18:59 +0000 Subject: [PATCH] Adding tests for ctor/dtor handling --- tests/classes/ctor_dtor.phpt | 48 ++++++++++++ tests/classes/ctor_dtor_inheritance.phpt | 99 ++++++++++++++++++++++++ 2 files changed, 147 insertions(+) create mode 100644 tests/classes/ctor_dtor.phpt create mode 100644 tests/classes/ctor_dtor_inheritance.phpt diff --git a/tests/classes/ctor_dtor.phpt b/tests/classes/ctor_dtor.phpt new file mode 100644 index 0000000000..e265b0fcba --- /dev/null +++ b/tests/classes/ctor_dtor.phpt @@ -0,0 +1,48 @@ +--TEST-- +The new constructor/destructor is called +--SKIPIF-- + +--FILE-- +early(); +unset($t); +$t = new late(); +$t->late(); +//unset($t); delay to end of script + +echo "Done\n"; +?> +--EXPECTF-- +early::__construct +early::early +early::__destruct +late::__construct +late::late +Done +late::__destruct diff --git a/tests/classes/ctor_dtor_inheritance.phpt b/tests/classes/ctor_dtor_inheritance.phpt new file mode 100644 index 0000000000..1937b85164 --- /dev/null +++ b/tests/classes/ctor_dtor_inheritance.phpt @@ -0,0 +1,99 @@ +--TEST-- +A derived class can use the inherited constructor/destructor +--SKIPIF-- + +--FILE-- +name = 'base'; + print_r($this); + } + + function __destruct() { + echo __CLASS__ . "::" . __FUNCTION__ . "\n"; + print_r($this); + } +} + +class derived extends base { + public $other; + + function __construct() { + $this->name = 'init'; + $this->other = 'other'; + print_r($this); + parent::__construct(); + echo __CLASS__ . "::" . __FUNCTION__ . "\n"; + $this->name = 'derived'; + print_r($this); + } + + function __destruct() { + parent::__destruct(); + echo __CLASS__ . "::" . __FUNCTION__ . "\n"; + print_r($this); + } +} + +echo "Testing class base\n"; +$t = new base(); +unset($t); +echo "Testing class derived\n"; +$t = new derived(); +unset($t); + +echo "Done\n"; +?> +--EXPECTF-- +Testing class base +base::__construct +base Object +( + [name] => base +) +base::__destruct +base Object +( + [name] => base +) +Testing class derived +derived Object +( + [other] => other + [name] => init +) +base::__construct +derived Object +( + [other] => other + [name] => base +) +derived::__construct +derived Object +( + [other] => other + [name] => derived +) +base::__destruct +derived Object +( + [other] => other + [name] => derived +) +derived::__destruct +derived Object +( + [other] => other + [name] => derived +) +Done -- 2.50.1