tests_lib_test_checksum_CFLAGS = $(TESTS_CFLAGS)
tests_lib_test_checksum_CPPFLAGS = $(TESTS_CPPFLAGS)
tests_lib_test_checksum_LDADD = $(ALL_TESTS_LDADD)
-tests_lib_test_checksum_SOURCES = tests/lib/test_checksum.c
+tests_lib_test_checksum_SOURCES = tests/lib/test_checksum.c tests/helpers/c/prng.c
check_PROGRAMS += tests/lib/test_graph
#include "checksum.h"
#include "network.h"
+#include "prng.h"
struct thread_master *master;
uint8_t buffer[BUFSIZE];
int exercise = 0;
#define EXERCISESTEP 257
- srandom(time(NULL));
+ struct prng *prng = prng_new(0);
while (1) {
uint16_t ospfd, isisd, lib, in_csum, in_csum_res, in_csum_rfc;
- int i, j;
+ int i;
exercise += EXERCISESTEP;
exercise %= MAXDATALEN;
printf("\rexercising length %d\033[K", exercise);
- for (i = 0; i < exercise; i += sizeof(long int)) {
- long int rand = frr_weak_random();
-
- for (j = sizeof(long int); j > 0; j--)
- buffer[i + (sizeof(long int) - j)] =
- (rand >> (j * 8)) & 0xff;
- }
+ for (i = 0; i < exercise; i++)
+ buffer[i] = prng_rand(prng);
in_csum = in_cksum(buffer, exercise);
in_csum_res = in_cksum_optimized(buffer, exercise);
iov[2].iov_len, in_csum_iov, in_csum);
}
+ if (exercise >= FLETCHER_CHECKSUM_VALIDATE)
+ continue;
+
ospfd = ospfd_checksum(buffer, exercise + sizeof(uint16_t),
exercise);
if (verify(buffer, exercise + sizeof(uint16_t)))