]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/encoding/readable.sh: skip old version with known incompatibilities
authorSage Weil <sage@newdream.net>
Mon, 13 Feb 2012 20:40:33 +0000 (12:40 -0800)
committerSage Weil <sage@newdream.net>
Mon, 13 Feb 2012 22:08:25 +0000 (14:08 -0800)
Signed-off-by: Sage Weil <sage@newdream.net>
ceph-object-corpus
src/Makefile.am
src/test/encoding/readable.sh

index bbfb894fdbd2611c08f234f07420ad3a7e0c58a0..b2639b83db4620aefdbee91f5f4f7268bb014fda 160000 (submodule)
@@ -1 +1 @@
-Subproject commit bbfb894fdbd2611c08f234f07420ad3a7e0c58a0
+Subproject commit b2639b83db4620aefdbee91f5f4f7268bb014fda
index 96c994f148f8981fb2e566b005c0ddd0316dd02c..7a440c012c0616e5f83abbf90f0f189a1571d27d 100644 (file)
@@ -18,7 +18,7 @@ TESTS = $(check_PROGRAMS)
 
 check-local:
        test/encoding/check-generated.sh
-       test/encoding/readable.sh ../ceph-object-corpus/archive
+       test/encoding/readable.sh ../ceph-object-corpus
 
 EXTRALIBS = -luuid
 if FREEBSD
index 4a442e91a2cd6af5f4cb931bd98fa401827bae9e..f9f93909aaedd0e5a4ce4c8c538f8640284fa8c3 100755 (executable)
@@ -10,28 +10,57 @@ tmp2=`mktemp /tmp/typ-XXXXXXXXX`
 failed=0
 numtests=0
 
-for vdir in $dir/*
+myversion=`./ceph-dencoder version`
+
+for arversion in `ls -v $dir/archive`
 do
+    vdir="$dir/archive/$arversion"
 #    echo $vdir
-    for type in `ls $vdir`
+
+    if [ ! -d "$vdir/objects" ]; then
+       continue;
+    fi
+
+    for type in `ls $vdir/objects`
     do
        if ./ceph-dencoder type $type 2>/dev/null; then
 #          echo "type $type";
-           echo "        $vdir/$type"
-           for f in `ls $vdir/$type`; do
+           echo "        $vdir/objects/$type"
+
+           # is there a fwd incompat change between $arversion and $version?
+           incompat=""
+           sawarversion=0
+           for iv in `ls -v $dir/archive`
+           do
+               if [ "$iv" == "$arversion" ]; then
+                   sawarversion=1
+               fi
+               if [ $sawarversion -eq 1 ] && [ -e "$dir/archive/$iv/forward_incompat/$type" ]; then
+                   incompat="$iv"
+               fi
+               if [ "$iv" == "$version" ]; then
+                   break
+               fi
+           done
+           if [ -n "$incompat" ]; then
+               echo "skipping incompat $type version $arversion, changed at $iv < code $myversion"
+               continue
+           fi
+
+           for f in `ls $vdir/objects/$type`; do
 #              echo "\t$vdir/$type/$f"
-               if ! ./ceph-dencoder type $type import $vdir/$type/$f decode dump_json > $tmp1; then
-                   echo "**** failed to decode $vdir/$type/$f ****"
+               if ! ./ceph-dencoder type $type import $vdir/objects/$type/$f decode dump_json > $tmp1; then
+                   echo "**** failed to decode $vdir/objects/$type/$f ****"
                    failed=$(($failed + 1))
                    continue        
                fi
-               if ! ./ceph-dencoder type $type import $vdir/$type/$f decode encode decode dump_json > $tmp2; then
-                   echo "**** failed to decode+encode+decode $vdir/$type/$f ****"
+               if ! ./ceph-dencoder type $type import $vdir/objects/$type/$f decode encode decode dump_json > $tmp2; then
+                   echo "**** failed to decode+encode+decode $vdir/objects/$type/$f ****"
                    failed=$(($failed + 1))
                    continue
                fi
                if ! cmp $tmp1 $tmp2; then
-                   echo "**** reencode of $vdir/$type/$f resulted in a different dump ****"
+                   echo "**** reencode of $vdir/objects/$type/$f resulted in a different dump ****"
                    diff $tmp1 $tmp2
                    failed=$(($failed + 1))
                fi