Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: tests/srpc/srpc_test.c

Issue 5622003: Restructure the structs/unions involved in SRPC argument passing. This will... (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: '' Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tests/srpc/srpc_nrd_server.c ('k') | tests/srpc_hw/srpc_hw.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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 }
OLDNEW
« no previous file with comments | « tests/srpc/srpc_nrd_server.c ('k') | tests/srpc_hw/srpc_hw.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698