]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Test btree unaligned byte swapping
authorTom Yu <tlyu@mit.edu>
Fri, 26 Aug 2016 16:47:00 +0000 (12:47 -0400)
committerTom Yu <tlyu@mit.edu>
Fri, 2 Sep 2016 22:31:56 +0000 (18:31 -0400)
Add a regression test for unaligned accesses during btree byte
swapping.

(back ported from commit eaa03649fb5a3d983d48afe0124b15ad12b7bead)

ticket: 8484
version_fixed: 1.13.7

src/plugins/kdb/db2/libdb2/test/run.test

index d99b42d8b37fa3b7f44cddf8434fc81755f5509f..6f5d58906aea0763313d22224ddb696c5e87a50e 100644 (file)
@@ -36,7 +36,7 @@ main()
        find $bindir -type f -exec test -r {} \; -print | head -100 > $BINFILES
 
        if [ $# -eq 0 ]; then
-               for t in 1 2 3 4 5 6 7 8 9 10 11 12 13 20 40 41; do
+               for t in 1 2 3 4 5 6 7 8 9 10 11 12 13 20 40 41 60 61; do
                        test$t
                done
        else
@@ -47,7 +47,7 @@ main()
                        [0-9]*)
                                test$1;;
                        btree)
-                               for t in 1 2 3 7 8 9 10 12 13 40 41; do
+                               for t in 1 2 3 7 8 9 10 12 13 40 41 60 61; do
                                        test$t
                                done;;
                        hash)
@@ -915,4 +915,36 @@ EOF
        fi
 }
 
+test60 () {
+       echo "Test 60: btree: big key, small data, byteswap unaligned access"
+       # 488 = 512 - 20 (header) - 3 ("foo") - 1 (newline)
+       (echo foo; echo bar) |
+       awk '{
+               s = $0
+               for (i = 0; i < 488; i++) {
+                       s = s "x";
+               }
+               printf("p\nk%s\ndx\n", s);
+       }' > $TMP2
+       for order in 1234 4321; do
+               $PROG -o $TMP3 -i psize=512,lorder=$order btree $TMP2
+       done
+}
+
+test61 () {
+       echo "Test 61: btree: small key, big data, byteswap unaligned access"
+       # 484 = 512 - 20 (header) - 7 ("foo1234") - 1 (newline)
+       (echo foo1234; echo bar1234) |
+       awk '{
+               s = $0
+               for (i = 0; i < 484; i++) {
+                       s = s "x";
+               }
+               printf("p\nk%s\nd%s\n", $0, s);
+       }' > $TMP2
+       for order in 1234 4321; do
+               $PROG -o $TMP3 -i psize=512,lorder=$order btree $TMP2
+       done
+}
+
 main $*