factor/extra/destructors/destructors-tests.factor

51 lines
1002 B
Factor
Raw Normal View History

2007-10-06 13:37:11 -04:00
USING: destructors kernel tools.test continuations ;
2008-03-01 17:00:45 -05:00
IN: destructors.tests
2007-09-20 18:09:08 -04:00
TUPLE: dummy-obj destroyed? ;
: <dummy-obj> dummy-obj new ;
TUPLE: dummy-destructor obj ;
C: <dummy-destructor> dummy-destructor
2008-03-05 22:38:15 -05:00
M: dummy-destructor dispose ( obj -- )
dummy-destructor-obj t swap set-dummy-obj-destroyed? ;
2007-09-20 18:09:08 -04:00
: destroy-always
<dummy-destructor> add-always-destructor ;
: destroy-later
<dummy-destructor> add-error-destructor ;
2007-09-20 18:09:08 -04:00
[ t ] [
[
<dummy-obj> dup destroy-always
2007-09-20 18:09:08 -04:00
] with-destructors dummy-obj-destroyed?
] unit-test
[ f ] [
[
<dummy-obj> dup destroy-later
2007-09-20 18:09:08 -04:00
] with-destructors dummy-obj-destroyed?
] unit-test
[ t ] [
<dummy-obj> [
[
dup destroy-always
2007-09-20 18:09:08 -04:00
"foo" throw
] with-destructors
] ignore-errors dummy-obj-destroyed?
2007-09-20 18:09:08 -04:00
] unit-test
[ t ] [
<dummy-obj> [
[
dup destroy-later
2007-09-20 18:09:08 -04:00
"foo" throw
] with-destructors
] ignore-errors dummy-obj-destroyed?
2007-09-20 18:09:08 -04:00
] unit-test