From: David Zafman Date: Sun, 3 Jul 2016 06:11:10 +0000 (-0700) Subject: test: Don't compact json so errors are easier to identify X-Git-Tag: ses5-milestone5~247^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ca75c22674c67a227b31a460d61d508bd6deee6b;p=ceph.git test: Don't compact json so errors are easier to identify Signed-off-by: David Zafman --- diff --git a/src/test/osd/osd-scrub-snaps.sh b/src/test/osd/osd-scrub-snaps.sh index e5c97267acd6..55f873501d04 100755 --- a/src/test/osd/osd-scrub-snaps.sh +++ b/src/test/osd/osd-scrub-snaps.sh @@ -166,36 +166,226 @@ function TEST_scrub_snaps() { rados list-inconsistent-snapset $pgid > $dir/json || return 1 test $(jq '.inconsistents | length' $dir/json) = "20" || return 1 - jq -c '.inconsistents | sort' > $dir/checkcsjson << EOF -{"epoch":18,"inconsistents":[{"name":"obj1","nspace":"","locator":"","snap":1, -"errors":["headless"]},{"name":"obj10","nspace":"","locator":"","snap":1, -"errors":["size_mismatch"]},{"name":"obj11","nspace":"","locator":"","snap":1, -"errors":["headless"]},{"name":"obj14","nspace":"","locator":"","snap":1, -"errors":["size_mismatch"]},{"name":"obj6","nspace":"","locator":"","snap":1, -"errors":["headless"]},{"name":"obj7","nspace":"","locator":"","snap":1, -"errors":["headless"]},{"name":"obj9","nspace":"","locator":"","snap":1, -"errors":["size_mismatch"]},{"name":"obj2","nspace":"","locator":"","snap":4, -"errors":["headless"]},{"name":"obj5","nspace":"","locator":"","snap":4, -"errors":["size_mismatch"]},{"name":"obj2","nspace":"","locator":"","snap":7, -"errors":["headless"]},{"name":"obj5","nspace":"","locator":"","snap":7, -"errors":["oi_attr_missing","headless"]},{"name":"obj11","nspace":"", -"locator":"","snap":"head","errors":["extra_clones"],"extra clones":[1]}, -{"name":"obj12","nspace":"","locator":"","snap":"head", -"errors":["head_mismatch"]},{"name":"obj3","nspace":"","locator":"", -"snap":"head","errors":["size_mismatch"]},{"name":"obj5","nspace":"", -"locator":"","snap":"head","errors":["extra_clones","clone_missing"], -"extra clones":[7],"missing":[2,1]},{"name":"obj6","nspace":"","locator":"", -"snap":"head","errors":["extra_clones"],"extra clones":[1]},{"name":"obj7", -"nspace":"","locator":"","snap":"head","errors":["head_mismatch", -"extra_clones"],"extra clones":[1]},{"name":"obj8","nspace":"","locator":"", -"snap":"head","errors":["snapset_mismatch"]},{"name":"obj2","nspace":"", -"locator":"","snap":"snapdir","errors":["ss_attr_missing","extra_clones"], -"extra clones":[7,4]},{"name":"obj4","nspace":"","locator":"","snap":"snapdir", -"errors":["clone_missing"],"missing":[7]}]} + local jqfilter='.inconsistents' + local sortkeys='import json; import sys ; JSON=sys.stdin.read() ; ud = json.loads(JSON) ; print json.dumps(ud, sort_keys=True, indent=2)' + + jq "$jqfilter" << EOF | python -c "$sortkeys" > $dir/checkcsjson +{ + "inconsistents": [ + { + "errors": [ + "headless" + ], + "snap": 1, + "locator": "", + "nspace": "", + "name": "obj1" + }, + { + "errors": [ + "size_mismatch" + ], + "snap": 1, + "locator": "", + "nspace": "", + "name": "obj10" + }, + { + "errors": [ + "headless" + ], + "snap": 1, + "locator": "", + "nspace": "", + "name": "obj11" + }, + { + "errors": [ + "size_mismatch" + ], + "snap": 1, + "locator": "", + "nspace": "", + "name": "obj14" + }, + { + "errors": [ + "headless" + ], + "snap": 1, + "locator": "", + "nspace": "", + "name": "obj6" + }, + { + "errors": [ + "headless" + ], + "snap": 1, + "locator": "", + "nspace": "", + "name": "obj7" + }, + { + "errors": [ + "size_mismatch" + ], + "snap": 1, + "locator": "", + "nspace": "", + "name": "obj9" + }, + { + "errors": [ + "headless" + ], + "snap": 4, + "locator": "", + "nspace": "", + "name": "obj2" + }, + { + "errors": [ + "size_mismatch" + ], + "snap": 4, + "locator": "", + "nspace": "", + "name": "obj5" + }, + { + "errors": [ + "headless" + ], + "snap": 7, + "locator": "", + "nspace": "", + "name": "obj2" + }, + { + "errors": [ + "oi_attr_missing", + "headless" + ], + "snap": 7, + "locator": "", + "nspace": "", + "name": "obj5" + }, + { + "extra clones": [ + 1 + ], + "errors": [ + "extra_clones" + ], + "snap": "head", + "locator": "", + "nspace": "", + "name": "obj11" + }, + { + "errors": [ + "head_mismatch" + ], + "snap": "head", + "locator": "", + "nspace": "", + "name": "obj12" + }, + { + "errors": [ + "size_mismatch" + ], + "snap": "head", + "locator": "", + "nspace": "", + "name": "obj3" + }, + { + "missing": [ + 2, + 1 + ], + "extra clones": [ + 7 + ], + "errors": [ + "extra_clones", + "clone_missing" + ], + "snap": "head", + "locator": "", + "nspace": "", + "name": "obj5" + }, + { + "extra clones": [ + 1 + ], + "errors": [ + "extra_clones" + ], + "snap": "head", + "locator": "", + "nspace": "", + "name": "obj6" + }, + { + "extra clones": [ + 1 + ], + "errors": [ + "head_mismatch", + "extra_clones" + ], + "snap": "head", + "locator": "", + "nspace": "", + "name": "obj7" + }, + { + "errors": [ + "snapset_mismatch" + ], + "snap": "head", + "locator": "", + "nspace": "", + "name": "obj8" + }, + { + "extra clones": [ + 7, + 4 + ], + "errors": [ + "ss_attr_missing", + "extra_clones" + ], + "snap": "snapdir", + "locator": "", + "nspace": "", + "name": "obj2" + }, + { + "missing": [ + 7 + ], + "errors": [ + "clone_missing" + ], + "snap": "snapdir", + "locator": "", + "nspace": "", + "name": "obj4" + } + ], + "epoch": 20 +} EOF - jq -c '.inconsistents | sort' $dir/json > $dir/csjson - diff $dir/csjson $dir/checkcsjson || return 1 + jq "$jqfilter" $dir/json | python -c "$sortkeys" > $dir/csjson + diff -y $dir/checkcsjson $dir/csjson || return 1 for i in `seq 1 7` do