diff options
Diffstat (limited to 'gr-howto-write-a-block/swig')
-rw-r--r-- | gr-howto-write-a-block/swig/Makefile.am | 9 | ||||
-rw-r--r-- | gr-howto-write-a-block/swig/howto.test | 69 | ||||
-rw-r--r-- | gr-howto-write-a-block/swig/run_guile_tests.in | 14 |
3 files changed, 92 insertions, 0 deletions
diff --git a/gr-howto-write-a-block/swig/Makefile.am b/gr-howto-write-a-block/swig/Makefile.am index 87134af93f..a7d39444e7 100644 --- a/gr-howto-write-a-block/swig/Makefile.am +++ b/gr-howto-write-a-block/swig/Makefile.am @@ -43,3 +43,12 @@ howto_swiginclude_headers = \ howto_square2_ff.i EXTRA_DIST = $(howto_swiginclude_headers) + + +if GUILE +TESTS = run_guile_tests +EXTRA_DIST += $(nobase_guile_DATA) + +nobase_guile_DATA = \ + gnuradio/howto.scm +endif diff --git a/gr-howto-write-a-block/swig/howto.test b/gr-howto-write-a-block/swig/howto.test new file mode 100644 index 0000000000..ffe7251cd8 --- /dev/null +++ b/gr-howto-write-a-block/swig/howto.test @@ -0,0 +1,69 @@ +;;; -*- Scheme -*- +;;; +;;; Copyright 2010 Free Software Foundation, Inc. +;;; +;;; This file is part of GNU Radio +;;; +;;; GNU Radio is free software; you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3, or (at your option) +;;; any later version. +;;; +;;; GNU Radio is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program. If not, see <http://www.gnu.org/licenses/>. +;;; + +;;; If you're using Emacs's Scheme mode: +;;; (put 'with-test-prefix 'scheme-indent-function 1) + +;;; See the comments in gnuradio/test-suite/lib.scm for info on writing tests. +;;; See also the very end of the file, where the test-equal, test-eqv +;;; and test-eq macros are defined. + +(define-module (test-module) + #:use-module (oop goops) + #:use-module (gnuradio core) + #:use-module (gnuradio test-suite lib) + #:duplicates (merge-generics replace check)) + + +;; Use our module +(use-modules (gnuradio howto)) + + +(define (vector-map f v) + (list->vector (map f (vector->list v)))) + + +(with-test-prefix "square-ff" + (let* ((src-data #(-3. 4. -5.5 2. 3.)) + (expected-result (vector-map (lambda (x) (* x x)) src-data)) + (tb (gr:top-block-swig "QA top block")) + (src (gr:vector-source-f src-data #f)) + (op (gr:howto-square-ff)) + (dst (gr:vector-sink-f))) + + (gr:connect tb src op dst) + + (gr:run tb) + (test-equal expected-result (gr:data dst)))) + + +(with-test-prefix "square2-ff" + (let* ((src-data #(-3. 4. -5.5 2. 3.)) + (expected-result (vector-map (lambda (x) (* x x)) src-data)) + (tb (gr:top-block-swig "QA top block")) + (src (gr:vector-source-f src-data #f)) + (op (gr:howto-square2-ff)) + (dst (gr:vector-sink-f))) + + (gr:connect tb src op dst) + + (gr:run tb) + (test-equal expected-result (gr:data dst)))) + diff --git a/gr-howto-write-a-block/swig/run_guile_tests.in b/gr-howto-write-a-block/swig/run_guile_tests.in new file mode 100644 index 0000000000..5d08b0dd53 --- /dev/null +++ b/gr-howto-write-a-block/swig/run_guile_tests.in @@ -0,0 +1,14 @@ +#!/bin/sh + +. @top_builddir@/setup_guile_test_env + +# 1st argument is absolute path to hand coded guile source directory +# 2nd argument is absolute path to component C++ shared library build directory +# 3nd argument is absolute path to component SWIG build directory + +add_local_paths \ + @srcdir@ \ + @abs_builddir@ \ + @abs_builddir@ + +@GUILE@ -e main -c '(use-modules (gnuradio test-suite guile-test))' -t @srcdir@ |