void test_crypto (enum transform which) { u_int8_t buf[256]; struct crypto_xf *xf; struct keystate *ks; enum cryptoerr err; xf = crypto_get (which); printf ("Testing %s: ", xf->name); SET_KEY (buf, xf->keymax); ks = crypto_init (xf, buf, xf->keymax, &err); if (!ks) { printf ("FAILED (init %d)", err); goto fail; } SET_KEY (buf, sizeof (buf)); crypto_init_iv (ks, buf, xf->blocksize); crypto_encrypt (ks, buf, sizeof (buf)); dump_buf (buf, sizeof buf); crypto_decrypt (ks, buf, sizeof (buf)); if (!verify_buf (buf, sizeof (buf))) printf ("FAILED "); else printf ("OKAY "); free (ks); fail: printf ("\n"); return; }
static int recv_msg(int size) { struct pollfd fds; int offset, ret; if (use_async) { fds.fd = rs; fds.events = POLLIN; } for (offset = 0; offset < size; ) { if (use_async) { ret = do_poll(&fds, poll_timeout); if (ret) return ret; } ret = rrecv(rs, buf + offset, size - offset, flags); if (ret > 0) { offset += ret; } else if (errno != EWOULDBLOCK && errno != EAGAIN) { perror("rrecv"); return ret; } } if (verify) { ret = verify_buf(buf, size); if (ret) return ret; } return 0; }
static int recv_xfer(int size, uint8_t marker) { int ret; while (*poll_byte != marker) ; if (verify) { ret = verify_buf(buf, size - 1); if (ret) return ret; } return 0; }
bool test_lwext4_file_test(uint8_t *rw_buff, uint32_t rw_size, uint32_t rw_count) { int r; size_t size; uint32_t i; long int start; long int stop; long int diff; uint32_t kbps; uint64_t size_bytes; ext4_file f; printf("file_test:\n"); printf(" rw size: %" PRIu32 "\n", rw_size); printf(" rw count: %" PRIu32 "\n", rw_count); /*Add hello world file.*/ r = ext4_fopen(&f, "/mp/hello.txt", "wb"); r = ext4_fwrite(&f, "Hello World !\n", strlen("Hello World !\n"), 0); r = ext4_fclose(&f); io_timings_clear(); start = get_ms(); r = ext4_fopen(&f, "/mp/test1", "wb"); if (r != EOK) { printf("ext4_fopen ERROR = %d\n", r); return false; } printf("ext4_write: %" PRIu32 " * %" PRIu32 " ...\n", rw_size, rw_count); for (i = 0; i < rw_count; ++i) { memset(rw_buff, i % 10 + '0', rw_size); r = ext4_fwrite(&f, rw_buff, rw_size, &size); if ((r != EOK) || (size != rw_size)) break; } if (i != rw_count) { printf(" file_test: rw_count = %" PRIu32 "\n", i); return false; } stop = get_ms(); diff = stop - start; size_bytes = rw_size * rw_count; size_bytes = (size_bytes * 1000) / 1024; kbps = (size_bytes) / (diff + 1); printf(" write time: %d ms\n", (int)diff); printf(" write speed: %" PRIu32 " KB/s\n", kbps); printf_io_timings(diff); r = ext4_fclose(&f); io_timings_clear(); start = get_ms(); r = ext4_fopen(&f, "/mp/test1", "r+"); if (r != EOK) { printf("ext4_fopen ERROR = %d\n", r); return false; } printf("ext4_read: %" PRIu32 " * %" PRIu32 " ...\n", rw_size, rw_count); for (i = 0; i < rw_count; ++i) { r = ext4_fread(&f, rw_buff, rw_size, &size); if ((r != EOK) || (size != rw_size)) break; if (verify_buf(rw_buff, rw_size, i % 10 + '0')) break; } if (i != rw_count) { printf(" file_test: rw_count = %" PRIu32 "\n", i); return false; } stop = get_ms(); diff = stop - start; size_bytes = rw_size * rw_count; size_bytes = (size_bytes * 1000) / 1024; kbps = (size_bytes) / (diff + 1); printf(" read time: %d ms\n", (int)diff); printf(" read speed: %d KB/s\n", (int)kbps); printf_io_timings(diff); r = ext4_fclose(&f); return true; }