[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] scratch/merge-cedet-tests 23862f3 023/316: Test friends
From: |
Edward John Steere |
Subject: |
[Emacs-diffs] scratch/merge-cedet-tests 23862f3 023/316: Test friends |
Date: |
Fri, 27 Jan 2017 20:03:22 +0000 (UTC) |
branch: scratch/merge-cedet-tests
commit 23862f3d52080a15823a448ff2d9c98a9c6920c8
Author: Eric Ludlam <address@hidden>
Commit: Edward John Steere <address@hidden>
Test friends
* test/manual/cedet/cedet/semantic/tests/testfriends.cpp:
(Af): Add a friend of C w/out the CLASS token. (C): New. (scA, scB,
scC, scD): New test classes. (main): New (scA::PublicMethod,
scB::b_pub_method, scC::c_pub_method) (scD::d_pub_method): New.
---
.../cedet/cedet/semantic/tests/testfriends.cpp | 94 +++++++++++++++++++-
1 file changed, 93 insertions(+), 1 deletion(-)
diff --git a/test/manual/cedet/cedet/semantic/tests/testfriends.cpp
b/test/manual/cedet/cedet/semantic/tests/testfriends.cpp
index f84ed5a..ff6e440 100644
--- a/test/manual/cedet/cedet/semantic/tests/testfriends.cpp
+++ b/test/manual/cedet/cedet/semantic/tests/testfriends.cpp
@@ -14,7 +14,9 @@ public:
private:
int privateVar;
- friend class B;
+ friend class B; // Full class friend format.
+
+ friend C; // Abbreviated friend format.
};
@@ -26,6 +28,13 @@ public:
};
+class C
+{
+public:
+ int testC();
+ int testAC();
+
+};
int B::testB() {
Af classA;
@@ -35,3 +44,86 @@ int B::testB() {
int B::testAB() { // %1% ( ( "testfriends.cpp" ) ( "B" "B::testAB" ) )
}
+
+
+// Test friends when subclassing.
+class scA : public scB, public scC, public scD
+{
+public:
+ friend class scB;
+ friend scC;
+
+private:
+
+ int data;
+
+public:
+
+ int PublicMethod();
+
+};
+
+class scB
+{
+public:
+ int b_pub_method();
+protected:
+ int b_prot_method();
+private:
+ int b_priv_method();
+};
+
+
+class scC
+{
+public:
+ int c_pub_method();
+protected:
+ int c_prot_method();
+private:
+ int c_priv_method();
+};
+
+class scD // Not a friend
+{
+public:
+ int d_pub_method();
+protected:
+ int d_prot_method();
+private:
+ int d_priv_method();
+};
+
+
+int main()
+{
+ scA aclass;
+
+ aclass. //-2-
+ ; //#2# ( "PublicMethod" "b_pub_method" "c_pub_method" "d_pub_method")
+}
+
+
+int scA::PublicMethod() {
+ this. // -3-
+ ; // #3# ( "PublicMethod" "b_prot_method" "b_pub_method" "c_prot_method"
"c_pub_method" "d_prot_method" "d_pub_method" "data")
+}
+
+int scB::b_pub_method() {
+ scA myfriend;
+ myfriend. // -4-
+ ; // #4# ( "PublicMethod" "b_priv_method" "b_prot_method" "b_pub_method"
"c_pub_method" "d_pub_method" "data")
+}
+
+int scC::c_pub_method() {
+ scA myfriend;
+ myfriend. // -5-
+ ; // #5# ( "PublicMethod" "b_pub_method" "c_priv_method" "c_prot_method"
"c_pub_method" "d_pub_method" "data")
+}
+
+int scD::d_pub_method() {
+ scA myfriend;
+ // The NOT FRIEND can't see 'data' which is private to scA
+ myfriend. // -6-
+ ; // #6# ( "PublicMethod" "b_pub_method" "c_pub_method" "d_priv_method"
"d_prot_method" "d_pub_method")
+}
- [Emacs-diffs] scratch/merge-cedet-tests d3a0e00 219/316: Erorr when appropriate, (continued)
- [Emacs-diffs] scratch/merge-cedet-tests d3a0e00 219/316: Erorr when appropriate, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests c86be27 133/316: Move tests in cedet/semantic, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 02c7dbb 310/316: Move tests in cedet/semantic, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests cebc72c 228/316: Make unit tests use randomized file names, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 47d9c79 295/316: Moved tests about, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests f8e3bbc 311/316: Return fully qualified types if necessary., Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 19646a7 141/316: semantic/bovine/c: Add support for typedef references, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 39f1464 235/316: (cit-srecode-fill-cpp): Fixed misspelling of target name., Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests fb048d1 006/316: (semantic-c): Hack for Emacs 21 to get things running., Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests c43f15e 015/316: Test project configuration file., Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 23862f3 023/316: Test friends,
Edward John Steere <=
- [Emacs-diffs] scratch/merge-cedet-tests cdcc2c4 037/316: (Lisp_LISP): Add cit-dist.el, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests bf84fd5 054/316: Move tests in cedet/semantic, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests dbed2db 058/316: Run the tests., Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests cfdd9a5 070/316: Tests for polymorphism, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 41aebbc 072/316: Texinfo support for cedet integration tests., Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 79008df 084/316: Fake config.h for project detection purposes., Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 0c4deea 079/316: Test files contributed by Barry OReilly, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests b666682 082/316: Move tests in cedet/semantic, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 89b52b8 087/316: New metaproject, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 6dfcb31 089/316: (Lisp): Add cit-srec.el (templates): New, Edward John Steere, 2017/01/27