summaryrefslogtreecommitdiff
path: root/Examples
diff options
context:
space:
mode:
authorOlly Betts <olly@survex.com>2023-05-12 16:04:23 +1200
committerOlly Betts <olly@survex.com>2023-05-12 16:05:48 +1200
commita44a7de3481e5f59c08dd71ec89b30b7578a52b9 (patch)
treeac737b23240668d04e529d819a3c963ff0a10d63 /Examples
parent1a31e9dc0cbcc458b241293a479123954f55f28c (diff)
downloadswig-a44a7de3481e5f59c08dd71ec89b30b7578a52b9.tar.gz
Expand li_std_string_runme.*
Add testing of the empty and null cases for all languages which already have a runme.
Diffstat (limited to 'Examples')
-rw-r--r--Examples/test-suite/csharp/li_std_string_runme.cs17
-rw-r--r--Examples/test-suite/d/li_std_string_runme.2.d7
-rw-r--r--Examples/test-suite/java/li_std_string_runme.java13
-rw-r--r--Examples/test-suite/lua/li_std_string_runme.lua8
-rw-r--r--Examples/test-suite/ocaml/li_std_string_runme.ml9
-rw-r--r--Examples/test-suite/perl5/li_std_string_runme.pl10
-rw-r--r--Examples/test-suite/php/li_std_string_runme.php7
-rw-r--r--Examples/test-suite/ruby/li_std_string_runme.rb14
-rw-r--r--Examples/test-suite/schemerunme/li_std_string.scm16
-rw-r--r--Examples/test-suite/tcl/li_std_string_runme.tcl11
10 files changed, 102 insertions, 10 deletions
diff --git a/Examples/test-suite/csharp/li_std_string_runme.cs b/Examples/test-suite/csharp/li_std_string_runme.cs
index 4c9d71384..b4bdcfe42 100644
--- a/Examples/test-suite/csharp/li_std_string_runme.cs
+++ b/Examples/test-suite/csharp/li_std_string_runme.cs
@@ -94,7 +94,20 @@ public class runme
Structure.StaticMemberString2 = s;
if (Structure.StaticMemberString2 != s)
throw new Exception("StaticMemberString2 test 2");
- if (Structure.ConstStaticMemberString != "const static member string")
- throw new Exception("ConstStaticMemberString test");
+ if (Structure.ConstStaticMemberString != "const static member string")
+ throw new Exception("ConstStaticMemberString test");
+
+ if (li_std_string.stdstring_empty() != "")
+ throw new Exception("stdstring_empty test");
+ if (li_std_string.c_empty() != "")
+ throw new Exception("c_empty test");
+ if (li_std_string.c_null() != null)
+ throw new Exception("c_null test");
+ if (li_std_string.get_null(li_std_string.c_null()) != null)
+ throw new Exception("get_null c_null test");
+ if (li_std_string.get_null(li_std_string.c_empty()) != "non-null")
+ throw new Exception("get_null c_empty test");
+ if (li_std_string.get_null(li_std_string.stdstring_empty()) != "non-null")
+ throw new Exception("get_null stdstring_empty test");
}
}
diff --git a/Examples/test-suite/d/li_std_string_runme.2.d b/Examples/test-suite/d/li_std_string_runme.2.d
index 395c2f7ff..f0d0fa84c 100644
--- a/Examples/test-suite/d/li_std_string_runme.2.d
+++ b/Examples/test-suite/d/li_std_string_runme.2.d
@@ -72,6 +72,13 @@ void main() {
Structure.StaticMemberString2 = s;
enforce(Structure.StaticMemberString2 == s, "StaticMemberString2 test 2");
enforce(Structure.ConstStaticMemberString == "const static member string", "ConstStaticMemberString test");
+
+ enforce(stdstring_empty() == "", "stdstring_empty test");
+ enforce(c_empty() == "", "c_empty test");
+ enforce(c_null() == null, "c_null test");
+ enforce(get_null(c_null()) == null, "get_null c_null test");
+ enforce(get_null(c_empty()) == null, "get_null c_empty test");
+ enforce(get_null(stdstring_empty()) == null, "get_null stdstring_empty test");
}
private void enforceThrows(void delegate() dg, string errorMessage) {
diff --git a/Examples/test-suite/java/li_std_string_runme.java b/Examples/test-suite/java/li_std_string_runme.java
index 1ee2a23c5..ffb9df9e6 100644
--- a/Examples/test-suite/java/li_std_string_runme.java
+++ b/Examples/test-suite/java/li_std_string_runme.java
@@ -104,5 +104,18 @@ public class li_std_string_runme {
throw new Exception("StaticMemberString2 test 2");
if (!Structure.getConstStaticMemberString().equals("const static member string"))
throw new Exception("ConstStaticMemberString test");
+
+ if (!li_std_string.stdstring_empty().equals(""))
+ throw new Exception("stdstring_empty test");
+ if (!li_std_string.c_empty().equals(""))
+ throw new Exception("c_empty test");
+ if (li_std_string.c_null() != null)
+ throw new Exception("c_null test");
+ if (li_std_string.get_null(li_std_string.c_null()) != null)
+ throw new Exception("get_null c_null test");
+ if (!li_std_string.get_null(li_std_string.c_empty()).equals("non-null"))
+ throw new Exception("get_null c_empty test");
+ if (!li_std_string.get_null(li_std_string.stdstring_empty()).equals("non-null"))
+ throw new Exception("get_null stdstring_empty test");
}
}
diff --git a/Examples/test-suite/lua/li_std_string_runme.lua b/Examples/test-suite/lua/li_std_string_runme.lua
index 4e6dbe7f1..93127276a 100644
--- a/Examples/test-suite/lua/li_std_string_runme.lua
+++ b/Examples/test-suite/lua/li_std_string_runme.lua
@@ -119,3 +119,11 @@ assert(pcall(function () li_std_string.Structure_ConstStaticMemberString='f' end
assert(type(li_std_string.Structure_StaticMemberString)=="string")
assert(type(li_std_string.Structure_StaticMemberString2)=="string")
assert(type(li_std_string.Structure_ConstStaticMemberString)=="string")
+
+
+assert(stdstring_empty()=="")
+assert(c_empty()=="")
+assert(c_null()==nil)
+assert(get_null(c_null())==nil)
+assert(get_null(c_empty())=="non-null")
+assert(get_null(stdstring_empty())=="non-null")
diff --git a/Examples/test-suite/ocaml/li_std_string_runme.ml b/Examples/test-suite/ocaml/li_std_string_runme.ml
index 5f8c98a6b..3e0ad2c3b 100644
--- a/Examples/test-suite/ocaml/li_std_string_runme.ml
+++ b/Examples/test-suite/ocaml/li_std_string_runme.ml
@@ -41,4 +41,13 @@ let _ =
ignore (_Structure_StaticMemberString2 '(s));
assert (_Structure_StaticMemberString2 '() = s);
assert (_Structure_ConstStaticMemberString '() as string = "const static member string")
+
+ assert (_stdstring_empty '() as string = "")
+ assert (_c_empty '() as string = "")
+ (* FIXME: Can't work out what C++ NULL maps to here...
+ assert (_c_null '() = None)
+ assert (_get_null (_c_null '()) = None)
+ *)
+ assert (_get_null (_c_empty '()) as string = "non-null")
+ assert (_get_null (_stdstring_empty '()) as string = "non-null")
;;
diff --git a/Examples/test-suite/perl5/li_std_string_runme.pl b/Examples/test-suite/perl5/li_std_string_runme.pl
index 3c3f9d5b4..0eb0b1476 100644
--- a/Examples/test-suite/perl5/li_std_string_runme.pl
+++ b/Examples/test-suite/perl5/li_std_string_runme.pl
@@ -101,14 +101,14 @@ is($gen1->testl("9234567890121111113"), "9234567890121111114", "ulonglong big nu
is(li_std_string::stdstring_empty(), "", "stdstring_empty");
-is(li_std_string::c_empty(), "", "c_empty");
+is(li_std_string::c_empty(), "", "c_empty");
-is(li_std_string::c_null(), undef, "c_empty");
+is(li_std_string::c_null(), undef, "c_null");
-is(li_std_string::get_null(li_std_string::c_null()), undef, "c_empty");
+is(li_std_string::get_null(li_std_string::c_null()), undef, "get_null c_null");
-is(li_std_string::get_null(li_std_string::c_empty()), "non-null", "c_empty");
+is(li_std_string::get_null(li_std_string::c_empty()), "non-null", "get_null c_empty");
-is(li_std_string::get_null(li_std_string::stdstring_empty()), "non-null", "stdstring_empty");
+is(li_std_string::get_null(li_std_string::stdstring_empty()), "non-null", "get_null stdstring_empty");
diff --git a/Examples/test-suite/php/li_std_string_runme.php b/Examples/test-suite/php/li_std_string_runme.php
index 390b7e17b..cd0431254 100644
--- a/Examples/test-suite/php/li_std_string_runme.php
+++ b/Examples/test-suite/php/li_std_string_runme.php
@@ -93,6 +93,13 @@ try {
check::equal($s->getMessage(), "foo");
}
+check::equal(li_std_string::stdstring_empty(), "", "stdstring_empty test");
+check::equal(li_std_string::c_empty(), "", "c_empty test");
+check::isnull(li_std_string::c_null(), "c_null test");
+check::isnull(li_std_string::get_null(li_std_string::c_null()), "get_null c_null test");
+check::equal(li_std_string::get_null(li_std_string::c_empty()), "non-null", "get_null c_empty test");
+check::equal(li_std_string::get_null(li_std_string::stdstring_empty()), "non-null", "get_null stdstring_empty test");
+
// This used to give "Undefined variable: r"
li_std_string::test_const_reference_returning_void("foo");
diff --git a/Examples/test-suite/ruby/li_std_string_runme.rb b/Examples/test-suite/ruby/li_std_string_runme.rb
index c964808fa..36824a4d7 100644
--- a/Examples/test-suite/ruby/li_std_string_runme.rb
+++ b/Examples/test-suite/ruby/li_std_string_runme.rb
@@ -131,17 +131,25 @@ if (stdstring_empty() != "")
raise RuntimeError
end
-if (c_empty() != "")
+if (c_empty() != "")
raise RuntimeError
end
-if (c_null() != nil)
+if (c_null() != nil)
raise RuntimeError
end
-if (get_null(c_null()) != nil)
+if (get_null(c_null()) != nil)
raise RuntimeError
end
+
+if (get_null(c_empty()) != "non-null")
+ raise RuntimeError
+end
+
+if (get_null(stdstring_empty()) != "non-null")
+ raise RuntimeError
+end
diff --git a/Examples/test-suite/schemerunme/li_std_string.scm b/Examples/test-suite/schemerunme/li_std_string.scm
index 343b9b8e8..c598de991 100644
--- a/Examples/test-suite/schemerunme/li_std_string.scm
+++ b/Examples/test-suite/schemerunme/li_std_string.scm
@@ -45,4 +45,20 @@
(if (not (string=? (Structure-ConstStaticMemberString) "const static member string"))
(error "Error 10"))
+(if (not (string=? (stdstring-empty) ""))
+ (error "stdstring-empty test"))
+(if (not (string=? (c-empty) ""))
+ (error "c-empty test"))
+; C++ NULL is mapped to #f (false) here rather than null. I don't know guile
+; enough to know if that makes sense or not.
+(if (c-null)
+ (error "c-null test"))
+; FIXME: However, #f doesn't round-trip, so something seems wrong.
+; (if (get-null (c-null))
+; (error "get-null c-empty test"))
+(if (not (string=? (get-null (c-empty)) "non-null"))
+ (error "get-null c-empty test"))
+(if (not (string=? (get-null (stdstring-empty)) "non-null"))
+ (error "get-null stdstring-empty test"))
+
(exit 0)
diff --git a/Examples/test-suite/tcl/li_std_string_runme.tcl b/Examples/test-suite/tcl/li_std_string_runme.tcl
index 333c1f1be..2635af896 100644
--- a/Examples/test-suite/tcl/li_std_string_runme.tcl
+++ b/Examples/test-suite/tcl/li_std_string_runme.tcl
@@ -19,3 +19,14 @@ if {"$GlobalString2" != "hello"} { error "bad string map"}
set Structure_StaticMemberString2 "hello"
if {"$Structure_StaticMemberString2" != "hello"} { error "bad string map"}
+
+if {[stdstring_empty] != ""} { error "bad stdstring_empty test" }
+if {[c_empty] != ""} { error "bad c_empty test" }
+# FIXME: [c_null] seems to give an empty string currently, but Tcl doesn't have
+# a real NULL value and the string "NULL" we used for elsewhere for NULL
+# pointers doesn't work well here as it's indistinguishable from the string
+# "NULL" being returned.
+#if {[c_null] != "NULL"} { error "bad c_null test" }
+#if {[get_null [c_null]] != "NULL"} { error "bad get_null c_null test" }
+if {[get_null [c_empty]] != "non-null"} { error "bad get_null c_empty test" }
+if {[get_null [stdstring_empty]] != "non-null"} { error "bad get_null stdstring_empty test" }