~ubuntu-branches/ubuntu/edgy/swig1.3/edgy

« back to all changes in this revision

Viewing changes to Examples/test-suite/csharp/csharp_attributes_runme.cs

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-12-05 01:16:04 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20051205011604-ygx904it6413k3go
Tags: 1.3.27-1ubuntu1
Resynchronise with Debian again, for the new subversion packages.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
using System;
 
2
using System.Reflection;
 
3
using csharp_attributesNamespace;
 
4
 
 
5
public class runme
 
6
{
 
7
  static void Main() 
 
8
  {
 
9
    // Custom attributes typemap tests
 
10
    //
 
11
    // cstype typemap attributechecks
 
12
    //
 
13
    // Global function cstype typemap attributes check
 
14
    Type globaltype = typeof(csharp_attributes);
 
15
    {
 
16
      MethodInfo member = (MethodInfo)globaltype.GetMember("GlobalFunction")[0];
 
17
      if (Attribute.GetCustomAttribute(member, typeof(IntOutAttribute)) == null)
 
18
        throw new Exception("No IntOut attribute for " + member.Name);
 
19
      ParameterInfo parameter = member.GetParameters()[0]; // expecting one parameter
 
20
      if (parameter.Name != "myInt")
 
21
        throw new Exception("Incorrect parameter name");
 
22
      Attribute attribute = Attribute.GetCustomAttributes(parameter)[0];
 
23
      if (attribute.GetType() != typeof(IntInAttribute))
 
24
        throw new Exception("Expecting IntIn attribute");
 
25
    }
 
26
    // Constant - cstype typemap attributes check
 
27
    {
 
28
      MemberInfo member = (MemberInfo)globaltype.GetMember("TESTMACRO")[0];
 
29
      if (Attribute.GetCustomAttribute(member, typeof(IntOutAttribute)) == null)
 
30
        throw new Exception("No IntOut attribute for " + member.Name);
 
31
    }
 
32
 
 
33
    // Non-static method cstype typemap attributes check
 
34
    Type type = typeof(Stations);
 
35
    {
 
36
      MethodInfo member = (MethodInfo)type.GetMember("Reading")[0];
 
37
      if (Attribute.GetCustomAttribute(member, typeof(IntOutAttribute)) == null)
 
38
        throw new Exception("No IntOut attribute for " + member.Name);
 
39
      ParameterInfo parameter = member.GetParameters()[0]; // expecting one parameter
 
40
      if (parameter.Name != "myInt")
 
41
        throw new Exception("Incorrect parameter name");
 
42
      Attribute attribute = Attribute.GetCustomAttributes(parameter)[0];
 
43
      if (attribute.GetType() != typeof(IntInAttribute))
 
44
        throw new Exception("Expecting IntIn attribute");
 
45
    }
 
46
    // Static method cstype typemap attributes check
 
47
    {
 
48
      MethodInfo member = (MethodInfo)type.GetMember("Swindon")[0];
 
49
      if (Attribute.GetCustomAttribute(member, typeof(IntOutAttribute)) == null)
 
50
        throw new Exception("No IntOut attribute for " + member.Name);
 
51
      ParameterInfo parameter = member.GetParameters()[0]; // expecting one parameter
 
52
      if (parameter.Name != "myInt")
 
53
        throw new Exception("Incorrect parameter name");
 
54
      Attribute attribute = Attribute.GetCustomAttributes(parameter)[0];
 
55
      if (attribute.GetType() != typeof(IntInAttribute))
 
56
        throw new Exception("Expecting IntIn attribute");
 
57
    }
 
58
    // Constructor cstype typemap attributes check
 
59
    {
 
60
      ConstructorInfo member = (ConstructorInfo)type.GetConstructors()[0];
 
61
      ParameterInfo parameter = member.GetParameters()[0]; // expecting one parameter
 
62
      if (parameter.Name != "myInt")
 
63
        throw new Exception("Incorrect parameter name");
 
64
      Attribute attribute = Attribute.GetCustomAttributes(parameter)[0];
 
65
      if (attribute.GetType() != typeof(IntInAttribute))
 
66
        throw new Exception("Expecting IntIn attribute");
 
67
    }
 
68
 
 
69
    //
 
70
    // imtype typemap attributechecks
 
71
    //
 
72
    // Global function imtype typemap attributes check
 
73
    Type imclasstype = typeof(csharp_attributesPINVOKE);
 
74
    {
 
75
      MethodInfo member = (MethodInfo)imclasstype.GetMember("GlobalFunction")[0];
 
76
      if (Attribute.GetCustomAttribute(member, typeof(IntegerOutAttribute)) == null)
 
77
        throw new Exception("No IntegerOut attribute for " + member.Name);
 
78
      ParameterInfo parameter = member.GetParameters()[0]; // checking 1st parameter
 
79
      Attribute attribute = Attribute.GetCustomAttributes(parameter)[0];
 
80
      if (attribute.GetType() != typeof(IntegerInAttribute))
 
81
        throw new Exception("Expecting IntegerIn attribute");
 
82
    }
 
83
    // Constant - imtype typemap attributes check
 
84
    {
 
85
      MethodInfo member = (MethodInfo)imclasstype.GetMember("TESTMACRO_get")[0];
 
86
      if (Attribute.GetCustomAttribute(member, typeof(IntegerOutAttribute)) == null)
 
87
        throw new Exception("No IntegerOut attribute for " + member.Name);
 
88
    }
 
89
    // Non-static method imtype typemap attributes check
 
90
    {
 
91
      MethodInfo member = (MethodInfo)imclasstype.GetMember("Stations_Reading")[0];
 
92
      if (Attribute.GetCustomAttribute(member, typeof(IntegerOutAttribute)) == null)
 
93
        throw new Exception("No IntegerOut attribute for " + member.Name);
 
94
      ParameterInfo parameter = member.GetParameters()[1]; // checking 2nd parameter
 
95
      Attribute attribute = Attribute.GetCustomAttributes(parameter)[0];
 
96
      if (attribute.GetType() != typeof(IntegerInAttribute))
 
97
        throw new Exception("Expecting IntegerIn attribute");
 
98
    }
 
99
    // Static method imtype typemap attributes check
 
100
    {
 
101
      MethodInfo member = (MethodInfo)imclasstype.GetMember("Stations_Swindon")[0];
 
102
      if (Attribute.GetCustomAttribute(member, typeof(IntegerOutAttribute)) == null)
 
103
        throw new Exception("No IntegerOut attribute for " + member.Name);
 
104
      ParameterInfo parameter = member.GetParameters()[0]; // checking 1st parameter
 
105
      Attribute attribute = Attribute.GetCustomAttributes(parameter)[0];
 
106
      if (attribute.GetType() != typeof(IntegerInAttribute))
 
107
        throw new Exception("Expecting IntegerIn attribute");
 
108
    }
 
109
 
 
110
    //
 
111
    // attributes feature
 
112
    //
 
113
    Type moretype = typeof(MoreStations);
 
114
 
 
115
    // Constructor attributes feature check
 
116
    {
 
117
      ConstructorInfo member = (ConstructorInfo)moretype.GetConstructors()[0];
 
118
      if (Attribute.GetCustomAttribute(member, typeof(InterCity1Attribute)) == null)
 
119
        throw new Exception("MoreStations::MoreStations attribute failed");
 
120
    }
 
121
    // Non-static method attributes feature check
 
122
    {
 
123
      MethodInfo member = (MethodInfo)moretype.GetMember("Chippenham")[0];
 
124
      if (Attribute.GetCustomAttribute(member, typeof(InterCity2Attribute)) == null)
 
125
        throw new Exception("MoreStations::Chippenham attribute failed");
 
126
    }
 
127
    // Static method attributes feature check
 
128
    {
 
129
      MethodInfo member = (MethodInfo)moretype.GetMember("Bath")[0];
 
130
      if (Attribute.GetCustomAttribute(member, typeof(InterCity3Attribute)) == null)
 
131
        throw new Exception("MoreStations::Bath attribute failed");
 
132
    }
 
133
    // Non-static member variable attributes feature check
 
134
    {
 
135
      PropertyInfo member = (PropertyInfo)moretype.GetProperty("Bristol");
 
136
      if (Attribute.GetCustomAttribute(member, typeof(InterCity4Attribute)) == null)
 
137
        throw new Exception("MoreStations::Bristol attribute failed");
 
138
    }
 
139
    // Static member variable attributes feature check
 
140
    {
 
141
      PropertyInfo member = (PropertyInfo)moretype.GetProperty("WestonSuperMare");
 
142
      if (Attribute.GetCustomAttribute(member, typeof(InterCity5Attribute)) == null)
 
143
        throw new Exception("MoreStations::Bristol attribute failed");
 
144
    }
 
145
    // Global function attributes feature check
 
146
    {
 
147
      MethodInfo member = (MethodInfo)globaltype.GetMember("Paddington")[0];
 
148
      if (Attribute.GetCustomAttribute(member, typeof(InterCity7Attribute)) == null)
 
149
        throw new Exception("MoreStations::Paddington attribute failed");
 
150
    }
 
151
    // Global variables attributes feature check
 
152
    {
 
153
      PropertyInfo member = (PropertyInfo)globaltype.GetProperty("DidcotParkway");
 
154
      if (Attribute.GetCustomAttribute(member, typeof(InterCity8Attribute)) == null)
 
155
        throw new Exception("MoreStations::Paddington attribute failed");
 
156
    }
 
157
 
 
158
    //
 
159
    // csattribute typemaps
 
160
    //
 
161
    // Class csattribute typemap
 
162
    {
 
163
      Object[] attribs = moretype.GetCustomAttributes(true);
 
164
      Eurostar1Attribute tgv = (Eurostar1Attribute)attribs[0];
 
165
      if (tgv == null)
 
166
        throw new Exception("No attribute for MoreStations");
 
167
    }
 
168
    // Nested enum csattribute typemap
 
169
    {
 
170
      MemberInfo member = (MemberInfo)moretype.GetMember("Wales")[0];
 
171
      if (Attribute.GetCustomAttribute(member, typeof(Eurostar2Attribute)) == null)
 
172
        throw new Exception("No attribute for " + member.Name);
 
173
    }
 
174
    // Enum csattribute typemap
 
175
    {
 
176
      Type cymrutype = typeof(Cymru);
 
177
      Object[] attribs = cymrutype.GetCustomAttributes(true);
 
178
      Eurostar3Attribute tgv = (Eurostar3Attribute)attribs[0];
 
179
      if (tgv == null)
 
180
        throw new Exception("No attribute for Cymru");
 
181
    }
 
182
  }
 
183
}
 
184
 
 
185
// Custom attribute classes
 
186
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
187
public class IntInAttribute : Attribute {}
 
188
 
 
189
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
190
public class IntOutAttribute : Attribute {}
 
191
 
 
192
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
193
public class IntegerInAttribute : Attribute {}
 
194
 
 
195
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
196
public class IntegerOutAttribute : Attribute {}
 
197
 
 
198
 
 
199
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
200
public class InterCity1Attribute : Attribute {}
 
201
 
 
202
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
203
public class InterCity2Attribute : Attribute {}
 
204
 
 
205
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
206
public class InterCity3Attribute : Attribute {}
 
207
 
 
208
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
209
public class InterCity4Attribute : Attribute {}
 
210
 
 
211
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
212
public class InterCity5Attribute : Attribute {}
 
213
 
 
214
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
215
public class InterCity6Attribute : Attribute {}
 
216
 
 
217
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
218
public class InterCity7Attribute : Attribute {}
 
219
 
 
220
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
221
public class InterCity8Attribute : Attribute {}
 
222
 
 
223
 
 
224
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
225
public class Eurostar1Attribute : Attribute {}
 
226
 
 
227
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
228
public class Eurostar2Attribute : Attribute {}
 
229
 
 
230
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
231
public class Eurostar3Attribute : Attribute {}
 
232
 
 
233
 
 
234
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
 
235
public class ThreadSafeAttribute : Attribute {
 
236
  public ThreadSafeAttribute(bool safe) {}
 
237
  public ThreadSafeAttribute() {}
 
238
}
 
239