summaryrefslogtreecommitdiff
path: root/Examples
diff options
context:
space:
mode:
authorOlly Betts <olly@survex.com>2023-05-11 10:47:44 +1200
committerOlly Betts <olly@survex.com>2023-05-17 13:23:16 +1200
commit73872022fb46bf804c0ced2b37b0d84385236cc3 (patch)
treed0c02296a931346274d393a0e2475486e38bbb93 /Examples
parent59fa42a7516a73cbbb1f810603c57ad418145dd2 (diff)
downloadswig-73872022fb46bf804c0ced2b37b0d84385236cc3.tar.gz
[tcl] Add string_view support
See #1567
Diffstat (limited to 'Examples')
-rw-r--r--Examples/test-suite/cpp17_string_view.i2
-rw-r--r--Examples/test-suite/tcl/cpp17_string_view_runme.tcl35
2 files changed, 36 insertions, 1 deletions
diff --git a/Examples/test-suite/cpp17_string_view.i b/Examples/test-suite/cpp17_string_view.i
index 864cc97eb..a1d3ea9cc 100644
--- a/Examples/test-suite/cpp17_string_view.i
+++ b/Examples/test-suite/cpp17_string_view.i
@@ -1,5 +1,5 @@
%module cpp17_string_view
-#if defined SWIGCSHARP || defined SWIGJAVA || defined SWIGLUA || defined SWIGPHP
+#if defined SWIGCSHARP || defined SWIGJAVA || defined SWIGLUA || defined SWIGPHP || defined SWIGTCL
%include <std_string_view.i>
// throw is invalid in C++17 and later, only SWIG to use it
diff --git a/Examples/test-suite/tcl/cpp17_string_view_runme.tcl b/Examples/test-suite/tcl/cpp17_string_view_runme.tcl
new file mode 100644
index 000000000..a63c25ee8
--- /dev/null
+++ b/Examples/test-suite/tcl/cpp17_string_view_runme.tcl
@@ -0,0 +1,35 @@
+
+if [ catch { load ./cpp17_string_view[info sharedlibextension] cpp17_string_view} err_msg ] {
+ puts stderr "Could not load shared object:\n$err_msg"
+}
+
+test_value "Fee"
+
+if {[test_value "Fi"] != "Fi"} { error "bad test_value"}
+
+test_const_reference "Fo"
+
+if {[test_const_reference "Fum"] != "Fum"} { error "bad test_const_reference"}
+
+set stringPtr [test_pointer_out]
+
+test_pointer $stringPtr
+
+set stringPtr [test_const_pointer_out]
+
+test_const_pointer $stringPtr
+
+set stringPtr [test_reference_out]
+
+test_reference $stringPtr
+
+# Global variables
+if {$ConstGlobalString != "const global string"} { error "bad ConstGlobalString_get"}
+
+# Member variables
+Structure s
+if {[s cget -ConstMemberString] != "const member string"} { error "bad ConstMemberString"}
+
+if {$Structure_ConstStaticMemberString != "const static member string"} { error "bad ConstStaticMemberString"}
+
+test_const_reference_returning_void "foo"