running tests without waiting for "more"?

Hi. A quickie: is there a simple way of running tests without waiting for me to press a key for “more”? I’m doing a “test walkthru” and a “test wip” which are rather lengthy.

I seem to remember cleaning the screen did this, but I would rather have the output there so I can scroll back.

Edit: also I am getting intermittent “[ The Zoom interpreter has quit unexpectedly ]” crashes when I’m running test scripts which run other test scripts. Is this not a good thing to do? Edit 2: these zoom errors go away if I turn it into a Glulx project.

How about something like this?

[spoiler][code]“Test”

Include Basic Screen Effects by Emily Short.

Include (-

#Iftrue ({-value:NUMBER_CREATED(test_scenario)} > 0);

[ TestScriptSub;
switch(special_word) {
{-call:Plugins::Parsing::TestScripts::compile_switch}
default:
print “>–> The following tests are available:^”;
{-call:Plugins::Parsing::TestScripts::compile_printout}
}
];

#ifdef TARGET_GLULX;
Constant TEST_STACK_SIZE = 128;
#ifnot;
Constant TEST_STACK_SIZE = 48;
#endif;

Array test_stack --> TEST_STACK_SIZE;
Global test_sp = 0;
[ TestStart T R l k;
if (test_sp >= TEST_STACK_SIZE) “>–> Testing too many levels deep”;
test_stack–>test_sp = T;
test_stack–>(test_sp+1) = 0;
test_stack–>(test_sp+3) = l;
test_sp = test_sp + 4;
if ((R–>0) && (R–>0 ~= real_location)) {
print "(first moving to ", (name) R–>0, “)^”;
PlayerTo(R–>0, 1);
}
k=1;
while (R–>k) {
if (R–>k notin player) {
print "(first acquiring ", (the) R–>k, “)^”;
move R–>k to player;
}
k++;
}
print “(Testing.)^”; say__p = 1;
];
[ TestKeyboardPrimitive a_buffer a_table p i j l spaced ch;
if (test_sp == 0) {
test_stack–>2 = 1;
(+ testing mode +) = false;
return VM_ReadKeyboard(a_buffer, a_table);
}
else {
p = test_stack–>(test_sp-4);
i = test_stack–>(test_sp-3);
l = test_stack–>(test_sp-1);
(+ testing mode +) = true;
print “[”;
print test_stack–>2;
print "] ";
test_stack–>2 = test_stack–>2 + 1;
style bold;
while ((i < l) && (p->i ~= ‘/’)) {
ch = p->i;
if (spaced || (ch ~= ’ ')) {
if ((p->i == ‘[’) && (p->(i+1) == ‘/’) && (p->(i+2) == ‘]’)) {
ch = ‘/’; i = i+2;
}
a_buffer->(j+WORDSIZE) = ch;
print (char) ch;
i++; j++;
spaced = true;
} else i++;
}
style roman;
print “^”;
#ifdef TARGET_ZCODE;
a_buffer->1 = j;
#ifnot; ! TARGET_GLULX
a_buffer–>0 = j;
#endif;
VM_Tokenise(a_buffer, a_table);
if (p->i == ‘/’) i++;
if (i >= l) {
test_sp = test_sp - 4;
} else test_stack–>(test_sp-3) = i;
}
];

#IFNOT;

[ TestScriptSub;
“>–> No test scripts exist for this game.”;
];

#ENDIF;

-) instead of “Test Command” in “Tests.i6t”.

To pause the/-- game:
say “[paragraph break]Please press SPACE to continue.”;
if testing mode is false, wait for the SPACE key;
clear the screen.

Testing mode is a truth state that varies. Testing mode is false.

After waiting (this is the pause game waiting rule):
say “You wait a waitly wait!”;
pause the game.

The Testing Room is A Room.

Test me with “wait / jump”.[/code][/spoiler]

You can see the difference by typing the commands into the command prompt and then using the “test me” command.

Hope this helps.

Wow, some I6 to the rescue. That stuff is pretty cryptic if you don’t know the lingo. Maybe even if you do.

Anyway, my issue was with long scripts that generate a lot of output, like this:

the vase is a thing in the Testing Room. The description is "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";

Test me with "x vase / g / g / g / g / jump".

If your window is small enough it fills up and a little blue “more” appears in the lower right corner. I’m on a mac, if that matters.