X-Git-Url: http://www.average.org/gitweb/?p=pam_pcsc_cr.git;a=blobdiff_plain;f=test_serial.c;fp=test_serial.c;h=b9d5e4bbd7f70d11d3367625d4008a36ccf960b1;hp=0000000000000000000000000000000000000000;hb=ec614a7e3bc846cf9d3477303901759609c8f12f;hpb=ecefc4912f36f9153e63e7e0ee90d8ef69898fed diff --git a/test_serial.c b/test_serial.c new file mode 100644 index 0000000..b9d5e4b --- /dev/null +++ b/test_serial.c @@ -0,0 +1,58 @@ +#include +#include +#include "serial.h" + +int main(int argc, char *argv[]) +{ + char *in[] = { + "My", + "Little", + "Pony", + NULL, + }; + char buffer[256]; + int i, rc; + serializer_t srl; + + if ((rc = serial_init(&srl, buffer, sizeof(buffer)))) { + printf("serial_init rc=%d\n", rc); + return 1; + } + for (i = 0; in[i]; i++) { + int size = strlen(in[i]); + if ((rc = serial_put(&srl, in[i], size)) != size) { + printf("serial_put(..., \"%s\", %d) = %d\n", + in[i], size, rc); + return 1; + } + } + if ((rc = serial_put(&srl, NULL, 0)) != 0) { + printf("serial_put(..., NULL, 0) = %d\n", rc); + return 1; + } + printf("serialized size=%d\n", serial_size(&srl)); + if ((rc = serial_init(&srl, buffer, sizeof(buffer)))) { + printf("second serial_init rc=%d\n", rc); + return 1; + } + for (i = 0; i < 4; i++) { + char item[32]; + memset(item, 0, sizeof(item)); + int size = serial_get(&srl, item, sizeof(item)); + if (size > sizeof(item)) { + printf("serial_get(..., item, %d) = %d\n", + (int)sizeof(item), size); + rc = 1; + } else if (size == 0) { + printf("serial_get(...) = 0\n"); + } else { + printf("serial_get(...) = %d: \"%s\"\n", size, item); + if (memcmp(in[i], item, size)) { + printf("\"%s\" != \"%s\" (%d)\n", + in[i], item, size); + rc = 1; + } + } + } + return rc; +}