/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/test-suite/php/exception_memory_leak_runme.php
35 строк
1 KB
Olly Betts
[php] Update exception_memory_leak_runme.php
14 окт 2022, 04:44
14 окт 2022, 04:44
fefb231
Код
Авторство
О чём код?
<?php require "tests.php"; check::functions(array('trigger_internal_swig_exception')); check::classes(array('Foo', 'exception_memory_leak')); // No new vars check::globals(array()); $a = new Foo(); check::equal(Foo::get_count(), 1, "Should have 1 Foo objects"); $b = new Foo(); check::equal(Foo::get_count(), 2, "Should have 2 Foo objects"); // Normal behaviour trigger_internal_swig_exception("no problem", $a); check::equal(Foo::get_count(), 2, "Should have 2 Foo objects"); check::equal(Foo::get_freearg_count(), 1, "freearg should have been used once"); // SWIG exception triggered and handled (return new object case). try { trigger_internal_swig_exception("null", $b); check::fail("Expected exception not thrown"); } catch (Exception $e) { } check::equal(Foo::get_count(), 2, "Should have 2 Foo objects"); check::equal(Foo::get_freearg_count(), 2, "freearg should have been used twice"); // SWIG exception triggered and handled (return by value case). try { trigger_internal_swig_exception("null"); check::fail("Expected exception not thrown"); } catch (Exception $e) { } check::equal(Foo::get_count(), 2, "Should have 2 Foo objects");