| 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 |