verifiablesoftware / vsw

Core project of VerifiableSoftware
Apache License 2.0
1 stars 0 forks source link

Output in incorrect format #116

Closed wenjing closed 3 years ago

wenjing commented 3 years ago

vsw list -cs does not output in proper JSON format

There are extra NEWLINEs in lines 16 and 21 in this example. A JSON parser (e.g. jq) will fail to read. It's now blocking test scripts.

{ "results": [ { "attrs": { "buildLog": "", "builderDid": "", "builderToolDidList": "", "dependencyDidList": "", "developerDid": "EkifaQ6TqSbgXmEiejQ2dA", "mediaType": "", "softwareDid": "SnFxoaY2TUX694vitL37yL", "softwareHash": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "softwareName": "vsw", "softwareUrl": "https://files.pythonhosted.org/packages/af/a2/269b2d19a6b9fd6dc2b504f91c7562fe9878b6edfe cdc4a23407b0e9f872/vsw-0.0.11-py3-none-any.whl", "softwareVersion": "0.0.11", "sourceDid": "", "sourceHash": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "sourceUrl": "https://files.pythonhosted.org/packages/7e/27/300a61d019fec87cc9104da199262bd01d15298dc8c2 1c79b0cb5ffddd5a/vsw-0.0.11.tar.gz" }, "cred_def_id": "EkifaQ6TqSbgXmEiejQ2dA:3:CL:3733:default", "cred_rev_id": "1", "referent": "c662da04-5926-43ba-a1af-0bc3ba1d8938", "rev_reg_id": "EkifaQ6TqSbgXmEiejQ2dA:4:EkifaQ6TqSbgXmEiejQ2dA:3:CL:3733:default:CL_ACCUM:894b3a89-9ec0-45f0-aac2-c340ad010ebd", "schema_id": "UyDtaEFuTySAV9VZDykHkh:2:softwareCertificate:0.3" } ] }

wenjing commented 3 years ago

Please check other outputs too.

felixchen1023 commented 3 years ago

can you check your terminal setting, seems that the softwareUrl and sourceUrl has been splitted 2 lines forcely. I didn't reproduce it in my local.

felixchen1023 commented 3 years ago

{ "results": [ { "attrs": { "buildLog": "", "builderDid": "", "builderToolDidList": "", "dependencyDidList": "", "developerDid": "G7vR3apaxGpvTM3CnDLGBF", "mediaType": "", "softwareDid": "2Wvn7vxpzCm4D32arVjWmp", "softwareHash": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "softwareName": "vsw", "softwareUrl": "https://files.pythonhosted.org/packages/cd/51/16376a56b5b6abede7fa55e40b594ce6c7dca67710a4a7c1e642a493d9b4/vsw-0.0.20.tar.gz", "softwareVersion": "0.0.20", "sourceDid": "", "sourceHash": "", "sourceUrl": "" }, "cred_def_id": "G7vR3apaxGpvTM3CnDLGBF:3:CL:3733:default", "cred_rev_id": "1", "referent": "58092e51-f639-42a1-8350-e8ca627366f4", "rev_reg_id": "G7vR3apaxGpvTM3CnDLGBF:4:G7vR3apaxGpvTM3CnDLGBF:3:CL:3733:default:CL_ACCUM:f3ac8347-fe22-4c4f-97f7-262ee2f795be", "schema_id": "UyDtaEFuTySAV9VZDykHkh:2:softwareCertificate:0.3" } ] }

wenjing commented 3 years ago

This issue happened again. It does not occur all the time but it's there somehow. Here is the complete capture of (1) vsw list -cs fails JSON parsing (2) a moments later, after the terminal is made larger (yes, wider!), it seems to cure itself. I don't know how to explain this or what term setting may have something to do with it.

Here is the capture:

root@0b99d1821605:/# root@0b99d1821605:/# vsw list -cs { "results": [ { "attrs": { "buildLog": "", "builderDid": "", "builderToolDidList": "", "dependencyDidList": "", "developerDid": "BqsXMiBo9RaQn46ZJpKD5M", "mediaType": "", "softwareDid": "SvVDaLsDEyMwUJRhgXzWwu", "softwareHash": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "softwareName": "vsw", "softwareUrl": "https://files.pythonhosted.org/packages/fb/1e/fc094758b2222b8510c17ff10b1e78fa4c4a84dd552b51c3ee48c cc03dbc/vsw-0.0.12-py3-none-any.whl", "softwareVersion": "0.0.12", "sourceDid": "", "sourceHash": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "sourceUrl": "https://files.pythonhosted.org/packages/18/1f/a216dee58ac60805accce2e98d21af0e41255d2ef5311a730f1c084a4ebe/vsw-0.0.12.tar.gz" }, "cred_def_id": "BqsXMiBo9RaQn46ZJpKD5M:3:CL:3733:default", "cred_rev_id": "2", "referent": "3088e227-9fd0-4767-a990-2a211c5675dc", "rev_reg_id": "BqsXMiBo9RaQn46ZJpKD5M:4:BqsXMiBo9RaQn46ZJpKD5M:3:CL:3733:default:CL_ACCUM:6250d829-908e-4c4d-96f1-a1cd079e046b", "schema_id": "UyDtaEFuTySAV9VZDykHkh:2:softwareCertificate:0.3" }, { "attrs": { "buildLog": "", "builderDid": "", "builderToolDidList": "", "dependencyDidList": "", "developerDid": "BqsXMiBo9RaQn46ZJpKD5M", "mediaType": "", "softwareDid": "SvVDaLsDEyMwUJRhgXzWwu", "softwareHash": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "softwareName": "vsw", "softwareUrl": "https://files.pythonhosted.org/packages/af/a2/269b2d19a6b9fd6dc2b504f91c7562fe9878b6edfecdc4a23407b 0e9f872/vsw-0.0.11-py3-none-any.whl", "softwareVersion": "0.0.11", "sourceDid": "", "sourceHash": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "sourceUrl": "https://files.pythonhosted.org/packages/7e/27/300a61d019fec87cc9104da199262bd01d15298dc8c21c79b0cb5ffddd5a/vsw-0.0.11.tar.gz" }, "cred_def_id": "BqsXMiBo9RaQn46ZJpKD5M:3:CL:3733:default", "cred_rev_id": "1", "referent": "b0f7e529-21e4-45bf-8c30-8d0117433cad", "rev_reg_id": "BqsXMiBo9RaQn46ZJpKD5M:4:BqsXMiBo9RaQn46ZJpKD5M:3:CL:3733:default:CL_ACCUM:6250d829-908e-4c4d-96f1-a1cd079e046b", "schema_id": "UyDtaEFuTySAV9VZDykHkh:2:softwareCertificate:0.3" } ] } root@0b99d1821605:/# root@0b99d1821605:/# root@0b99d1821605:/# root@0b99d1821605:/# REV_REG_ID=$(vsw list -cs|jq '.results[0].rev_reg_id') parse error: Invalid string: control characters from U+0000 through U+001F must be escaped at line 15, column 36 root@0b99d1821605:/# REV_REG_ID=$(vsw list -cs|jq '."results"[0].rev_reg_id') parse error: Invalid string: control characters from U+0000 through U+001F must be escaped at line 15, column 36 root@0b99d1821605:/# root@0b99d1821605:/# vsw list -cs { "results": [ { "attrs": { "buildLog": "", "builderDid": "", "builderToolDidList": "", "dependencyDidList": "", "developerDid": "BqsXMiBo9RaQn46ZJpKD5M", "mediaType": "", "softwareDid": "SvVDaLsDEyMwUJRhgXzWwu", "softwareHash": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "softwareName": "vsw", "softwareUrl": "https://files.pythonhosted.org/packages/fb/1e/fc094758b2222b8510c17ff10b1e78fa4c4a84dd552b51c3ee48c cc03dbc/vsw-0.0.12-py3-none-any.whl", "softwareVersion": "0.0.12", "sourceDid": "", "sourceHash": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "sourceUrl": "https://files.pythonhosted.org/packages/18/1f/a216dee58ac60805accce2e98d21af0e41255d2ef5311a730f1c084a4ebe/vsw-0.0.12.tar.gz" }, "cred_def_id": "BqsXMiBo9RaQn46ZJpKD5M:3:CL:3733:default", "cred_rev_id": "2", "referent": "3088e227-9fd0-4767-a990-2a211c5675dc", "rev_reg_id": "BqsXMiBo9RaQn46ZJpKD5M:4:BqsXMiBo9RaQn46ZJpKD5M:3:CL:3733:default:CL_ACCUM:6250d829-908e-4c4d-96f1-a1cd079e046b", "schema_id": "UyDtaEFuTySAV9VZDykHkh:2:softwareCertificate:0.3" }, { "attrs": { "buildLog": "", "builderDid": "", "builderToolDidList": "", "dependencyDidList": "", "developerDid": "BqsXMiBo9RaQn46ZJpKD5M", "mediaType": "", "softwareDid": "SvVDaLsDEyMwUJRhgXzWwu", "softwareHash": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "softwareName": "vsw", "softwareUrl": "https://files.pythonhosted.org/packages/af/a2/269b2d19a6b9fd6dc2b504f91c7562fe9878b6edfecdc4a23407b 0e9f872/vsw-0.0.11-py3-none-any.whl", "softwareVersion": "0.0.11", "sourceDid": "", "sourceHash": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "sourceUrl": "https://files.pythonhosted.org/packages/7e/27/300a61d019fec87cc9104da199262bd01d15298dc8c21c79b0cb5ffddd5a/vsw-0.0.11.tar.gz" }, "cred_def_id": "BqsXMiBo9RaQn46ZJpKD5M:3:CL:3733:default", "cred_rev_id": "1", "referent": "b0f7e529-21e4-45bf-8c30-8d0117433cad", "rev_reg_id": "BqsXMiBo9RaQn46ZJpKD5M:4:BqsXMiBo9RaQn46ZJpKD5M:3:CL:3733:default:CL_ACCUM:6250d829-908e-4c4d-96f1-a1cd079e046b", "schema_id": "UyDtaEFuTySAV9VZDykHkh:2:softwareCertificate:0.3" } ] } root@0b99d1821605:/# vsw list -cs { "results": [ { "attrs": { "buildLog": "", "builderDid": "", "builderToolDidList": "", "dependencyDidList": "", "developerDid": "BqsXMiBo9RaQn46ZJpKD5M", "mediaType": "", "softwareDid": "SvVDaLsDEyMwUJRhgXzWwu", "softwareHash": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "softwareName": "vsw", "softwareUrl": "https://files.pythonhosted.org/packages/fb/1e/fc094758b2222b8510c17ff10b1e78fa4c4a84dd552b51c3ee48ccc03dbc/vsw-0.0.12-py3-none-any.whl", "softwareVersion": "0.0.12", "sourceDid": "", "sourceHash": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "sourceUrl": "https://files.pythonhosted.org/packages/18/1f/a216dee58ac60805accce2e98d21af0e41255d2ef5311a730f1c084a4ebe/vsw-0.0.12.tar.gz" }, "cred_def_id": "BqsXMiBo9RaQn46ZJpKD5M:3:CL:3733:default", "cred_rev_id": "2", "referent": "3088e227-9fd0-4767-a990-2a211c5675dc", "rev_reg_id": "BqsXMiBo9RaQn46ZJpKD5M:4:BqsXMiBo9RaQn46ZJpKD5M:3:CL:3733:default:CL_ACCUM:6250d829-908e-4c4d-96f1-a1cd079e046b", "schema_id": "UyDtaEFuTySAV9VZDykHkh:2:softwareCertificate:0.3" }, { "attrs": { "buildLog": "", "builderDid": "", "builderToolDidList": "", "dependencyDidList": "", "developerDid": "BqsXMiBo9RaQn46ZJpKD5M", "mediaType": "", "softwareDid": "SvVDaLsDEyMwUJRhgXzWwu", "softwareHash": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "softwareName": "vsw", "softwareUrl": "https://files.pythonhosted.org/packages/af/a2/269b2d19a6b9fd6dc2b504f91c7562fe9878b6edfecdc4a23407b0e9f872/vsw-0.0.11-py3-none-any.whl", "softwareVersion": "0.0.11", "sourceDid": "", "sourceHash": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "sourceUrl": "https://files.pythonhosted.org/packages/7e/27/300a61d019fec87cc9104da199262bd01d15298dc8c21c79b0cb5ffddd5a/vsw-0.0.11.tar.gz" }, "cred_def_id": "BqsXMiBo9RaQn46ZJpKD5M:3:CL:3733:default", "cred_rev_id": "1", "referent": "b0f7e529-21e4-45bf-8c30-8d0117433cad", "rev_reg_id": "BqsXMiBo9RaQn46ZJpKD5M:4:BqsXMiBo9RaQn46ZJpKD5M:3:CL:3733:default:CL_ACCUM:6250d829-908e-4c4d-96f1-a1cd079e046b", "schema_id": "UyDtaEFuTySAV9VZDykHkh:2:softwareCertificate:0.3" } ] } root@0b99d1821605:/# REV_REG_ID=$(vsw list -cs|jq '."results"[0].rev_reg_id') root@0b99d1821605:/# echo $REV_REG_ID "BqsXMiBo9RaQn46ZJpKD5M:4:BqsXMiBo9RaQn46ZJpKD5M:3:CL:3733:default:CL_ACCUM:6250d829-908e-4c4d-96f1-a1cd079e046b" root@0b99d1821605:/# root@0b99d1821605:/# REV_REG_ID=$(vsw list -cs|jq '.results[0].rev_reg_id') root@0b99d1821605:/# echo $REV_REG_ID "BqsXMiBo9RaQn46ZJpKD5M:4:BqsXMiBo9RaQn46ZJpKD5M:3:CL:3733:default:CL_ACCUM:6250d829-908e-4c4d-96f1-a1cd079e046b" root@0b99d1821605:/#

wenjing commented 3 years ago

This appears to be a known problem related to "some-print-command | jq ...". This can be remedied by tr:

% some-print-command | tr -d "\r\n" | jq ...