mud/fluffos-2.23-ds03/testsuite/single/tests/efuns/shadow.c
2020-09-06 05:43:07 -07:00

39 lines
749 B
C

object prev;
void create() {
prev = previous_object();
}
nomask void i_am_bad() {
}
void do_tests() {
object ob;
#ifndef __NO_SHADOWS__
ASSERT(catch(shadow(this_object())));
ASSERT(catch(shadow(master())));
new(__DIR__ "badshad", 1);
ASSERT(shadow(this_object(), 0) == 0);
ASSERT((object)this_object()->foo() == this_object());
ob = new(__DIR__ "goodshad", 1);
ASSERT(shadow(this_object(), 0) == ob);
ASSERT((object)this_object()->foo() == ob);
ASSERT((object)new(__FILE__)->bar() == ob);
ASSERT(catch(shadow(ob)));
ASSERT(catch(shadow(new(__FILE__))));
#endif
}
object foo() {
printf("%O\n", file_name());
return this_object();
}
object bar() {
return (object)prev->foo();
}