diff options
author | Suren A. Chilingaryan <csa@suren.me> | 2013-11-25 21:13:53 +0100 |
---|---|---|
committer | Suren A. Chilingaryan <csa@suren.me> | 2013-11-25 21:13:53 +0100 |
commit | ba90c7c942f39b83986e4ed899def33ce79e2f1d (patch) | |
tree | 155b0762262642f8caa83019efd6fc1f8d7f36f9 /apps/compare_to_value.c | |
parent | ba1ef9d055cbb94cd06c92709546174047f02a15 (diff) | |
download | ipecamera-ba90c7c942f39b83986e4ed899def33ce79e2f1d.tar.gz ipecamera-ba90c7c942f39b83986e4ed899def33ce79e2f1d.tar.bz2 ipecamera-ba90c7c942f39b83986e4ed899def33ce79e2f1d.tar.xz ipecamera-ba90c7c942f39b83986e4ed899def33ce79e2f1d.zip |
Some tests are added
Diffstat (limited to 'apps/compare_to_value.c')
-rw-r--r-- | apps/compare_to_value.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/apps/compare_to_value.c b/apps/compare_to_value.c new file mode 100644 index 0000000..b6df9c0 --- /dev/null +++ b/apps/compare_to_value.c @@ -0,0 +1,65 @@ +#include <stdio.h> +#include <stdlib.h> +#include <stdint.h> + +int main(int argc, char *argv[]) { + long i, j, size, num; + size_t count = 0, total = 0; + int offset = 0, toread = 1, toskip = 0; + uint32_t value; + uint32_t *buf; + + if ((argc != 4)&&(argc != 7)) { + printf("Usage: %s <file> <dwords> <value> [offset_dwords read_dwords skip_dwords] \n", argv[0]); + exit(0); + } + + FILE *f = fopen(argv[1], "r"); + if (!f) { + printf("Can't open %s\n", argv[1]); + exit(1); + } + + size = atol(argv[2]); + if (size <= 0) { + printf("Can't parse size %s\n", argv[2]); + exit(1); + } + + if (sscanf(argv[3], "%x", &value) != 1) { + printf("Can't parse register %s\n", argv[3]); + exit(1); + } + + buf = malloc(size * sizeof(uint32_t)); + if (!buf) { + printf("Can't allocate %lu bytes of memory\n", size * sizeof(uint32_t)); + exit(1); + } + + if (argc == 7) { + offset = atoi(argv[4]); + toread = atoi(argv[5]); + toskip = atoi(argv[6]); + } + + + num = fread(buf, 4, size, f); + if (num != size) { + printf("Only %lu of %lu dwords in the file\n", num, size); + } + fclose(f); + + for (i = offset; i < size; i += toskip) { + for (j = 0; j < toread; j++, i++) { + total++; + if (buf[i] != value) { + count++; + } + } + } + free(buf); + + printf("%lu of %lu is wrong\n", count, total); + +} |