|
|
1.1 root 1: export PATH
2: x=$1
3: if test $# = 0
4: then
5: echo verify rec-cnt
6: exit 1
7: fi
8: echo 1. loading a btree with $x empty records
9: cbt creat junk
10: awk '{for(i = 0; i < $1; i++) printf "%8.8d\n", i}' <<! | cbt build junk
11: $x
12: !
13: echo 1. does report think there are $x records
14: cbt report junk
15: echo 2. check them with cat, it will report errors
16: cbt cat junk | awk 'length != 9 || $0+0 != NR-1 {print length, $0+0, NR, "bad"}'
17: echo 2. end of load test
18: echo 3. delete all the records
19: awk '{for(i = 0; i < $1; i++) printf "%8.8d\n", i}' <<!| cbt delete junk
20: $x
21: !
22: echo 3. report should think they are all gone
23: cbt report junk
24: echo 4. cat should too
25: cbt cat junk | awk '{next}; END {print NR " records"}'
26: echo 4. there should be no records left
27: echo
28: echo 5. now load them back one at a time in different order
29: echo $x | awk '{for(i = $1; --i >= 0; ) printf "%8.8d\n", i}' |
30: cbt add junk
31: echo 5. report should think there are $x records
32: cbt report junk
33: echo 6. cat should think so too
34: cbt cat junk | awk 'length != 9 || $0+0 != NR-1 {print length, $0+0, NR, "bad"}
35: END {print NR " records"}'
36: echo 6. there should have been no bad records
37: echo
38: echo 7. now throw every other one away
39: awk '{for(i = 0; i < $1; i+=2) printf "%8.8d\n", i}' <<! | cbt delete junk
40: $x
41: !
42: echo 7. report should think they are gone
43: cbt report junk
44: echo 8. cat should too
45: cbt cat junk | awk '{next}; END {print NR " records"}'
46: echo 8. there should be half the records left
47: echo
48: echo 9. now squash the file
49: cbt squash junk
50: echo 9. report says
51: cbt report junk
52: echo 10. and can cat find them all:
53: cbt cat junk | awk 'length != 9 || $0+0 != 2*NR-1 {print length, $0+0, NR, "bad"}
54: END {print NR " records"}'
55: echo 10. there should be half the records left
56: echo
57: echo 11. now put the other half back
58: echo $x | awk '{for(i = 0; i < $1; i+=2) printf "%8.8d\n", i}' |
59: cbt add junk
60: echo 11. report should see $x records
61: cbt report junk
62: echo 12. so should cat
63: cbt cat junk | awk 'length != 9 || $0+0 != NR-1 {print length, $0+0, NR, "bad"}
64: END {print NR " records"}'
65: echo 13. and they should all be there after squashing
66: cbt squash junk
67: echo 13. report should see $x records
68: cbt report junk
69: echo 14. so should cat
70: cbt cat junk | awk 'length != 9 || $0+0 != NR-1 {print length, $0+0, NR, "bad"}
71: END {print NR " records"}'
72: echo and that is all I could think of doing
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.