Annotation of researchv10no/cmd/btree/verify, revision 1.1

1.1     ! root        1: PATH=:$PATH
        !             2: export PATH
        !             3: x=$1
        !             4: if test $# = 0
        !             5: then
        !             6:        echo verify rec-cnt
        !             7:        exit 1
        !             8: fi
        !             9: echo 1. loading a btree with $x records
        !            10: btcreat junk
        !            11: awk '{for(i = 0; i < $1; i++) printf "%8.8d\n", i}' <<! | btran | btbuild junk
        !            12: $x
        !            13: !
        !            14: echo 1. does btreport think there are $x records
        !            15: btreport junk
        !            16: echo 2. if btcat doesn\'t agree, it will say so
        !            17: btcat junk | awk 'length != 9 || $0+0 != NR-1 {print length, $0+0, NR, "bad"}'
        !            18: echo 2. end of load test
        !            19: echo
        !            20: echo 3. delete all the records
        !            21: awk '{for(i = 0; i < $1; i++) printf "%8.8d\n", i}' <<! | btdelete junk
        !            22: $x
        !            23: !
        !            24: echo 3. btreport should think they are all gone
        !            25: btreport junk
        !            26: echo 4. btcat should too
        !            27: btcat junk | awk '{next}; END {print NR " records"}'
        !            28: echo 4. there should be no records left
        !            29: echo
        !            30: echo 5. now load them back one at a time
        !            31: echo $x | awk '{for(i = 0; i < $1; i++) printf "%8.8d\n", i}' |
        !            32:        btran | tee foo | btadd junk
        !            33: echo 5. btreport should think there are $x records
        !            34: btreport junk
        !            35: echo 6. btcat should think so too
        !            36: btcat junk | awk 'length != 9 || $0+0 != NR-1 {print length, $0+0, NR, "bad"}
        !            37:        END {print NR " records"}'
        !            38: echo 6. there should have been no bad records
        !            39: echo
        !            40: echo 7. now throw every other one away
        !            41: awk '{for(i = 0; i < $1; i+=2) printf "%8.8d\n", i}' <<! | btdelete junk
        !            42: $x
        !            43: !
        !            44: echo 7. btreport should think they are gone
        !            45: btreport junk
        !            46: echo 8. btcat should too
        !            47: btcat junk | awk '{next}; END {print NR " records"}'
        !            48: echo 8. there should be half the records left
        !            49: echo
        !            50: echo 9. now squash the file
        !            51: btsquash junk
        !            52: echo 9. btreport says
        !            53: btreport junk
        !            54: echo 10. and can btcat find them all:
        !            55: btcat junk | awk 'length != 9 || $0+0 != 2*NR-1 {print length, $0+0, NR, "bad"}
        !            56:        END {print NR " records"}'
        !            57: echo 10. there should be half the records left
        !            58: echo
        !            59: echo 11. now put the other half back
        !            60: echo $x | awk '{for(i = 0; i < $1; i+=2) printf "%8.8d\n", i}' |
        !            61:        btran | btadd junk
        !            62: echo 11. btreport should see $x records
        !            63: btreport junk
        !            64: echo 12. so should btcat
        !            65: btcat junk | awk 'length != 9 || $0+0 != NR-1 {print length, $0+0, NR, "bad"}
        !            66:        END {print NR " records"}'
        !            67: echo 13. and they should all be there after squashing
        !            68: btsquash junk
        !            69: echo 13. btreport should see $x records
        !            70: btreport junk
        !            71: echo 14. so should btcat
        !            72: btcat junk | awk 'length != 9 || $0+0 != NR-1 {print length, $0+0, NR, "bad"}
        !            73:        END {print NR " records"}'
        !            74: echo and that is all I could think of doing

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.