From b81bea845da0ad44a419aa655d549e7be17e8ed9 Mon Sep 17 00:00:00 2001 From: Christian Prochaska Date: Mon, 16 Apr 2012 14:31:39 +0200 Subject: [PATCH] GDB monitor target configuration test --- ports/run/gdb_monitor_target_config.run | 113 ++++++++++++++++++ .../test/gdb_monitor_target_config/main.cc | 34 ++++++ .../test/gdb_monitor_target_config/target.mk | 3 + 3 files changed, 150 insertions(+) create mode 100644 ports/run/gdb_monitor_target_config.run create mode 100644 ports/src/test/gdb_monitor_target_config/main.cc create mode 100644 ports/src/test/gdb_monitor_target_config/target.mk diff --git a/ports/run/gdb_monitor_target_config.run b/ports/run/gdb_monitor_target_config.run new file mode 100644 index 000000000..9dee06d98 --- /dev/null +++ b/ports/run/gdb_monitor_target_config.run @@ -0,0 +1,113 @@ +# +# \brief Test for providing a config file to the target +# \author Christian Prochaska +# \date 2012-04-16 +# + +# +# Build +# + +build { + core init + drivers/timer drivers/uart + app/gdb_monitor + test/gdb_monitor_target_config +} + +create_boot_directory + +# +# Generate config +# + +set config { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} + +install_config $config + +# +# Boot modules +# + +# generic modules +set boot_modules { + core init timer + ld.lib.so libc.lib.so libc_log.lib.so libc_lock_pipe.lib.so libc_terminal.lib.so + uart_drv + gdb_monitor test-gdb_monitor_target_config +} + +build_boot_image $boot_modules + +# +# Execute test case +# +# +set local_port 5555 + +# qemu config +append qemu_args " -m 128 -nographic " + +# connect comport 0 to stdio +append qemu_args " -serial mon:stdio " + +# connect comport 1 with TCP port $local_port +append qemu_args " -serial chardev:uart " +append qemu_args " -chardev socket,id=uart,port=$local_port,host=localhost,server,nowait " + +run_genode_until {.*Remote debugging using /dev/terminal.*} 30 + +puts "GDB monitor is up, starting GDB in a new terminal" + +# sequence of GDB commands to execute at startup +set gdb_cmds "" +append gdb_cmds "-ex \"target remote localhost:$local_port\" " + +# continue execution +append gdb_cmds {-ex "c" } + +exec [terminal] -e "[gdb] bin/test-gdb_monitor_target_config $gdb_cmds" & + +interact + +# vi: set ft=tcl : diff --git a/ports/src/test/gdb_monitor_target_config/main.cc b/ports/src/test/gdb_monitor_target_config/main.cc new file mode 100644 index 000000000..43d4bfa06 --- /dev/null +++ b/ports/src/test/gdb_monitor_target_config/main.cc @@ -0,0 +1,34 @@ +/* + * \brief GDB Monitor target config test + * \author Christian Prochaska + * \date 2012-04-16 + */ + +/* + * Copyright (C) 2012 Genode Labs GmbH + * + * This file is part of the Genode OS framework, which is distributed + * under the terms of the GNU General Public License version 2. + */ + +/* Genode includes */ +#include + +using namespace Genode; + +int main(void) +{ + try { + config()->xml_node().sub_node("test_config_subnode"); + } catch(Config::Invalid) { + PERR("Error: Missing '' node."); + return -1; + } catch (Xml_node::Nonexistent_sub_node) { + PERR("Error: Missing '' sub node."); + return -1; + } + + printf("Test succeeded\n"); + + return 0; +} diff --git a/ports/src/test/gdb_monitor_target_config/target.mk b/ports/src/test/gdb_monitor_target_config/target.mk new file mode 100644 index 000000000..d5b086991 --- /dev/null +++ b/ports/src/test/gdb_monitor_target_config/target.mk @@ -0,0 +1,3 @@ +TARGET = test-gdb_monitor_target_config +SRC_CC = main.cc +LIBS = env