Message ID | 20191015142729.18123-4-mreitz@redhat.com |
---|---|
State | New |
Headers | show |
Series | iotests: Allow ./check -o data_file | expand |
On Tue, 2019-10-15 at 16:27 +0200, Max Reitz wrote: > Signed-off-by: Max Reitz <mreitz@redhat.com> > --- > tests/qemu-iotests/common.filter | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > > diff --git a/tests/qemu-iotests/common.filter b/tests/qemu-iotests/common.filter > index 9f418b4881..63bc6f6f26 100644 > --- a/tests/qemu-iotests/common.filter > +++ b/tests/qemu-iotests/common.filter > @@ -227,5 +227,29 @@ _filter_qmp_empty_return() > grep -v '{"return": {}}' > } > > +_filter_json_filename() > +{ > + $PYTHON -c 'import sys > +result, *fnames = sys.stdin.read().split("json:{") Very minor nitpick, maybe I would give 'fnames' a more generic name, since its is just result of a split, thus not really a list of filenames. Feel free to ignore that though. > +depth = 0 > +for fname in fnames: > + depth += 1 # For the opening brace in the split separator > + for chr_i, chr in enumerate(fname): > + if chr == "{": > + depth += 1 > + elif chr == "}": > + depth -= 1 > + if depth == 0: > + break > + > + # json:{} filenames may be nested; filter out everything from > + # inside the outermost one > + if depth == 0: > + chr_i += 1 # First character past the filename > + result += "json:{ /* filtered */ }" + fname[chr_i:] > + > +sys.stdout.write(result)' > +} > + > # make sure this script returns success > true I must admit that I haven't run tested it, but it looks like it should work. Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com> Best regards, Maxim Levitsky
On 06.11.19 16:44, Maxim Levitsky wrote: > On Tue, 2019-10-15 at 16:27 +0200, Max Reitz wrote: >> Signed-off-by: Max Reitz <mreitz@redhat.com> >> --- >> tests/qemu-iotests/common.filter | 24 ++++++++++++++++++++++++ >> 1 file changed, 24 insertions(+) >> >> diff --git a/tests/qemu-iotests/common.filter b/tests/qemu-iotests/common.filter >> index 9f418b4881..63bc6f6f26 100644 >> --- a/tests/qemu-iotests/common.filter >> +++ b/tests/qemu-iotests/common.filter >> @@ -227,5 +227,29 @@ _filter_qmp_empty_return() >> grep -v '{"return": {}}' >> } >> >> +_filter_json_filename() >> +{ >> + $PYTHON -c 'import sys >> +result, *fnames = sys.stdin.read().split("json:{") > > Very minor nitpick, maybe I would give 'fnames' a more generic name, > since its is just result of a split, thus not really a list of filenames. > Feel free to ignore that though. Hm... It is a list of filenames, namely of all nested json:{} filenames. I could call it fname_split, but I actually think fnames is not too wrong. In any case, thanks for reviewing again! Max
On Thu, 2019-11-07 at 09:59 +0100, Max Reitz wrote: > On 06.11.19 16:44, Maxim Levitsky wrote: > > On Tue, 2019-10-15 at 16:27 +0200, Max Reitz wrote: > > > Signed-off-by: Max Reitz <mreitz@redhat.com> > > > --- > > > tests/qemu-iotests/common.filter | 24 ++++++++++++++++++++++++ > > > 1 file changed, 24 insertions(+) > > > > > > diff --git a/tests/qemu-iotests/common.filter b/tests/qemu-iotests/common.filter > > > index 9f418b4881..63bc6f6f26 100644 > > > --- a/tests/qemu-iotests/common.filter > > > +++ b/tests/qemu-iotests/common.filter > > > @@ -227,5 +227,29 @@ _filter_qmp_empty_return() > > > grep -v '{"return": {}}' > > > } > > > > > > +_filter_json_filename() > > > +{ > > > + $PYTHON -c 'import sys > > > +result, *fnames = sys.stdin.read().split("json:{") > > > > Very minor nitpick, maybe I would give 'fnames' a more generic name, > > since its is just result of a split, thus not really a list of filenames. > > Feel free to ignore that though. > > Hm... It is a list of filenames, namely of all nested json:{} > filenames. I could call it fname_split, but I actually think fnames is > not too wrong. Makes sense, I guess leave it as is. > > In any case, thanks for reviewing again! No problem! Thanks to you too for making these tests more generic, this is IMHO very very good thing, especially with all the qcow2 corruptions we see recently. Best regards, Maxim Levitsky > > Max >
diff --git a/tests/qemu-iotests/common.filter b/tests/qemu-iotests/common.filter index 9f418b4881..63bc6f6f26 100644 --- a/tests/qemu-iotests/common.filter +++ b/tests/qemu-iotests/common.filter @@ -227,5 +227,29 @@ _filter_qmp_empty_return() grep -v '{"return": {}}' } +_filter_json_filename() +{ + $PYTHON -c 'import sys +result, *fnames = sys.stdin.read().split("json:{") +depth = 0 +for fname in fnames: + depth += 1 # For the opening brace in the split separator + for chr_i, chr in enumerate(fname): + if chr == "{": + depth += 1 + elif chr == "}": + depth -= 1 + if depth == 0: + break + + # json:{} filenames may be nested; filter out everything from + # inside the outermost one + if depth == 0: + chr_i += 1 # First character past the filename + result += "json:{ /* filtered */ }" + fname[chr_i:] + +sys.stdout.write(result)' +} + # make sure this script returns success true
Signed-off-by: Max Reitz <mreitz@redhat.com> --- tests/qemu-iotests/common.filter | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+)