Fixed unhelpful coredump when parsing (invalid) command-line arguments,
[dyninst.git] / igen / tests / clientPVM.C
1 #include <rpc/xdr.h>
2 #include <unistd.h>
3 #include <assert.h>
4 #include "testPVM.CLNT.h"
5
6 char * str1 = "A Test String with server words in it";
7 char * str2 = "Different String";
8
9 int numbers[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
10 int_Array vect;
11
12 main()
13 {
14     int i;
15     int fd;
16     int eid;
17     int total;
18     intStruct is;
19     testUser *remote;
20
21     remote = new testUser(NULL, "serverPVM", NULL, 0);
22     // remote = new testUser();
23     
24     if (remote->get_error() == -1)
25       {
26         printf ("client could not get parent id \n");
27         exit(0);
28       }
29
30     remote->nullNull();
31
32     assert(remote->intNull() == 0);
33
34     remote->nullStruct(is);
35
36     assert(strlen(str1) == remote->intString(str1));
37
38     str2 = remote->stringString(str1);
39     assert(!strcmp(str2, str1));
40
41     assert(remote->add(1, 1) == 2);
42     assert(remote->add(-1, -13) == -14);
43
44     vect.count = sizeof(numbers)/sizeof(int);
45     vect.data = numbers;
46     for (i=0, total = 0; i < vect.count; i++) {
47         total += numbers[i];
48     }
49     assert(remote->sumVector(vect) == total);
50
51     remote->triggerAsyncUpcall(-10);
52
53     for (i=0; i < 500; i++) {
54         remote->add(1, i);
55     }
56     printf("RPC test1 passed\n");
57     delete (remote);
58     pvm_exit();
59 }
60
61
62 void testUser::asyncUpcall(int val)
63 {
64     printf("asyncUpcall called with value = %d\n", val);
65 }