|  | @@ -112,6 +112,7 @@ const
 | 
	
		
			
				|  |  |    rquote : string = '''';
 | 
	
		
			
				|  |  |    UseTimeout : boolean = false;
 | 
	
		
			
				|  |  |    emulatorname : string = '';
 | 
	
		
			
				|  |  | +  EmulatorOpts : string = '';
 | 
	
		
			
				|  |  |    TargetCanCompileLibraries : boolean = true;
 | 
	
		
			
				|  |  |    UniqueSuffix: string = '';
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1314,7 +1315,7 @@ begin
 | 
	
		
			
				|  |  |        { Add -Ssource_file_name for dosbox_wrapper }
 | 
	
		
			
				|  |  |        if pos('dosbox_wrapper',EmulatorName)>0 then
 | 
	
		
			
				|  |  |          s:=s+' -S'+PPFile[current];
 | 
	
		
			
				|  |  | -      execres:=ExecuteEmulated(EmulatorName,s,FullExeLogFile,StartTicks,EndTicks);
 | 
	
		
			
				|  |  | +      execres:=ExecuteEmulated(EmulatorName,EmulatorOpts+' '+s,FullExeLogFile,StartTicks,EndTicks);
 | 
	
		
			
				|  |  |        {$I-}
 | 
	
		
			
				|  |  |         ChDir(OldDir);
 | 
	
		
			
				|  |  |        {$I+}
 | 
	
	
		
			
				|  | @@ -1543,30 +1544,31 @@ procedure getargs;
 | 
	
		
			
				|  |  |      writeln('dotest [Options] <File>');
 | 
	
		
			
				|  |  |      writeln;
 | 
	
		
			
				|  |  |      writeln('Options can be:');
 | 
	
		
			
				|  |  | -    writeln('  !ENV_NAME     parse environment variable ENV_NAME for options');
 | 
	
		
			
				|  |  | -    writeln('  -A            include ALL tests');
 | 
	
		
			
				|  |  | -    writeln('  -ADB          use ADB to run tests');
 | 
	
		
			
				|  |  | -    writeln('  -B            delete executable before remote upload');
 | 
	
		
			
				|  |  | -    writeln('  -C<compiler>  set compiler to use');
 | 
	
		
			
				|  |  | -    writeln('  -D            display execution time');
 | 
	
		
			
				|  |  | -    writeln('  -E            execute test also');
 | 
	
		
			
				|  |  | -    writeln('  -G            include graph tests');
 | 
	
		
			
				|  |  | -    writeln('  -I            include interactive tests');
 | 
	
		
			
				|  |  | -    writeln('  -K            include known bug tests');
 | 
	
		
			
				|  |  | -    writeln('  -L<ext>       set extension of temporary files (prevent conflicts with parallel invocations)');
 | 
	
		
			
				|  |  | -    writeln('  -M<emulator>  run the tests using the given emulator');
 | 
	
		
			
				|  |  | -    writeln('  -O            use timeout wrapper for (remote) execution');
 | 
	
		
			
				|  |  | -    writeln('  -P<path>      path to the tests tree on the remote machine');
 | 
	
		
			
				|  |  | -    writeln('  -R<remote>    run the tests remotely with the given rsh/ssh address');
 | 
	
		
			
				|  |  | -    writeln('  -S            use ssh instead of rsh');
 | 
	
		
			
				|  |  | -    writeln('  -T[cpu-]<os>  run tests for target cpu and os');
 | 
	
		
			
				|  |  | +    writeln('  !ENV_NAME           parse environment variable ENV_NAME for options');
 | 
	
		
			
				|  |  | +    writeln('  -A                  include ALL tests');
 | 
	
		
			
				|  |  | +    writeln('  -ADB                use ADB to run tests');
 | 
	
		
			
				|  |  | +    writeln('  -B                  delete executable before remote upload');
 | 
	
		
			
				|  |  | +    writeln('  -C<compiler>        set compiler to use');
 | 
	
		
			
				|  |  | +    writeln('  -D                  display execution time');
 | 
	
		
			
				|  |  | +    writeln('  -E                  execute test also');
 | 
	
		
			
				|  |  | +    writeln('  -G                  include graph tests');
 | 
	
		
			
				|  |  | +    writeln('  -I                  include interactive tests');
 | 
	
		
			
				|  |  | +    writeln('  -K                  include known bug tests');
 | 
	
		
			
				|  |  | +    writeln('  -L<ext>             set extension of temporary files (prevent conflicts with parallel invocations)');
 | 
	
		
			
				|  |  | +    writeln('  -M<emulator>        run the tests using the given emulator');
 | 
	
		
			
				|  |  | +    writeln('  -N<emulator opts.>  pass options to the emulator');
 | 
	
		
			
				|  |  | +    writeln('  -O                  use timeout wrapper for (remote) execution');
 | 
	
		
			
				|  |  | +    writeln('  -P<path>            path to the tests tree on the remote machine');
 | 
	
		
			
				|  |  | +    writeln('  -R<remote>          run the tests remotely with the given rsh/ssh address');
 | 
	
		
			
				|  |  | +    writeln('  -S                  use ssh instead of rsh');
 | 
	
		
			
				|  |  | +    writeln('  -T[cpu-]<os>        run tests for target cpu and os');
 | 
	
		
			
				|  |  |      writeln('  -U<remotepara>');
 | 
	
		
			
				|  |  | -    writeln('                pass additional parameter to remote program. Multiple -U can be used');
 | 
	
		
			
				|  |  | -    writeln('  -V            be verbose');
 | 
	
		
			
				|  |  | -    writeln('  -W            use putty compatible file names when testing (plink and pscp)');
 | 
	
		
			
				|  |  | -    writeln('  -X            don''t use COMSPEC');
 | 
	
		
			
				|  |  | -    writeln('  -Y<opts>      extra options passed to the compiler. Several -Y<opt> can be given.');
 | 
	
		
			
				|  |  | -    writeln('  -Z            remove temporary files (executable,ppu,o)');
 | 
	
		
			
				|  |  | +    writeln('                      pass additional parameter to remote program. Multiple -U can be used');
 | 
	
		
			
				|  |  | +    writeln('  -V                  be verbose');
 | 
	
		
			
				|  |  | +    writeln('  -W                  use putty compatible file names when testing (plink and pscp)');
 | 
	
		
			
				|  |  | +    writeln('  -X                  don''t use COMSPEC');
 | 
	
		
			
				|  |  | +    writeln('  -Y<opts>            extra options passed to the compiler. Several -Y<opt> can be given.');
 | 
	
		
			
				|  |  | +    writeln('  -Z                  remove temporary files (executable,ppu,o)');
 | 
	
		
			
				|  |  |      halt(1);
 | 
	
		
			
				|  |  |    end;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1630,6 +1632,8 @@ procedure getargs;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |       'M' : EmulatorName:=Para;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +     'N' : EmulatorOpts:=Para;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |       'O' : UseTimeout:=true;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |       'P' : RemotePath:=Para;
 |