summaryrefslogtreecommitdiffstats
path: root/testing/062_namespace_resolution.tcl
diff options
context:
space:
mode:
authorwtschueller <wtschueller@users.noreply.github.com>2014-07-12 18:34:46 (GMT)
committerwtschueller <wtschueller@users.noreply.github.com>2014-07-12 18:34:46 (GMT)
commit470143192d0c8cf90ad84a66226d48060cc713db (patch)
treec6b8ab35c3a1d48b14a29e2f3fc395b8db5edb10 /testing/062_namespace_resolution.tcl
parent06bd53ac6acee5fb83d9f2b5ded1c55c8a069b29 (diff)
downloadDoxygen-470143192d0c8cf90ad84a66226d48060cc713db.zip
Doxygen-470143192d0c8cf90ad84a66226d48060cc713db.tar.gz
Doxygen-470143192d0c8cf90ad84a66226d48060cc713db.tar.bz2
Tcl: correct namespace resolution in case of INLINE_SOURCES = YES
Diffstat (limited to 'testing/062_namespace_resolution.tcl')
-rw-r--r--testing/062_namespace_resolution.tcl68
1 files changed, 68 insertions, 0 deletions
diff --git a/testing/062_namespace_resolution.tcl b/testing/062_namespace_resolution.tcl
new file mode 100644
index 0000000..dcc6701
--- /dev/null
+++ b/testing/062_namespace_resolution.tcl
@@ -0,0 +1,68 @@
+#// objective: tests correct namespace resolution, only references/referencedby relations are relevant
+#// check: namespacen1.xml
+#// check: namespacen2.xml
+#// check: namespacen3.xml
+#// config: REFERENCED_BY_RELATION = yes
+#// config: REFERENCES_RELATION = yes
+#// config: EXTRACT_ALL = yes
+#// config: INLINE_SOURCES = yes
+
+# now: combine namespace eval and qualified names
+namespace eval n1 {
+ proc p1 args {
+ array set info [info frame 0]; puts -nonewline ->$info(proc)
+ p2
+ return
+ }
+ proc p2 args {
+ array set info [info frame 0]; puts -nonewline ->$info(proc)
+ return
+ }
+ namespace eval n1 {
+ proc p1 args {
+ array set info [info frame 0]; puts -nonewline ->$info(proc)
+ return
+ }
+ }
+}
+# same thing, but fully qualified proc names
+namespace eval ::n2 {}
+namespace eval ::n2::n2 {}
+proc ::n2::p1 args {
+ array set info [info frame 0]; puts -nonewline ->$info(proc)
+ p2
+ return
+}
+proc ::n2::p2 args {
+ array set info [info frame 0]; puts -nonewline ->$info(proc)
+ return
+}
+proc ::n2::n2::p2 args {
+ array set info [info frame 0]; puts -nonewline ->$info(proc)
+ return
+}
+# same thing, without leading ::
+namespace eval n3 {}
+namespace eval n3::n3 {}
+proc n3::p1 args {
+ array set info [info frame 0]; puts -nonewline ->$info(proc)
+ p2
+ return
+}
+proc n3::p2 args {
+ array set info [info frame 0]; puts -nonewline ->$info(proc)
+ return
+}
+proc n3::n3::p2 args {
+ array set info [info frame 0]; puts -nonewline ->$info(proc)
+ return
+}
+# now, check with tcl what is called
+n1::p1
+puts ""
+n2::p1
+puts ""
+n3::p1
+puts ""
+exit
+