57 lines
1.3 KiB
C
57 lines
1.3 KiB
C
/* This program tests the basic RPC to see if it works. */
|
|
|
|
#include <amoeba.h>
|
|
#include "header.h"
|
|
|
|
#define MAX_TRIALS 1000
|
|
|
|
char buffer1[BUF_SIZE], buffer2[BUF_SIZE];
|
|
|
|
main(argc, argv)
|
|
int argc;
|
|
char *argv[];
|
|
{
|
|
|
|
header hdr1, hdr2;
|
|
int cnt, i, base = 0, size, errors, blocks, iterations = 0;
|
|
long bad_trans = 0;
|
|
|
|
if (argc != 2) {
|
|
printf("Usage: client1 portname\n");
|
|
exit(1);
|
|
}
|
|
|
|
/* Copy the filename into the start of the buffer. */
|
|
strncpy(&hdr1.h_port, argv[1], PORTSIZE);
|
|
hdr1.h_command = WORK;
|
|
|
|
printf("Number of tests performed = %5d ", 0);
|
|
|
|
while (iterations < MAX_TRIALS) {
|
|
/* Initialize the buffer. */
|
|
for (i = 0; i < BUF_SIZE; i++) buffer1[i] = base + i;
|
|
|
|
size = trans(&hdr1, buffer1, BUF_SIZE, &hdr2, buffer2, BUF_SIZE);
|
|
if (size < 0) {
|
|
printf("\nTransaction failed. Error = %d. ", size);
|
|
printf("Hit F1 to see if AMTASK running.\n");
|
|
exit(1);
|
|
}
|
|
|
|
/* Check reply. */
|
|
errors = 0;
|
|
for (i = 0; i < BUF_SIZE; i++)
|
|
if ( (buffer2[i]&0377) != ( (buffer1[i]+1)&0377)) errors++;
|
|
if (errors > 0) bad_trans++;
|
|
blocks++;
|
|
base++;
|
|
iterations++;
|
|
if (iterations % 10 == 0) printf("\b\b\b\b\b\b%5d ", iterations);
|
|
}
|
|
|
|
/* Test done. Send null trans to tell server. Report on errors. */
|
|
hdr1.h_command = QUIT;
|
|
trans(&hdr1, buffer1, 0, &hdr2, buffer2, BUF_SIZE);
|
|
printf("\b. Number of errors = %d.\n", bad_trans);
|
|
}
|