Rename newtestsuite to testsuite
[dyninst.git] / testsuite / src / dyninst / test5_1_mutatee.C
1 #include "cpp_test.h"
2 #include "mutatee_util.h"
3
4 /* group_mutatee_boilerplate.c is prepended to this file by the make system */
5
6 /* Externally accessed function prototypes.  These must have globally unique
7  * names.  I suggest following the pattern <testname>_<function>
8  */
9
10 /* Global variables accessed by the mutator.  These must have globally unique
11  * names.
12  */
13
14 /* Internally used function prototypes.  These should be declared with the
15  * keyword static so they don't interfere with other mutatees in the group.
16  */
17
18 /* Global variables used internally by the mutatee.  These should be declared
19  * with the keyword static so they don't interfere with other mutatees in the
20  * group.
21  */
22
23 /* Function definitions follow */
24
25 arg_test test1; 
26
27 void arg_test::func_cpp()
28 {
29   int test = 1;
30   int arg2 = 1;
31
32   call_cpp(test, arg2);
33 }
34
35 void arg_test::arg_pass(int test)
36 {
37    if (test != 1 || value != 5) {
38      logerror("**Failed** test #1 (C++ argument pass)\n");
39      logerror("    Passed in an incorrect parameter value:\n");
40      logerror("    test = %d, this = %u, test1 = %u\n",
41               test, (void *)this, (void *)&test1);
42 //      cerr << "    test = " << test << ", this = " << (void *) this;
43 //       cerr << ", test1 = " << (void *) &test1;
44       return;
45    }
46    logerror("Passed test #1 (C++ argument pass)\n");
47    test_passes(testname);
48 }
49
50 void arg_test::dummy()
51 {
52   DUMMY_FN_BODY;
53 }
54
55 void arg_test::call_cpp(const int arg1, int & arg2, int arg3)
56 {
57    const int m = 8;
58    int n = 6;
59    int & reference = n;
60
61    dummy(); // place to change the value of arg3 from CPP_DEFLT_ARG to 1 
62
63    if ( 1 != arg3 ) {
64      logerror("**Failed** test #1 (C++ argument pass)\n");
65      logerror("    Default argument value is not changed\n");
66    }
67
68    if ( arg1 == arg2 )  arg2 = CPP_DEFLT_ARG;
69 }
70
71 int test5_1_mutatee() {
72   test1.func_cpp();
73   // FIXME Make sure the error reporting works
74   // I need to have this guy call test_passes(testname) if the test passes..
75   return 0; /* No error */
76 }