summaryrefslogtreecommitdiff
path: root/gnuradio-core
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-core')
-rw-r--r--gnuradio-core/src/guile/tests/00_runtime_basics.test26
1 files changed, 26 insertions, 0 deletions
diff --git a/gnuradio-core/src/guile/tests/00_runtime_basics.test b/gnuradio-core/src/guile/tests/00_runtime_basics.test
index 93dcff4d7..15bf9cb3f 100644
--- a/gnuradio-core/src/guile/tests/00_runtime_basics.test
+++ b/gnuradio-core/src/guile/tests/00_runtime_basics.test
@@ -108,6 +108,32 @@
(gr:connect tb src op (gr:ep dst 1)))
))
+#!
+;;; FIXME currently triggers core dump.
+;;; The problem is that swig isn't paying attention to
+;;; this throw declaration:
+;;;
+;;; gr_top_block.i:
+;;; void start() throw (std::runtime_error);
+;;;
+(with-test-prefix "gr_top_block::start throw"
+ (let* ((src-data #(-5 -4 -3 -2 -1 0 1 2 3 4 5))
+ (expected-result (vector-map (lambda (x) (* x 2)) src-data))
+ (tb (gr:top-block-swig "QA top block"))
+ (src (gr:vector-source-i src-data #f))
+ (op (gr:multiply-const-ii 2))
+ (dst (gr:vector-sink-i)))
+
+ ;; We deliberately don't connect op's output
+ (gr:connect tb src op)
+
+ ;; Which should lead to an exception here...
+ ;; but currently triggers a core dump.
+ (pass-if-throw "throws std::runtime_error" #t
+ (gr:run tb))
+ ))
+!#
+
(with-test-prefix "io-signature-1"
(let ((ios1 (gr:io-signature 1 2 8))
(ios2 (gr:io-signature2 1 2 16 32))