summaryrefslogtreecommitdiff
path: root/libavutil/adler32.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavutil/adler32.c')
-rw-r--r--libavutil/adler32.c22
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