OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2008 The Native Client Authors. All rights reserved. | 2 * Copyright 2008 The Native Client Authors. All rights reserved. |
3 * Use of this source code is governed by a BSD-style license that can | 3 * Use of this source code is governed by a BSD-style license that can |
4 * be found in the LICENSE file. | 4 * be found in the LICENSE file. |
5 */ | 5 */ |
6 | 6 |
7 /* | 7 /* |
8 * Interface test for simple rpc (SRPC). Tests passing of all supported | 8 * Interface test for simple rpc (SRPC). Tests passing of all supported |
9 * parameter and return types. | 9 * parameter and return types. |
10 * | 10 * |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 done->Run(done); | 99 done->Run(done); |
100 } | 100 } |
101 | 101 |
102 /* | 102 /* |
103 * The test for string returns the length of the string. | 103 * The test for string returns the length of the string. |
104 */ | 104 */ |
105 void StringMethod(NaClSrpcRpc *rpc, | 105 void StringMethod(NaClSrpcRpc *rpc, |
106 NaClSrpcArg **in_args, | 106 NaClSrpcArg **in_args, |
107 NaClSrpcArg **out_args, | 107 NaClSrpcArg **out_args, |
108 NaClSrpcClosure *done) { | 108 NaClSrpcClosure *done) { |
109 out_args[0]->u.ival = strlen(in_args[0]->u.sval.str); | 109 out_args[0]->u.ival = strlen(in_args[0]->arrays.str); |
110 rpc->result = NACL_SRPC_RESULT_OK; | 110 rpc->result = NACL_SRPC_RESULT_OK; |
111 done->Run(done); | 111 done->Run(done); |
112 } | 112 } |
113 | 113 |
114 /* | 114 /* |
115 * Second, tests for array argument passing and return. | 115 * Second, tests for array argument passing and return. |
116 * All the array methods reverse their input arrays and return them. | 116 * All the array methods reverse their input arrays and return them. |
117 * If the counts don't match, return an error. | 117 * If the counts don't match, return an error. |
118 */ | 118 */ |
119 | 119 |
120 void CharArrayMethod(NaClSrpcRpc *rpc, | 120 void CharArrayMethod(NaClSrpcRpc *rpc, |
121 NaClSrpcArg **in_args, | 121 NaClSrpcArg **in_args, |
122 NaClSrpcArg **out_args, | 122 NaClSrpcArg **out_args, |
123 NaClSrpcClosure *done) { | 123 NaClSrpcClosure *done) { |
124 int i, length; | 124 int i, length; |
125 if (out_args[0]->u.caval.count != in_args[0]->u.caval.count) { | 125 if (out_args[0]->u.count != in_args[0]->u.count) { |
126 printf("CharArrayMethod: count mismatch: in=%d out=%d\n", | 126 printf("CharArrayMethod: count mismatch: in=%d out=%d\n", |
127 (int) in_args[0]->u.caval.count, (int) out_args[0]->u.caval.count); | 127 (int) in_args[0]->u.count, (int) out_args[0]->u.count); |
128 rpc->result = NACL_SRPC_RESULT_APP_ERROR; | 128 rpc->result = NACL_SRPC_RESULT_APP_ERROR; |
129 done->Run(done); | 129 done->Run(done); |
130 } | 130 } |
131 length = in_args[0]->u.caval.count; | 131 length = in_args[0]->u.count; |
132 for (i = 0; i < length; i++) { | 132 for (i = 0; i < length; i++) { |
133 out_args[0]->u.caval.carr[length - i - 1] = in_args[0]->u.caval.carr[i]; | 133 out_args[0]->arrays.carr[length - i - 1] = in_args[0]->arrays.carr[i]; |
134 } | 134 } |
135 rpc->result = NACL_SRPC_RESULT_OK; | 135 rpc->result = NACL_SRPC_RESULT_OK; |
136 done->Run(done); | 136 done->Run(done); |
137 } | 137 } |
138 | 138 |
139 void DoubleArrayMethod(NaClSrpcRpc *rpc, | 139 void DoubleArrayMethod(NaClSrpcRpc *rpc, |
140 NaClSrpcArg **in_args, | 140 NaClSrpcArg **in_args, |
141 NaClSrpcArg **out_args, | 141 NaClSrpcArg **out_args, |
142 NaClSrpcClosure *done) { | 142 NaClSrpcClosure *done) { |
143 int i, length; | 143 int i, length; |
144 if (out_args[0]->u.daval.count != in_args[0]->u.daval.count) { | 144 if (out_args[0]->u.count != in_args[0]->u.count) { |
145 rpc->result = NACL_SRPC_RESULT_APP_ERROR; | 145 rpc->result = NACL_SRPC_RESULT_APP_ERROR; |
146 done->Run(done); | 146 done->Run(done); |
147 } | 147 } |
148 length = in_args[0]->u.daval.count; | 148 length = in_args[0]->u.count; |
149 for (i = 0; i < length; i++) { | 149 for (i = 0; i < length; i++) { |
150 out_args[0]->u.daval.darr[length - i - 1] = in_args[0]->u.daval.darr[i]; | 150 out_args[0]->arrays.darr[length - i - 1] = in_args[0]->arrays.darr[i]; |
151 } | 151 } |
152 rpc->result = NACL_SRPC_RESULT_OK; | 152 rpc->result = NACL_SRPC_RESULT_OK; |
153 done->Run(done); | 153 done->Run(done); |
154 } | 154 } |
155 | 155 |
156 void IntArrayMethod(NaClSrpcRpc *rpc, | 156 void IntArrayMethod(NaClSrpcRpc *rpc, |
157 NaClSrpcArg **in_args, | 157 NaClSrpcArg **in_args, |
158 NaClSrpcArg **out_args, | 158 NaClSrpcArg **out_args, |
159 NaClSrpcClosure *done) { | 159 NaClSrpcClosure *done) { |
160 int i, length; | 160 int i, length; |
161 if (out_args[0]->u.iaval.count != in_args[0]->u.iaval.count) { | 161 if (out_args[0]->u.count != in_args[0]->u.count) { |
162 rpc->result = NACL_SRPC_RESULT_APP_ERROR; | 162 rpc->result = NACL_SRPC_RESULT_APP_ERROR; |
163 done->Run(done); | 163 done->Run(done); |
164 } | 164 } |
165 length = in_args[0]->u.iaval.count; | 165 length = in_args[0]->u.count; |
166 for (i = 0; i < length; i++) { | 166 for (i = 0; i < length; i++) { |
167 out_args[0]->u.iaval.iarr[length - i - 1] = in_args[0]->u.iaval.iarr[i]; | 167 out_args[0]->arrays.iarr[length - i - 1] = in_args[0]->arrays.iarr[i]; |
168 } | 168 } |
169 rpc->result = NACL_SRPC_RESULT_OK; | 169 rpc->result = NACL_SRPC_RESULT_OK; |
170 done->Run(done); | 170 done->Run(done); |
171 } | 171 } |
172 | 172 |
173 void LongArrayMethod(NaClSrpcRpc *rpc, | 173 void LongArrayMethod(NaClSrpcRpc *rpc, |
174 NaClSrpcArg **in_args, | 174 NaClSrpcArg **in_args, |
175 NaClSrpcArg **out_args, | 175 NaClSrpcArg **out_args, |
176 NaClSrpcClosure *done) { | 176 NaClSrpcClosure *done) { |
177 int i, length; | 177 int i, length; |
178 if (out_args[0]->u.laval.count != in_args[0]->u.laval.count) { | 178 if (out_args[0]->u.count != in_args[0]->u.count) { |
179 rpc->result = NACL_SRPC_RESULT_APP_ERROR; | 179 rpc->result = NACL_SRPC_RESULT_APP_ERROR; |
180 done->Run(done); | 180 done->Run(done); |
181 } | 181 } |
182 length = in_args[0]->u.laval.count; | 182 length = in_args[0]->u.count; |
183 for (i = 0; i < length; i++) { | 183 for (i = 0; i < length; i++) { |
184 out_args[0]->u.laval.larr[length - i - 1] = in_args[0]->u.laval.larr[i]; | 184 out_args[0]->arrays.larr[length - i - 1] = in_args[0]->arrays.larr[i]; |
185 } | 185 } |
186 rpc->result = NACL_SRPC_RESULT_OK; | 186 rpc->result = NACL_SRPC_RESULT_OK; |
187 done->Run(done); | 187 done->Run(done); |
188 } | 188 } |
189 | 189 |
190 /* | 190 /* |
191 * A null RPC to test throughput and latency. | 191 * A null RPC to test throughput and latency. |
192 */ | 192 */ |
193 void NullMethod(NaClSrpcRpc *rpc, | 193 void NullMethod(NaClSrpcRpc *rpc, |
194 NaClSrpcArg **in_args, | 194 NaClSrpcArg **in_args, |
(...skipping 19 matching lines...) Expand all Loading... |
214 "Der Gipfel des Berges funkelt," | 214 "Der Gipfel des Berges funkelt," |
215 "Im Abendsonnenschein." | 215 "Im Abendsonnenschein." |
216 "Die schoenste Jungfrau sitzet" | 216 "Die schoenste Jungfrau sitzet" |
217 "Dort oben wunderbar," | 217 "Dort oben wunderbar," |
218 "Ihr gold'nes Geschmeide blitzet," | 218 "Ihr gold'nes Geschmeide blitzet," |
219 "Sie kaemmt ihr goldenes Haar," | 219 "Sie kaemmt ihr goldenes Haar," |
220 "Sie kaemmt es mit goldenem Kamme," | 220 "Sie kaemmt es mit goldenem Kamme," |
221 "Und singt ein Lied dabei;" | 221 "Und singt ein Lied dabei;" |
222 "Das hat eine wundersame," | 222 "Das hat eine wundersame," |
223 "Gewalt'ge Melodei."; | 223 "Gewalt'ge Melodei."; |
224 out_args[0]->u.sval.str = strdup(string + in_args[0]->u.ival); | 224 out_args[0]->arrays.str = strdup(string + in_args[0]->u.ival); |
225 rpc->result = NACL_SRPC_RESULT_OK; | 225 rpc->result = NACL_SRPC_RESULT_OK; |
226 done->Run(done); | 226 done->Run(done); |
227 } | 227 } |
228 | 228 |
229 /* | 229 /* |
230 * A method to receive a handle (descriptor). | 230 * A method to receive a handle (descriptor). |
231 */ | 231 */ |
232 void HandleMethod(NaClSrpcRpc *rpc, | 232 void HandleMethod(NaClSrpcRpc *rpc, |
233 NaClSrpcArg **in_args, | 233 NaClSrpcArg **in_args, |
234 NaClSrpcArg **out_args, | 234 NaClSrpcArg **out_args, |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
300 int main() { | 300 int main() { |
301 if (!NaClSrpcModuleInit()) { | 301 if (!NaClSrpcModuleInit()) { |
302 return 1; | 302 return 1; |
303 } | 303 } |
304 if (!NaClSrpcAcceptClientConnection(srpc_methods)) { | 304 if (!NaClSrpcAcceptClientConnection(srpc_methods)) { |
305 return 1; | 305 return 1; |
306 } | 306 } |
307 NaClSrpcModuleFini(); | 307 NaClSrpcModuleFini(); |
308 return 0; | 308 return 0; |
309 } | 309 } |
OLD | NEW |