From edeba50dd3c12bae48a2b7b5d059184df54b8a62 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 6 Mar 2014 14:12:50 -0500 Subject: test: Add cases for class member template instantiation Cover member templates of both classes and class templates. --- test/CMakeLists.txt | 2 ++ test/expect/gccxml.Class-member-template-xml.txt | 21 +++++++++++++++++++++ .../gccxml.Class-template-member-template-xml.txt | 22 ++++++++++++++++++++++ test/input/Class-member-template.cxx | 4 ++++ test/input/Class-template-member-template.cxx | 4 ++++ 5 files changed, 53 insertions(+) create mode 100644 test/expect/gccxml.Class-member-template-xml.txt create mode 100644 test/expect/gccxml.Class-template-member-template-xml.txt create mode 100644 test/input/Class-member-template.cxx create mode 100644 test/input/Class-template-member-template.cxx diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index ef8ec5b..6d04fcf 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -72,7 +72,9 @@ castxml_test_gccxml(Class-abstract) castxml_test_gccxml(Class-bases) castxml_test_gccxml(Class-friends) castxml_test_gccxml(Class-incomplete) +castxml_test_gccxml(Class-member-template) castxml_test_gccxml(Class-template) +castxml_test_gccxml(Class-template-member-template) castxml_test_gccxml(CvQualifiedType) castxml_test_gccxml(Enumeration) castxml_test_gccxml(Field) diff --git a/test/expect/gccxml.Class-member-template-xml.txt b/test/expect/gccxml.Class-member-template-xml.txt new file mode 100644 index 0000000..487aebb --- /dev/null +++ b/test/expect/gccxml.Class-member-template-xml.txt @@ -0,0 +1,21 @@ +^<\?xml version="1.0"\?> +]*> + + + + + + + + + + + + + + + + + + +$ diff --git a/test/expect/gccxml.Class-template-member-template-xml.txt b/test/expect/gccxml.Class-template-member-template-xml.txt new file mode 100644 index 0000000..42c7790 --- /dev/null +++ b/test/expect/gccxml.Class-template-member-template-xml.txt @@ -0,0 +1,22 @@ +^<\?xml version="1.0"\?> +]*> + + + + + + + + + + + + + + + + + + + +$ diff --git a/test/input/Class-member-template.cxx b/test/input/Class-member-template.cxx new file mode 100644 index 0000000..8ffb3d6 --- /dev/null +++ b/test/input/Class-member-template.cxx @@ -0,0 +1,4 @@ +class start { + template T method(T v) { return v; } +}; +template int start::method(int); // instantiation diff --git a/test/input/Class-template-member-template.cxx b/test/input/Class-template-member-template.cxx new file mode 100644 index 0000000..9dc6a54 --- /dev/null +++ b/test/input/Class-template-member-template.cxx @@ -0,0 +1,4 @@ +template class start { + template T method(U) { return T(); } +}; +template int start::method(char); // instantiation -- cgit v0.12