2
2
;; Guile modules (namespaces) but simply put all the bindings into the
3
3
;; current module. That's enough for such a simple test.
4
4
(dynamic-call "scm_init_overload_simple_module" (dynamic-link "./liboverload_simple.so"))
6
(if (not (string=? (foo 3) "foo:int"))
9
(if (not (string=? (foo 3.01) "foo:double"))
10
(error "foo(double)"))
12
(if (not (string=? (foo "hello") "foo:char *"))
13
(error "foo(char *)"))
18
(if (not (string=? (foo f) "foo:Foo *"))
20
(if (not (string=? (foo b) "foo:Bar *"))
22
;; Test member functions
23
(if (not (string=? (Spam-foo s 3) "foo:int"))
24
(error "Spam::foo(int)"))
25
(if (not (string=? (Spam-foo s 3.01) "foo:double"))
26
(error "Spam::foo(double)"))
27
(if (not (string=? (Spam-foo s "hello") "foo:char *"))
28
(error "Spam::foo(char *)"))
29
(if (not (string=? (Spam-foo s f) "foo:Foo *"))
30
(error "Spam::foo(Foo *)"))
31
(if (not (string=? (Spam-foo s b) "foo:Bar *"))
32
(error "Spam::foo(Bar *)"))
33
;; Test static member functions
34
(if (not (string=? (Spam-bar 3) "bar:int"))
35
(error "Spam::bar(int)"))
36
(if (not (string=? (Spam-bar 3.01) "bar:double"))
37
(error "Spam::bar(double)"))
38
(if (not (string=? (Spam-bar "hello") "bar:char *"))
39
(error "Spam::bar(char *)"))
40
(if (not (string=? (Spam-bar f) "bar:Foo *"))
41
(error "Spam::bar(Foo *)"))
42
(if (not (string=? (Spam-bar b) "bar:Bar *"))
43
(error "Spam::bar(Bar *)"))
45
(if (not (string=? (Spam-type-get (new-Spam)) "none"))
47
(if (not (string=? (Spam-type-get (new-Spam 3)) "int"))
49
(if (not (string=? (Spam-type-get (new-Spam 3.4)) "double"))
50
(error "Spam(double)"))
51
(if (not (string=? (Spam-type-get (new-Spam "hello")) "char *"))
52
(error "Spam(char *)"))
53
(if (not (string=? (Spam-type-get (new-Spam b)) "Bar *"))
54
(error "Spam(Bar *)")))
5
(load "../schemerunme/overload_simple.scm")