projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
t/axmap: update to catch recent bugs
[fio.git]
/
t
/
axmap.c
diff --git
a/t/axmap.c
b/t/axmap.c
index 3f6043dbfe0e5af49182691dc747aaa1c7e6ff80..27fdaa73922526b92e9e25fd5ff59cfb63d2f59c 100644
(file)
--- a/
t/axmap.c
+++ b/
t/axmap.c
@@
-6,10
+6,7
@@
#include <inttypes.h>
#include "../lib/lfsr.h"
#include <inttypes.h>
#include "../lib/lfsr.h"
-
-struct axmap;
-void axmap_set(struct axmap *, uint64_t);
-struct axmap *axmap_new(uint64_t size);
+#include "../lib/axmap.h"
void *smalloc(size_t size)
{
void *smalloc(size_t size)
{
@@
-24,8
+21,9
@@
void sfree(void *ptr)
int main(int argc, char *argv[])
{
struct fio_lfsr lfsr;
int main(int argc, char *argv[])
{
struct fio_lfsr lfsr;
- size_t size = (1UL << 28) - 200;
+ size_t
osize,
size = (1UL << 28) - 200;
struct axmap *map;
struct axmap *map;
+ uint64_t ff;
int seed = 1;
if (argc > 1) {
int seed = 1;
if (argc > 1) {
@@
-38,13
+36,23
@@
int main(int argc, char *argv[])
lfsr_init(&lfsr, size, seed);
map = axmap_new(size);
lfsr_init(&lfsr, size, seed);
map = axmap_new(size);
+ osize = size;
while (size--) {
uint64_t val;
while (size--) {
uint64_t val;
- lfsr_next(&lfsr, &val);
+ if (lfsr_next(&lfsr, &val, osize)) {
+ printf("lfsr: short loop\n");
+ break;
+ }
axmap_set(map, val);
}
axmap_set(map, val);
}
+ ff = axmap_next_free(map, osize);
+ if (ff != (uint64_t) -1ULL) {
+ printf("axmap_next_free broken: got %llu\n", (unsigned long long) ff);
+ return 1;
+ }
+
return 0;
}
return 0;
}