polserver/testsuite/pol/testpkgs/debugger/test_debugger.src
Kevin Eady 3ccf701ce9
Format testsuite scripts, pol-core support modules (#713)
* Format escript testsuite

* Manual formatting for escript testsuite
- Add format-off to places where formatter does what it should, but we don't like the results
- Manually change places where formatter outputs weird things _without_ format-off, so next format-all would show changes if not fixed

* Update .err files; add update_err.py helper script

Use the format `:line:col: message` for all .err file checks. This
allows us to change the file names without needing to edit the .err
contents.

Note that `in/inc0{1,2}.err` need have error messages between POSIX and
Windows, so their messages are a bit more "generic" than the other errs.

* Format pol testsuite

* Manual formatting for pol testsuite

* Format pol-core modules

* Manual formatting for pol-core modules

* Additional format pol-core modules

Use FormatterLineWidth=10000 since module functions must be on one line
because of the parse_modules target

* Address Discord comments

- Support multi-line module function declarations in parse_modules

* Format on df07831
2024-10-04 10:29:55 +02:00

54 lines
1.4 KiB
Text

include "testutil";
use os;
const TIMEOUT := 2 * 60; // 2 minutes
program test_debugger()
return 1;
endprogram
exported function test_debugger_attach()
var debuggee := start_script( "debuggee", 1 );
if ( !debuggee )
return ret_error( $"Could not start debuggee: {debuggee}" );
endif
print( $"Started debuggee {debuggee.pid}" );
var params := struct{ debuggee_pid := debuggee.pid, test_type := "attach",
test_script_pid := GetPid() };
var test_result := start_debugger_client( params );
debuggee.kill();
return test_result;
endfunction
exported function test_debugger_launch()
var params := struct{ test_type := "launch", test_script_pid := GetPid() };
var test_result := start_debugger_client( params );
return test_result;
endfunction
function start_debugger_client( params )
var conn := OpenConnection( "127.0.0.1", 5002, "debugger_client", params := params,
assume_string := 1, keep_connection := 1, ignore_line_breaks := 1 );
if ( !conn )
return ret_error( $"Could not create debugger connection: {conn}" );
endif
var ev;
if ( ev := os::wait_for_event( TIMEOUT ) )
if ( ev.result == 1 )
GetProcess( conn.pid ).kill();
return 1;
endif
GetProcess( conn.pid ).kill();
return ev.result;
endif
GetProcess( conn.pid ).kill();
return ret_error( $"Test timed out after {TIMEOUT} seconds" );
endfunction