aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--smoketest.gdbinit15
-rwxr-xr-xsmoketest.sh16
2 files changed, 31 insertions, 0 deletions
diff --git a/smoketest.gdbinit b/smoketest.gdbinit
new file mode 100644
index 0000000..8560b5a
--- /dev/null
+++ b/smoketest.gdbinit
@@ -0,0 +1,15 @@
+set pagination off
+symbol-file gdbstub.elf
+target remote 127.0.0.1:1234
+b simple_loop
+c
+
+# Step twice and check value of `x` variable
+s 2
+if x == 0xdeadbeef
+ printf "PASS\n"
+ quit 0
+else
+ printf "FAIL\n"
+ quit 1
+end
diff --git a/smoketest.sh b/smoketest.sh
new file mode 100755
index 0000000..6a46438
--- /dev/null
+++ b/smoketest.sh
@@ -0,0 +1,16 @@
+#!/bin/bash -x
+echo "Launching QEMU"
+qemu-system-i386 \
+ -serial tcp:127.0.0.1:1234,server \
+ -display none \
+ -kernel gdbstub.bin &
+sleep 1
+
+echo "Running GDB"
+gdb --command smoketest.gdbinit
+RESULT=$?
+
+echo "Terminating QEMU"
+killall qemu-system-i386
+
+exit $RESULT