int main(int argc, char *argv[]) { static void (*test_functions[])(void) = { test_compression, NULL }; if (argc == 3) { test_compress_file(argv[1], argv[2]); return 0; } return test_run(test_functions); }
int main(int argc, char *argv[]) { int i = 0, ret = 0, fin_ret = 0; uint32_t in_size = 0, offset = 0; uint8_t *in_buf; #ifndef VERBOSE setbuf(stdout, NULL); #endif printf("Window Size: %d K\n", HIST_SIZE); printf("Test Seed : %d\n", TEST_SEED); printf("Randoms : %d\n", RANDOMS); srand(TEST_SEED); in_buf = malloc(IBUF_SIZE); if (in_buf == NULL) { fprintf(stderr, "Can't allocate in_buf memory\n"); return -1; } if (argc > 1) { printf("igzip_rand_test files: "); for (i = 1; i < argc; i++) { ret |= test_compress_file(argv[i]); if (ret) return ret; } printf("................"); printf("%s\n", ret ? "Fail" : "Pass"); fin_ret |= ret; } printf("igzip_rand_test stateless: "); ret = test_compress_stateless((uint8_t *) str1, sizeof(str1)); if (ret) return ret; ret |= test_compress_stateless((uint8_t *) str2, sizeof(str2)); if (ret) return ret; for (i = 0; i < RANDOMS; i++) { in_size = rand() % (IBUF_SIZE + 1); offset = rand() % (IBUF_SIZE + 1 - in_size); in_buf += offset; create_rand_repeat_data(in_buf, in_size); ret |= test_compress_stateless(in_buf, in_size); in_buf -= offset; if (i % (RANDOMS / 16) == 0) printf("."); if (ret) return ret; } fin_ret |= ret; printf("%s\n", ret ? "Fail" : "Pass"); printf("igzip_rand_test NO_FLUSH: "); ret = test_compress((uint8_t *) str1, sizeof(str1), NO_FLUSH); if (ret) return ret; ret |= test_compress((uint8_t *) str2, sizeof(str2), NO_FLUSH); if (ret) return ret; for (i = 0; i < RANDOMS; i++) { in_size = rand() % (IBUF_SIZE + 1); offset = rand() % (IBUF_SIZE + 1 - in_size); in_buf += offset; create_rand_repeat_data(in_buf, in_size); ret |= test_compress(in_buf, in_size, NO_FLUSH); in_buf -= offset; if (i % (RANDOMS / 16) == 0) printf("."); if (ret) return ret; } fin_ret |= ret; printf("%s\n", ret ? "Fail" : "Pass"); printf("igzip_rand_test SYNC_FLUSH: "); ret = test_compress((uint8_t *) str1, sizeof(str1), SYNC_FLUSH); if (ret) return ret; ret |= test_compress((uint8_t *) str2, sizeof(str2), SYNC_FLUSH); if (ret) return ret; for (i = 0; i < RANDOMS; i++) { in_size = rand() % (IBUF_SIZE + 1); offset = rand() % (IBUF_SIZE + 1 - in_size); in_buf += offset; create_rand_repeat_data(in_buf, in_size); ret |= test_compress(in_buf, in_size, SYNC_FLUSH); in_buf -= offset; if (i % (RANDOMS / 16) == 0) printf("."); if (ret) return ret; } fin_ret |= ret; printf("%s\n", ret ? "Fail" : "Pass"); printf("igzip rand test finished: %s\n", fin_ret ? "Some tests failed" : "All tests passed"); return fin_ret != IGZIP_COMP_OK; }