mbox series

[00/10] image-fuzzer: Port to Python 3

Message ID 20191016192430.25098-1-ehabkost@redhat.com (mailing list archive)
Headers show
Series image-fuzzer: Port to Python 3 | expand

Message

Eduardo Habkost Oct. 16, 2019, 7:24 p.m. UTC
This series ports image-fuzzer to Python 3.

Eduardo Habkost (10):
  image-fuzzer: Open image files in binary mode
  image-fuzzer: Write bytes instead of string to image file
  image-fuzzer: Explicitly use integer division operator
  image-fuzzer: Use io.StringIO
  image-fuzzer: Use %r for all fiels at Field.__repr__()
  image-fuzzer: Return bytes objects on string fuzzing functions
  image-fuzzer: Use bytes constant for field values
  image-fuzzer: Encode file name and file format to bytes
  image-fuzzer: Run using python3
  image-fuzzer: Use errors parameter of subprocess.Popen()

 tests/image-fuzzer/qcow2/__init__.py |  1 -
 tests/image-fuzzer/qcow2/fuzz.py     | 54 +++++++++++++-------------
 tests/image-fuzzer/qcow2/layout.py   | 57 ++++++++++++++--------------
 tests/image-fuzzer/runner.py         | 12 +++---
 4 files changed, 61 insertions(+), 63 deletions(-)

Comments

John Snow Oct. 17, 2019, 9:11 p.m. UTC | #1
On 10/16/19 3:24 PM, Eduardo Habkost wrote:
> This series ports image-fuzzer to Python 3.
> 
> Eduardo Habkost (10):
>   image-fuzzer: Open image files in binary mode
>   image-fuzzer: Write bytes instead of string to image file
>   image-fuzzer: Explicitly use integer division operator
>   image-fuzzer: Use io.StringIO
>   image-fuzzer: Use %r for all fiels at Field.__repr__()
>   image-fuzzer: Return bytes objects on string fuzzing functions
>   image-fuzzer: Use bytes constant for field values
>   image-fuzzer: Encode file name and file format to bytes
>   image-fuzzer: Run using python3
>   image-fuzzer: Use errors parameter of subprocess.Popen()
> 
>  tests/image-fuzzer/qcow2/__init__.py |  1 -
>  tests/image-fuzzer/qcow2/fuzz.py     | 54 +++++++++++++-------------
>  tests/image-fuzzer/qcow2/layout.py   | 57 ++++++++++++++--------------
>  tests/image-fuzzer/runner.py         | 12 +++---
>  4 files changed, 61 insertions(+), 63 deletions(-)
> 

When I gave my try at converting this to python3 I noticed that the
"except OSError as e" segments used e[1] in a way that was not seemingly
supported.

Did you fix that in this series or did I miss it?

--js
Eduardo Habkost Oct. 17, 2019, 9:29 p.m. UTC | #2
On Thu, Oct 17, 2019 at 05:11:29PM -0400, John Snow wrote:
> 
> 
> On 10/16/19 3:24 PM, Eduardo Habkost wrote:
> > This series ports image-fuzzer to Python 3.
> > 
> > Eduardo Habkost (10):
> >   image-fuzzer: Open image files in binary mode
> >   image-fuzzer: Write bytes instead of string to image file
> >   image-fuzzer: Explicitly use integer division operator
> >   image-fuzzer: Use io.StringIO
> >   image-fuzzer: Use %r for all fiels at Field.__repr__()
> >   image-fuzzer: Return bytes objects on string fuzzing functions
> >   image-fuzzer: Use bytes constant for field values
> >   image-fuzzer: Encode file name and file format to bytes
> >   image-fuzzer: Run using python3
> >   image-fuzzer: Use errors parameter of subprocess.Popen()
> > 
> >  tests/image-fuzzer/qcow2/__init__.py |  1 -
> >  tests/image-fuzzer/qcow2/fuzz.py     | 54 +++++++++++++-------------
> >  tests/image-fuzzer/qcow2/layout.py   | 57 ++++++++++++++--------------
> >  tests/image-fuzzer/runner.py         | 12 +++---
> >  4 files changed, 61 insertions(+), 63 deletions(-)
> > 
> 
> When I gave my try at converting this to python3 I noticed that the
> "except OSError as e" segments used e[1] in a way that was not seemingly
> supported.
> 
> Did you fix that in this series or did I miss it?

Good catch, I hadn't noticed that.  I didn't fix it.
John Snow Oct. 17, 2019, 10:41 p.m. UTC | #3
On 10/17/19 5:29 PM, Eduardo Habkost wrote:
> On Thu, Oct 17, 2019 at 05:11:29PM -0400, John Snow wrote:
>>
>>
>> On 10/16/19 3:24 PM, Eduardo Habkost wrote:
>>> This series ports image-fuzzer to Python 3.
>>>
>>> Eduardo Habkost (10):
>>>   image-fuzzer: Open image files in binary mode
>>>   image-fuzzer: Write bytes instead of string to image file
>>>   image-fuzzer: Explicitly use integer division operator
>>>   image-fuzzer: Use io.StringIO
>>>   image-fuzzer: Use %r for all fiels at Field.__repr__()
>>>   image-fuzzer: Return bytes objects on string fuzzing functions
>>>   image-fuzzer: Use bytes constant for field values
>>>   image-fuzzer: Encode file name and file format to bytes
>>>   image-fuzzer: Run using python3
>>>   image-fuzzer: Use errors parameter of subprocess.Popen()
>>>
>>>  tests/image-fuzzer/qcow2/__init__.py |  1 -
>>>  tests/image-fuzzer/qcow2/fuzz.py     | 54 +++++++++++++-------------
>>>  tests/image-fuzzer/qcow2/layout.py   | 57 ++++++++++++++--------------
>>>  tests/image-fuzzer/runner.py         | 12 +++---
>>>  4 files changed, 61 insertions(+), 63 deletions(-)
>>>
>>
>> When I gave my try at converting this to python3 I noticed that the
>> "except OSError as e" segments used e[1] in a way that was not seemingly
>> supported.
>>
>> Did you fix that in this series or did I miss it?
> 
> Good catch, I hadn't noticed that.  I didn't fix it.
> 

I recommend using pylint(3) with a bunch of the style issues turned off,
e.g.;

--disable=missing-docstring --disable=invalid-name

it will still whine about a lot of reasonably harmless stuff, but
sometimes it has a few errors to show.

--js
Eduardo Habkost Oct. 22, 2019, 8:26 p.m. UTC | #4
On Thu, Oct 17, 2019 at 06:29:27PM -0300, Eduardo Habkost wrote:
> On Thu, Oct 17, 2019 at 05:11:29PM -0400, John Snow wrote:
> > 
> > 
> > On 10/16/19 3:24 PM, Eduardo Habkost wrote:
> > > This series ports image-fuzzer to Python 3.
> > > 
> > > Eduardo Habkost (10):
> > >   image-fuzzer: Open image files in binary mode
> > >   image-fuzzer: Write bytes instead of string to image file
> > >   image-fuzzer: Explicitly use integer division operator
> > >   image-fuzzer: Use io.StringIO
> > >   image-fuzzer: Use %r for all fiels at Field.__repr__()
> > >   image-fuzzer: Return bytes objects on string fuzzing functions
> > >   image-fuzzer: Use bytes constant for field values
> > >   image-fuzzer: Encode file name and file format to bytes
> > >   image-fuzzer: Run using python3
> > >   image-fuzzer: Use errors parameter of subprocess.Popen()
> > > 
> > >  tests/image-fuzzer/qcow2/__init__.py |  1 -
> > >  tests/image-fuzzer/qcow2/fuzz.py     | 54 +++++++++++++-------------
> > >  tests/image-fuzzer/qcow2/layout.py   | 57 ++++++++++++++--------------
> > >  tests/image-fuzzer/runner.py         | 12 +++---
> > >  4 files changed, 61 insertions(+), 63 deletions(-)
> > > 
> > 
> > When I gave my try at converting this to python3 I noticed that the
> > "except OSError as e" segments used e[1] in a way that was not seemingly
> > supported.
> > 
> > Did you fix that in this series or did I miss it?
> 
> Good catch, I hadn't noticed that.  I didn't fix it.

Separate patch sent for that issue:
https://lore.kernel.org/qemu-devel/20191021214117.18091-1-ehabkost@redhat.com/
John Snow Oct. 23, 2019, 3:42 p.m. UTC | #5
On 10/22/19 4:26 PM, Eduardo Habkost wrote:
> On Thu, Oct 17, 2019 at 06:29:27PM -0300, Eduardo Habkost wrote:
>> On Thu, Oct 17, 2019 at 05:11:29PM -0400, John Snow wrote:
>>>
>>>
>>> On 10/16/19 3:24 PM, Eduardo Habkost wrote:
>>>> This series ports image-fuzzer to Python 3.
>>>>
>>>> Eduardo Habkost (10):
>>>>   image-fuzzer: Open image files in binary mode
>>>>   image-fuzzer: Write bytes instead of string to image file
>>>>   image-fuzzer: Explicitly use integer division operator
>>>>   image-fuzzer: Use io.StringIO
>>>>   image-fuzzer: Use %r for all fiels at Field.__repr__()
>>>>   image-fuzzer: Return bytes objects on string fuzzing functions
>>>>   image-fuzzer: Use bytes constant for field values
>>>>   image-fuzzer: Encode file name and file format to bytes
>>>>   image-fuzzer: Run using python3
>>>>   image-fuzzer: Use errors parameter of subprocess.Popen()
>>>>
>>>>  tests/image-fuzzer/qcow2/__init__.py |  1 -
>>>>  tests/image-fuzzer/qcow2/fuzz.py     | 54 +++++++++++++-------------
>>>>  tests/image-fuzzer/qcow2/layout.py   | 57 ++++++++++++++--------------
>>>>  tests/image-fuzzer/runner.py         | 12 +++---
>>>>  4 files changed, 61 insertions(+), 63 deletions(-)
>>>>
>>>
>>> When I gave my try at converting this to python3 I noticed that the
>>> "except OSError as e" segments used e[1] in a way that was not seemingly
>>> supported.
>>>
>>> Did you fix that in this series or did I miss it?
>>
>> Good catch, I hadn't noticed that.  I didn't fix it.
> 
> Separate patch sent for that issue:
> https://lore.kernel.org/qemu-devel/20191021214117.18091-1-ehabkost@redhat.com/
> 

With that squished in somewhere into this series:

Reviewed-by: John Snow <jsnow@redhat.com>
Stefan Hajnoczi Nov. 5, 2019, 3:35 p.m. UTC | #6
On Wed, Oct 16, 2019 at 04:24:20PM -0300, Eduardo Habkost wrote:
> This series ports image-fuzzer to Python 3.
> 
> Eduardo Habkost (10):
>   image-fuzzer: Open image files in binary mode
>   image-fuzzer: Write bytes instead of string to image file
>   image-fuzzer: Explicitly use integer division operator
>   image-fuzzer: Use io.StringIO
>   image-fuzzer: Use %r for all fiels at Field.__repr__()
>   image-fuzzer: Return bytes objects on string fuzzing functions
>   image-fuzzer: Use bytes constant for field values
>   image-fuzzer: Encode file name and file format to bytes
>   image-fuzzer: Run using python3
>   image-fuzzer: Use errors parameter of subprocess.Popen()
> 
>  tests/image-fuzzer/qcow2/__init__.py |  1 -
>  tests/image-fuzzer/qcow2/fuzz.py     | 54 +++++++++++++-------------
>  tests/image-fuzzer/qcow2/layout.py   | 57 ++++++++++++++--------------
>  tests/image-fuzzer/runner.py         | 12 +++---
>  4 files changed, 61 insertions(+), 63 deletions(-)
> 
> -- 
> 2.21.0
> 
> 

Thanks, applied to my block tree:
https://github.com/stefanha/qemu/commits/block

Stefan