diff options
Diffstat (limited to 'libavutil/adler32.c')
-rw-r--r-- | libavutil/adler32.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/libavutil/adler32.c b/libavutil/adler32.c index 4f2001025b..ee1f70e479 100644 --- a/libavutil/adler32.c +++ b/libavutil/adler32.c @@ -52,22 +52,30 @@ unsigned long av_adler32_update(unsigned long adler, const uint8_t *buf, unsigne } #ifdef TEST +#include <string.h> #include "log.h" #include "timer.h" #define LEN 7001 volatile int checksum; -int main(void){ +int main(int argc, char **argv) +{ int i; char data[LEN]; av_log_set_level(AV_LOG_DEBUG); for(i=0; i<LEN; i++) data[i]= ((i*i)>>3) + 123*i; - for(i=0; i<1000; i++){ - START_TIMER - checksum= av_adler32_update(1, data, LEN); - STOP_TIMER("adler") + + if (argc > 1 && !strcmp(argv[1], "-t")) { + for (i = 0; i < 1000; i++) { + START_TIMER; + checksum = av_adler32_update(1, data, LEN); + STOP_TIMER("adler"); + } + } else { + checksum = av_adler32_update(1, data, LEN); } - av_log(NULL, AV_LOG_DEBUG, "%X == 50E6E508\n", checksum); - return 0; + + av_log(NULL, AV_LOG_DEBUG, "%X (expected 50E6E508)\n", checksum); + return checksum == 0x50e6e508? 0 : 1; } #endif |