summaryrefslogtreecommitdiff
path: root/test/test36.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-07-13 17:36:07 +0300
committerAndrei Karas <akaras@inbox.ru>2015-07-13 17:36:07 +0300
commiteb47cc7c4105a6a45f68e955dcb61d9502d9c138 (patch)
tree5d7bc6dad99b03f8054d3a3e53783ef26ffe575b /test/test36.cpp
parent6c98fdf78af4d1e051f149106bd45a011279ebda (diff)
downloadparanucker-eb47cc7c4105a6a45f68e955dcb61d9502d9c138.tar.gz
paranucker-eb47cc7c4105a6a45f68e955dcb61d9502d9c138.tar.bz2
paranucker-eb47cc7c4105a6a45f68e955dcb61d9502d9c138.tar.xz
paranucker-eb47cc7c4105a6a45f68e955dcb61d9502d9c138.zip
Add test 36.
Diffstat (limited to 'test/test36.cpp')
-rw-r--r--test/test36.cpp81
1 files changed, 81 insertions, 0 deletions
diff --git a/test/test36.cpp b/test/test36.cpp
new file mode 100644
index 0000000..84e9dea
--- /dev/null
+++ b/test/test36.cpp
@@ -0,0 +1,81 @@
+struct Data1;
+
+struct Data1
+{
+ int val;
+ Data1 *ptrval;
+ int arr[3];
+ Data1 *getData3()
+ {
+ return ptrval;
+ }
+};
+
+struct Data2 : public Data1
+{
+};
+
+int k;
+
+void paranuckerInternalTest(const char *action, const char *collection, const char *values);
+
+class Object1
+{
+ Data1 *tmp1;
+ Data1 *tmp2;
+
+ Data1 *getData1()
+ {
+ return tmp2;
+ }
+
+ Data1 *getData2() __attribute__((returns_nonnull))
+ {
+ return tmp2;
+ }
+
+ void func1()
+ {
+ Data1 *ptr1 = new Data1;
+ paranuckerInternalTest("=", "knownVars", "ptr1");
+ paranuckerInternalTest("=", "knownNonNullVars", "ptr1");
+ paranuckerInternalTest("=", "knownNullVars", "");
+ paranuckerInternalTest("=", "needCheckNullVars", "");
+ paranuckerInternalTest("=", "addNullVars", "");
+ paranuckerInternalTest("=", "removeNullVarsAll", "");
+ paranuckerInternalTest("=", "linkedVars", "ptr1");
+ paranuckerInternalTest("=", "linkedVars", "this->tmp1");
+ paranuckerInternalTest("=", "linkedReverseVars", "ptr1");
+ paranuckerInternalTest("=", "linkedReverseVars", "this->tmp1");
+ }
+
+ void func2()
+ {
+ Data1 *ptr1 = new Data1[10];
+ paranuckerInternalTest("=", "knownVars", "ptr1");
+ paranuckerInternalTest("=", "knownNonNullVars", "ptr1");
+ paranuckerInternalTest("=", "knownNullVars", "");
+ paranuckerInternalTest("=", "needCheckNullVars", "");
+ paranuckerInternalTest("=", "addNullVars", "");
+ paranuckerInternalTest("=", "removeNullVarsAll", "");
+ paranuckerInternalTest("=", "linkedVars", "ptr1");
+ paranuckerInternalTest("=", "linkedVars", "this->tmp1");
+ paranuckerInternalTest("=", "linkedReverseVars", "ptr1");
+ paranuckerInternalTest("=", "linkedReverseVars", "this->tmp1");
+ }
+
+ void func3()
+ {
+ int *ptr1 = new int[10];
+ paranuckerInternalTest("=", "knownVars", "ptr1");
+ paranuckerInternalTest("=", "knownNonNullVars", "ptr1");
+ paranuckerInternalTest("=", "knownNullVars", "");
+ paranuckerInternalTest("=", "needCheckNullVars", "");
+ paranuckerInternalTest("=", "addNullVars", "");
+ paranuckerInternalTest("=", "removeNullVarsAll", "");
+ paranuckerInternalTest("=", "linkedVars", "ptr1");
+ paranuckerInternalTest("=", "linkedVars", "this->tmp1");
+ paranuckerInternalTest("=", "linkedReverseVars", "ptr1");
+ paranuckerInternalTest("=", "linkedReverseVars", "this->tmp1");
+ }
+};