client: suppress non JSON default outputs on --output-format=json/json+
authorTomohiro Kusumi <kusumi.tomohiro@gmail.com>
Fri, 24 Aug 2018 16:42:10 +0000 (09:42 -0700)
committerJens Axboe <axboe@kernel.dk>
Sat, 25 Aug 2018 00:35:16 +0000 (18:35 -0600)
commit44f4f5e65e833bfde140dca4560a5d35a47e178b
tree4c58b1f640a2b6ce56b7bb78c1c5e6eefa4c046d
parent632b28a93154cb1be203d911f758d5932c0a8f86
client: suppress non JSON default outputs on --output-format=json/json+

Suppress "hostname=...", "Disk stats (read/write)" and thread status
if json/json+ is specified, as these are regular messages.

JSON parsers can't parse the output with these messages, and JSON
spec doesn't support comment either.

--
 # ./fio ./fio.cfg --output-format=json > out
 # python3 -c "import json; json.load(open('out'))"
 # ./fio ./fio.cfg --client=localhost --output-format=json > out
 # python3 -c "import json; json.load(open('out'))"
 Traceback (most recent call last):
   File "<string>", line 1, in <module>
   File "/usr/local/lib/python3.7/json/__init__.py", line 296, in load
     parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
   File "/usr/local/lib/python3.7/json/__init__.py", line 348, in loads
     return _default_decoder.decode(s)
   File "/usr/local/lib/python3.7/json/decoder.py", line 337, in decode
     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
   File "/usr/local/lib/python3.7/json/decoder.py", line 355, in raw_decode
     raise JSONDecodeError("Expecting value", s, err.value) from None
 json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
client.c