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/
int flag;

int action() {
    flag = 1;
    return 1;
}

void do_tests() {
#ifndef __NO_ADD_ACTION__
    object save_tp = this_player();
    mixed *comms;
    
    flag = 0;
    enable_commands();
    add_action( (: action :), "foo");
    comms = commands();
    disable_commands();
    if (save_tp)
	evaluate(bind( (: enable_commands :), save_tp));
    
    ASSERT(command("foo"));
    ASSERT(sizeof(comms) == 1);
    ASSERT(comms[0][0] == "foo");
    ASSERT(comms[0][2] == this_object());
    ASSERT(comms[0][3] == "<function>");
    ASSERT(flag);
    destruct(this_object());
#endif
}