v22.2b14/
v22.2b14/Win32/
v22.2b14/compat/
v22.2b14/testsuite/
v22.2b14/testsuite/clone/
v22.2b14/testsuite/command/
v22.2b14/testsuite/data/
v22.2b14/testsuite/etc/
v22.2b14/testsuite/include/
v22.2b14/testsuite/inherit/
v22.2b14/testsuite/inherit/master/
v22.2b14/testsuite/log/
v22.2b14/testsuite/single/
v22.2b14/testsuite/single/tests/compiler/
v22.2b14/testsuite/single/tests/efuns/
v22.2b14/testsuite/single/tests/operators/
v22.2b14/testsuite/u/
v22.2b14/tmp/
#ifndef __NO_ENVIRONMENT__
string err = 0;
string yes = 0;

#define YES(x) ASSERT2((talker->send(x), yes == x), x); ASSERT2((talker->send("no:" + x, this_object()), !err), err); ASSERT2((talker->send("no:" + x, ({ this_object() })), !err), err)
#define NO(x) ASSERT2((talker->send(x), !err), err)

void catch_tell(string str) {
    if (str[0..2] != "yes")
	err = str;
    else
	yes = str;
}

void do_tests() {
    object tp;
    object talker = new(__DIR__ "talker");
    
#ifndef __NO_ADD_ACTION__
    SAVETP;
    enable_commands();
    RESTORETP;
#endif
    NO("no-noenv");
    talker->move(this_object());
    
    YES("yes-inside");
    talker->move(new("/single/void"));
    move_object(talker);
    YES("yes-outside");
}
#endif