Skip to content

Commit 6f83cb8

Browse files
koverstreetKent Overstreet
authored andcommitted
bcachefs: Fix unit & perf tests for snapshots
This finishes updating the unit & perf tests for snapshots - btrees that use snapshots now always require the snapshot field of the start position to be a valid snapshot ID. Signed-off-by: Kent Overstreet <[email protected]>
1 parent 18443cb commit 6f83cb8

File tree

1 file changed

+32
-29
lines changed

1 file changed

+32
-29
lines changed

fs/bcachefs/tests.c

Lines changed: 32 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@ static void delete_test_keys(struct bch_fs *c)
1414
int ret;
1515

1616
ret = bch2_btree_delete_range(c, BTREE_ID_extents,
17-
POS(0, 0), POS(0, U64_MAX),
17+
SPOS(0, 0, U32_MAX),
18+
SPOS(0, U64_MAX, U32_MAX),
1819
NULL);
1920
BUG_ON(ret);
2021

2122
ret = bch2_btree_delete_range(c, BTREE_ID_xattrs,
22-
POS(0, 0), POS(0, U64_MAX),
23+
SPOS(0, 0, U32_MAX),
24+
SPOS(0, U64_MAX, U32_MAX),
2325
NULL);
2426
BUG_ON(ret);
2527
}
@@ -144,7 +146,7 @@ static int test_iterate(struct bch_fs *c, u64 nr)
144146
i = 0;
145147

146148
for_each_btree_key(&trans, iter, BTREE_ID_xattrs,
147-
POS_MIN, 0, k, ret) {
149+
SPOS(0, 0, U32_MAX), 0, k, ret) {
148150
if (k.k->p.inode)
149151
break;
150152

@@ -200,7 +202,7 @@ static int test_iterate_extents(struct bch_fs *c, u64 nr)
200202
i = 0;
201203

202204
for_each_btree_key(&trans, iter, BTREE_ID_extents,
203-
POS_MIN, 0, k, ret) {
205+
SPOS(0, 0, U32_MAX), 0, k, ret) {
204206
BUG_ON(bkey_start_offset(k.k) != i);
205207
i = k.k->p.offset;
206208
}
@@ -254,8 +256,8 @@ static int test_iterate_slots(struct bch_fs *c, u64 nr)
254256

255257
i = 0;
256258

257-
for_each_btree_key(&trans, iter, BTREE_ID_xattrs, POS_MIN,
258-
0, k, ret) {
259+
for_each_btree_key(&trans, iter, BTREE_ID_xattrs,
260+
SPOS(0, 0, U32_MAX), 0, k, ret) {
259261
if (k.k->p.inode)
260262
break;
261263

@@ -270,7 +272,8 @@ static int test_iterate_slots(struct bch_fs *c, u64 nr)
270272

271273
i = 0;
272274

273-
for_each_btree_key(&trans, iter, BTREE_ID_xattrs, POS_MIN,
275+
for_each_btree_key(&trans, iter, BTREE_ID_xattrs,
276+
SPOS(0, 0, U32_MAX),
274277
BTREE_ITER_SLOTS, k, ret) {
275278
BUG_ON(k.k->p.offset != i);
276279
BUG_ON(bkey_deleted(k.k) != (i & 1));
@@ -319,8 +322,8 @@ static int test_iterate_slots_extents(struct bch_fs *c, u64 nr)
319322

320323
i = 0;
321324

322-
for_each_btree_key(&trans, iter, BTREE_ID_extents, POS_MIN,
323-
0, k, ret) {
325+
for_each_btree_key(&trans, iter, BTREE_ID_extents,
326+
SPOS(0, 0, U32_MAX), 0, k, ret) {
324327
BUG_ON(bkey_start_offset(k.k) != i + 8);
325328
BUG_ON(k.k->size != 8);
326329
i += 16;
@@ -333,7 +336,8 @@ static int test_iterate_slots_extents(struct bch_fs *c, u64 nr)
333336

334337
i = 0;
335338

336-
for_each_btree_key(&trans, iter, BTREE_ID_extents, POS_MIN,
339+
for_each_btree_key(&trans, iter, BTREE_ID_extents,
340+
SPOS(0, 0, U32_MAX),
337341
BTREE_ITER_SLOTS, k, ret) {
338342
BUG_ON(bkey_deleted(k.k) != !(i % 16));
339343

@@ -361,7 +365,8 @@ static int test_peek_end(struct bch_fs *c, u64 nr)
361365
struct bkey_s_c k;
362366

363367
bch2_trans_init(&trans, c, 0, 0);
364-
bch2_trans_iter_init(&trans, &iter, BTREE_ID_xattrs, POS_MIN, 0);
368+
bch2_trans_iter_init(&trans, &iter, BTREE_ID_xattrs,
369+
SPOS(0, 0, U32_MAX), 0);
365370

366371
k = bch2_btree_iter_peek(&iter);
367372
BUG_ON(k.k);
@@ -381,7 +386,8 @@ static int test_peek_end_extents(struct bch_fs *c, u64 nr)
381386
struct bkey_s_c k;
382387

383388
bch2_trans_init(&trans, c, 0, 0);
384-
bch2_trans_iter_init(&trans, &iter, BTREE_ID_extents, POS_MIN, 0);
389+
bch2_trans_iter_init(&trans, &iter, BTREE_ID_extents,
390+
SPOS(0, 0, U32_MAX), 0);
385391

386392
k = bch2_btree_iter_peek(&iter);
387393
BUG_ON(k.k);
@@ -404,8 +410,6 @@ static int insert_test_extent(struct bch_fs *c,
404410
struct bkey_i_cookie k;
405411
int ret;
406412

407-
//pr_info("inserting %llu-%llu v %llu", start, end, test_version);
408-
409413
bkey_cookie_init(&k.k_i);
410414
k.k_i.k.p.offset = end;
411415
k.k_i.k.p.snapshot = U32_MAX;
@@ -541,10 +545,11 @@ static int rand_lookup(struct bch_fs *c, u64 nr)
541545
u64 i;
542546

543547
bch2_trans_init(&trans, c, 0, 0);
544-
bch2_trans_iter_init(&trans, &iter, BTREE_ID_xattrs, POS_MIN, 0);
548+
bch2_trans_iter_init(&trans, &iter, BTREE_ID_xattrs,
549+
SPOS(0, 0, U32_MAX), 0);
545550

546551
for (i = 0; i < nr; i++) {
547-
bch2_btree_iter_set_pos(&iter, POS(0, test_rand()));
552+
bch2_btree_iter_set_pos(&iter, SPOS(0, test_rand(), U32_MAX));
548553

549554
k = bch2_btree_iter_peek(&iter);
550555
ret = bkey_err(k);
@@ -567,7 +572,7 @@ static int rand_mixed_trans(struct btree_trans *trans,
567572
struct bkey_s_c k;
568573
int ret;
569574

570-
bch2_btree_iter_set_pos(iter, POS(0, pos));
575+
bch2_btree_iter_set_pos(iter, SPOS(0, pos, U32_MAX));
571576

572577
k = bch2_btree_iter_peek(iter);
573578
ret = bkey_err(k);
@@ -594,7 +599,8 @@ static int rand_mixed(struct bch_fs *c, u64 nr)
594599
u64 i, rand;
595600

596601
bch2_trans_init(&trans, c, 0, 0);
597-
bch2_trans_iter_init(&trans, &iter, BTREE_ID_xattrs, POS_MIN, 0);
602+
bch2_trans_iter_init(&trans, &iter, BTREE_ID_xattrs,
603+
SPOS(0, 0, U32_MAX), 0);
598604

599605
for (i = 0; i < nr; i++) {
600606
rand = test_rand();
@@ -614,7 +620,6 @@ static int rand_mixed(struct bch_fs *c, u64 nr)
614620
static int __do_delete(struct btree_trans *trans, struct bpos pos)
615621
{
616622
struct btree_iter iter;
617-
struct bkey_i delete;
618623
struct bkey_s_c k;
619624
int ret = 0;
620625

@@ -628,10 +633,7 @@ static int __do_delete(struct btree_trans *trans, struct bpos pos)
628633
if (!k.k)
629634
goto err;
630635

631-
bkey_init(&delete.k);
632-
delete.k.p = k.k->p;
633-
634-
ret = bch2_trans_update(trans, &iter, &delete, 0);
636+
ret = bch2_btree_delete_at(trans, &iter, 0);
635637
err:
636638
bch2_trans_iter_exit(trans, &iter);
637639
return ret;
@@ -646,7 +648,7 @@ static int rand_delete(struct bch_fs *c, u64 nr)
646648
bch2_trans_init(&trans, c, 0, 0);
647649

648650
for (i = 0; i < nr; i++) {
649-
struct bpos pos = POS(0, test_rand());
651+
struct bpos pos = SPOS(0, test_rand(), U32_MAX);
650652

651653
ret = __bch2_trans_do(&trans, NULL, NULL, 0,
652654
__do_delete(&trans, pos));
@@ -673,7 +675,7 @@ static int seq_insert(struct bch_fs *c, u64 nr)
673675

674676
bch2_trans_init(&trans, c, 0, 0);
675677

676-
for_each_btree_key(&trans, iter, BTREE_ID_xattrs, POS_MIN,
678+
for_each_btree_key(&trans, iter, BTREE_ID_xattrs, SPOS(0, 0, U32_MAX),
677679
BTREE_ITER_SLOTS|BTREE_ITER_INTENT, k, ret) {
678680
insert.k.p = iter.pos;
679681

@@ -703,7 +705,8 @@ static int seq_lookup(struct bch_fs *c, u64 nr)
703705

704706
bch2_trans_init(&trans, c, 0, 0);
705707

706-
for_each_btree_key(&trans, iter, BTREE_ID_xattrs, POS_MIN, 0, k, ret)
708+
for_each_btree_key(&trans, iter, BTREE_ID_xattrs,
709+
SPOS(0, 0, U32_MAX), 0, k, ret)
707710
;
708711
bch2_trans_iter_exit(&trans, &iter);
709712

@@ -720,7 +723,8 @@ static int seq_overwrite(struct bch_fs *c, u64 nr)
720723

721724
bch2_trans_init(&trans, c, 0, 0);
722725

723-
for_each_btree_key(&trans, iter, BTREE_ID_xattrs, POS_MIN,
726+
for_each_btree_key(&trans, iter, BTREE_ID_xattrs,
727+
SPOS(0, 0, U32_MAX),
724728
BTREE_ITER_INTENT, k, ret) {
725729
struct bkey_i_cookie u;
726730

@@ -745,8 +749,7 @@ static int seq_delete(struct bch_fs *c, u64 nr)
745749
int ret;
746750

747751
ret = bch2_btree_delete_range(c, BTREE_ID_xattrs,
748-
POS(0, 0), POS(0, U64_MAX),
749-
NULL);
752+
SPOS(0, 0, U32_MAX), POS_MAX, NULL);
750753
if (ret)
751754
bch_err(c, "error in seq_delete: %i", ret);
752755
return ret;

0 commit comments

Comments
 (0)