]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test: Don't compact json so errors are easier to identify
authorDavid Zafman <dzafman@redhat.com>
Sun, 3 Jul 2016 06:11:10 +0000 (23:11 -0700)
committerDavid Zafman <dzafman@redhat.com>
Wed, 27 Jul 2016 16:58:59 +0000 (09:58 -0700)
Signed-off-by: David Zafman <dzafman@redhat.com>
src/test/osd/osd-scrub-snaps.sh

index e5c97267acd6df394f3c4706969709e135d29af0..55f873501d040d362a619f4326dd832ab29f146e 100755 (executable)
@@ -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