diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2010-03-29 17:26:49 -0400 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2010-03-29 17:26:49 -0400 |
commit | a4100ebe291e4d2aca4dd8178e7632ba87f7a65e (patch) | |
tree | 974cde909168950c49e79efea01558e68e434789 /test/cedet/tests/test.cpp | |
parent | fe59d70512322e7001ffd772f5e74c7302b7e1d5 (diff) | |
download | emacs-a4100ebe291e4d2aca4dd8178e7632ba87f7a65e.tar.gz |
Update Semantic test copyrights, delete some test files (Bug#4656).
* cedet/tests/test.cpp:
* cedet/tests/test.py:
* cedet/tests/teststruct.cpp:
* cedet/tests/testtemplates.cpp:
* cedet/tests/testusing.cpp:
* cedet/tests/scopetest.cpp:
* cedet/tests/scopetest.java: Files deleted.
* cedet/tests/test.make:
* cedet/tests/test.c:
* cedet/tests/testjavacomp.java:
* cedet/tests/testspp.c:
* cedet/tests/testsppreplace.c:
* cedet/tests/testsppreplaced.c:
* cedet/tests/testsubclass.cpp:
* cedet/tests/testsubclass.hh:
* cedet/tests/testtypedefs.cpp:
* cedet/tests/testvarnames.c:
* cedet/tests/test.el:
* cedet/tests/testdoublens.cpp:
* cedet/tests/testdoublens.hpp: Add copyright header.
* cedet/semantic-tests.el (semanticdb-test-gnu-global): Remove
reference to deleted files.
Diffstat (limited to 'test/cedet/tests/test.cpp')
-rw-r--r-- | test/cedet/tests/test.cpp | 592 |
1 files changed, 0 insertions, 592 deletions
diff --git a/test/cedet/tests/test.cpp b/test/cedet/tests/test.cpp deleted file mode 100644 index 0c43944a031..00000000000 --- a/test/cedet/tests/test.cpp +++ /dev/null @@ -1,592 +0,0 @@ -/* Test file for C++ language. - * Attempt to include as many aspects of the C++ language as possible. - * Do not include things tested in test.c since that shares the - * same language. - */ - -/* An include test */ -#include <stdio.h> - -#include <cmath> - -#include "c++-test.hh" - -#include <c++-test.hh> - -double var1 = 1.2; - -int simple1(int a) { - -} - -struct foo1 { - int test; -}; - -struct foo2 : public foo1 { - const int foo21(int a, int b); - const int foo22(int a, int b) { return 1 } -}; - -/* Classes */ -class class1 { -private: - int var11; - struct foo1 var12; -public: - int p_var11; - struct foo p_var12; -}; - -class i_class1 : public class1 { -private: - int var11; - struct foo var12; -public: - int p_var11; - struct foo p_var12; -}; - -class class2 { -private: - int var21; - struct foo var22; -public: - int p_var21; - struct foo p_var22; -}; - -class i_class2 : public class1, public class2 { -private: - int var21; - struct foo var22; -protected: - int pt_var21; -public: - int p_var21; - struct foo p_var22; -}; - -class class3 { - /* A class with strange things in it */ -public: - class3(); /* A constructor */ - enum embedded_foo_enum { - a, b, c - } embed1; - struct embedded_bar_struct { - int a; - int b; - } embed2; - class embedded_baz_class { - embedded_baz_class(); - ~embedded_baz_class(); - } embed3; - ~class3(); /* destructor */ - - /* Methods */ - int method_for_class3(int a, char b); - - int inline_method(int c) { return c; } - - /* Operators */ - class3& operator^= (const class3& something); - - /* Funny declmods */ - const class3 * const method_const_ptr_ptr(const int * const argconst) const = 0; -}; - -class3::class3() -{ - /* Constructor outside the definition. */ -} - -int class3::method_for_class3(int a, char b) -{ -} - -int class3::method1_for_class3( int a, int &b) -{ - int cvariablename; - class3 fooy[]; - class3 moose = new class3; - - // Complktion testing line should find external members. - a = fooy[1].me ; - b = cv ; - - if (fooy.emb) { - simple1(c); - } - - cos(10); - abs(10); - - return 1; -} - -char class3::method2_for_class3( int a, int b) throw ( exception1 ) -{ - return 'a'; -} - -void *class3::method3_for_class3( int a, int b) throw ( exception1, exception2 ) -{ - int q = a; - return "Moose"; -} - -void *class3::method31_for_class3( int a, int b) throw ( ) -{ - int q = a; - return "Moose"; -} - -void *class3::method4_for_class3( int a, int b) reentrant -{ - class3 ct; - - ct.method5_for_class3(1,a); - - pritf(); -} - -/* - * A method on class3. - */ -void *class3::method5_for_class3( int a, int b) const -{ -} - -/* - * Namespace parsing tests - */ -namespace NS { - class class_in_namespace { - int equiv(const NS::class_in_namespace *) const; - }; -} - -int NS::class_in_namespace::equiv(const NS::class_in_namespace *cin) const -{ - return 0; -} - -// Stuff Klaus found. -// Inheritance w/out a specifying for public. -class class4 : class1 { - // Pure virtual methods. - void virtual print () const = 0; - -public: - // The whacky constructor type - class4() - try : class1(args) - { - // constructor body - } - catch () - { - - } - - -}; - -class class5 : public virtual class4 { - // Virtual inheritance -}; - -class class6 : class1 { - // Mutable - mutable int i; -}; - -/* Namespaces */ -namespace namespace1 { - void ns_method1() { } - - class n_class1 { - public: - void method11(int a) { } - }; - - /* This shouldn't parse due to missing semicolon. */ - class _n_class2 : public n_class1 { - void n_c2_method1(int a, int b) { } - }; - - // Macros in the namespace -#define NSMACRO 1 - - // Template in the namespace - template<class T> T nsti1(const Foo& foo); - template<> int nsti1<int>(const Foo& foo); - -} - -namespace namespace2 { - - using namespace1::n_class1; - -} - -/* Initializers */ -void tinitializers1(): inita1(False), - inita2(False) -{ - inita1= 1; -} - -/* How about Extern C type things. */ -int funny_prototype(int ,int b,float c) -{ - -} - -extern "C" -int extern_c_1(int a, int b) -{ - - funny_prototype(1,2,3.4); - - printf("Moose", ); - - return 1; -} - -extern "C" { - - int extern_c_2(int a, int b) - { - return 1; - } - -} - -// Some operator stuff -class Action -{ - // Problems!! operator() and operator[] can not be parsed with semantic - // 1.4.2 but with latest c.by - virtual void operator()(int i, char *p ) = 0; - virtual String& operator[]() = 0; - virtual void operator!() = 0; - virtual void operator->() = 0; - virtual T& operator+=(); - virtual T& operator*(); - virtual T& operator*=(); -}; - -// class with namespace qualified parents -class Multiinherit : public virtual POA::Parent, - public virtual POA::Parent1, - Parent -{ -private: - int i; - -public: - Multiinherit(); - ~Multiinherit(); - - // method with a list of qualified exceptions - void* throwtest() - throw(Exception0, - Testnamespace::Exception1, - Testnamespace::Excpetion2, - Testnamespace::testnamespace1::Exception3); - -}; - -void* -Multiinherit::throwtest() - throw (Exception0, - Testnamespace::Exception1, - Testnamespace::Excpetion2, - Testnamespace::testnamespace1::Exception3) -{ - return; -} - -// Jens Rock <jens.rock@asamnet.de>: Nested classes or structs defined -// outside of the containing class/struct. -class container -{ - public: - struct contained; - container(); - ~container(); -}; - -struct container::contained -{ - public: - contained(); - ~contained(); -}; - -/* - * Ok, how about some template stuff. - */ -template <class CT, class container = vector<CT> > -const CT& max (const CT& a, const CT& b) -{ - return a < b ? b : a; -} - -// Arne Schmitz found this one -std::vector<int> &a, &b, &c; - -class TemplateUsingClass -{ - typedef TestClassMap::iterator iterator; - typedef map<long, long> TestClassMap; - - // typedefs with const and volatile - typedef const map<long, long> const_TestClassMap; - typedef TestClassMap<string>::iterator volatile volatile_iterator; - - map<int, int> mapclassvarthingy; -}; - -template<class T> T ti1(const Foo& foo); -template<> int ti1<int>(const Foo& foo); - - -// ----------------------------------- -// Now some namespace and related stuff -// ----------------------------------- - -using CORBA::LEX::get_token; -using Namespace1; - -using namespace POA::std; -using namespace Test; - - - -namespace Parser -{ - namespace - { - using Lexer::get_test; - string str = ""; - } - - namespace XXX - { - - class Foobar : public virtual POA::Parent, - public virtual POA::Parent1, - private POA::list<fact>, - private map<string> - { - ini i; - list <shared_ptr<item> >::const_iterator l; - public: - - Foobar(); - ~Foobar(); - }; - } - - - void test_function(int i); - -}; - -// unnamed namespaces - even nested -namespace -{ - namespace - { - using Lexer::get_test; - string str = ""; - } - - // some builtin types - long long ll = 0; - long double d = 0.0; - unsigned test; - unsigned long int **uli = 0; - signed si = 0; - signed short ss = 0; - short int i = 0; - long int li = 0; - - // expressions with namespace/class-qualifyiers - ORB_var cGlobalOrb = ORB::_nil(); - ORB_var1 cGlobalOrb1 = ORB::_test; - - class Testclass - { - #define TEST 0 - ini i; - - public: - - Testclass(); - ~Testclass(); - }; - - static void test_function(unsigned int i); - -}; - - -// outside method implementations which should be grouped to type Test -XXX& -Test::waiting() -{ - return; -} - -void -Test::print() -{ - return; -} - -// outside method implementations with namespaces which should be grouped to -// their complete (incl. namespace) types -void* -Parser::XXX::Foobar::wait(int i, const char const * const * p) -{ - return; -} - -void* -Namespace1::Test::wait1(int i) -{ - return; -} - -int -Namespace1::Test::waiting(int i) -{ - return; -} - -// a class with some outside implementations which should all be grouped to -// this class declaration -class ClassWithExternals -{ -private: - int i; - -public: - ClassWithExternals(); - ~ClassWithExternals(); - void non_nil(); -}; - - -// Foobar is not displayed; seems that semantic tries to add this to the class -// Foobar but can not find/display it, because contained in the namespace above. -void -Foobar::non_nil() -{ - return; -} - -// are correctly grouped to the ClassWithExternals class -void -ClassWithExternals::non_nil() -{ - String s = "lödfjg dlfgkdlfkgjdl"; - return; -} - -ClassWithExternals::ClassWithExternals() -{ - return; -} - -void -ClassWithExternals::~ClassWithExternals() -{ - return; -} - - -// ------------------------------- -// Now some macro and define stuff -// ------------------------------- - -#define TEST 0 -#define TEST1 "String" - -// The first backslash makes this macro unmatched syntax with semantic 1.4.2! -// With flexing \+newline as nothing all is working fine! -#define MZK_ENTER(METHOD) \ -{ \ - CzkMethodLog lMethodLog(METHOD,"Framework");\ -} - -#define ZK_ASSERTM(METHOD,ASSERTION,MESSAGE) \ - { if(!(ASSERTION))\ - {\ - std::ostringstream lMesgStream; \ - lMesgStream << "Assertion failed: " \ - << MESSAGE; \ - CzkLogManager::doLog(CzkLogManager::FATAL,"",METHOD, \ - "Assert",lMesgStream); \ - assert(ASSERTION);\ - }\ - } - -// Test if not newline-backslashes are handled correctly -string s = "My \"quoted\" string"; - -// parsed fine as macro -#define FOO (arg) method(arg, "foo"); - -// With semantic 1.4.2 this parsed as macro BAR *and* function method. -// With latest c.bnf at least one-liner macros can be parsed correctly. -#define BAR (arg) CzkMessageLog method(arg, "bar"); - -// some const and volatile stuff -char * p1 = "Hello"; // 1. variable Pointer, variable Data -const char * p2 = "Hello"; // 2. variable pointer, constant data -char * const p3 = "Hello"; // 3. constant pointer, variable data -const char * const p4 = "Hello"; // 4. constant pointer, constant data - -// Case 2 and 4 can exchange first "const" and "char" -char const * p21 = "Hello"; // variable pointer, constant data -char const * const p41 = "Hello"; // constant pointer, constant data - -char volatile a = 0; // a volatile char -void foo(bar const &arg); // a reference to a const bar -int foobar(bar const * const p); // a const pointer to a const bar -int foobar(bar const volatile * const p); // a const pointer to a const bar -int foobar3(char* p); // a const pointer to a const bar - -// Should not be parsed because this is invalid code -int const & const r3 = i; - -boolean i = 0; -boolean & r1 = i; -boolean const & r2 = i; - -// const * sequences can be very long in C++ ;-) -char const * const * const * const * ppp; - -// complex function declarationen with named pointer-arguments -const char** foobar1(volatile char const * const **p); -const char** foobar11(volatile Test::Namespace::Char<char*> const * const **p); - -// complex function declarationen with unnamed pointer-arguments -const char* foobar2(const char***); -const char* foobar21(const Test::Namespace::Char<char>***); - -// string literal parsing even with wchar_t -char const *p = "string1"; -char const *q = "string1" "str\"ing2" "string3"; -wchar_t testc = L'a'; - -wchar_t const *wp = L"string with a \" in it"; -wchar_t const *wq = L"string \n\t\"test" L"string2"; -wchar_t const *wr = L"string L"; - -// arch-tag: 59828880-d72f-4059-922f-89579edf9e58 |