Update copyright to LGPL on all files
[dyninst.git] / testsuite / src / TestData.h
1 /*
2  * Copyright (c) 1996-2009 Barton P. Miller
3  * 
4  * We provide the Paradyn Parallel Performance Tools (below
5  * described as "Paradyn") on an AS IS basis, and do not warrant its
6  * validity or performance.  We reserve the right to update, modify,
7  * or discontinue this software at any time.  We shall have no
8  * obligation to supply such updates or modifications or any other
9  * form of support to you.
10  * 
11  * By your use of Paradyn, you understand and agree that we (or any
12  * other person or entity with proprietary rights in Paradyn) are
13  * under no obligation to provide either maintenance services,
14  * update services, notices of latent defects, or correction of
15  * defects for Paradyn.
16  * 
17  * This library is free software; you can redistribute it and/or
18  * modify it under the terms of the GNU Lesser General Public
19  * License as published by the Free Software Foundation; either
20  * version 2.1 of the License, or (at your option) any later version.
21  * 
22  * This library is distributed in the hope that it will be useful,
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
25  * Lesser General Public License for more details.
26  * 
27  * You should have received a copy of the GNU Lesser General Public
28  * License along with this library; if not, write to the Free Software
29  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
30  */
31 #ifndef TEST_DATA_H
32 #define TEST_DATA_H
33
34 #include "test_lib_dll.h"
35 #include <vector>
36
37 enum start_state_t {
38    // Start up the mutatee and pass it to the test in a stopped state
39    STOPPED,
40    // Start up the mutatee and start it before passing it to the test
41    RUNNING,
42    // Allow the test to setup the mutatee itself
43    SELFSTART,
44 };
45
46 enum create_mode_t {
47    CREATE = 0,
48    USEATTACH,
49    DISK,
50    DESERIALIZE
51 };
52
53 enum cleanup_mode_t {
54    // If mutator passes collect exit code from the mutatee, kill mutatee 
55    //    if mutator fails 
56    COLLECT_EXITCODE,
57    // Don't collect exit code from mutatee, just kill it
58    KILL_MUTATEE,
59    // The test contains it's own cleanup code
60    NONE,
61 };
62
63 enum enabled_t {
64    DISABLED = 0,
65    ENABLED = 1,
66 };
67
68 enum grouped_test_t {
69   GROUPED,
70   SOLO
71 };
72
73 typedef std::vector<char*> mutatee_list_t;
74
75 typedef struct {
76    bool alpha_dec_osf5_1;
77    bool i386_unknown_linux2_4; 
78    bool _i386_unknown_nt4_0_test; 
79    bool _ia64_unknown_linux2_4;
80    bool _x86_64_unknown_linux2_4;
81    bool mips_sgi_irix6_5;
82    bool _rs6000_ibm_aix5_1;
83    bool sparc_sun_solaris2_8;
84 } platforms_t;
85
86 struct TESTLIB_DLL_EXPORT TestData {
87    char *name;
88    char *soname;
89    mutatee_list_t &mutatee;
90    platforms_t &platforms;
91    start_state_t state;
92
93    int oldtest;
94    int subtest;
95    cleanup_mode_t cleanup;
96    create_mode_t useAttach;
97    enabled_t enabled;
98    grouped_test_t grouped;
99
100    TestData(char *name, 
101          char *soname, 
102          mutatee_list_t &mutatee, 
103          platforms_t &platforms,
104          start_state_t state,
105          int oldtest,
106          int subtest,
107          cleanup_mode_t cleanup,
108          create_mode_t useAttach,
109          enabled_t enabled,
110          grouped_test_t grouped
111          );
112 };
113
114 typedef TestData test_data_t;
115
116 #endif /* TEST_DATA_H */