Message ID | 20190118173103.4903-3-berrange@redhat.com |
---|---|
State | New |
Headers | show |
Series | None | expand |
On 1/18/19 11:31 AM, Daniel P. Berrangé wrote: > When generating the trace-events-all file, the build system simply > concatenates all the individual trace-events files. If any one of those > files does not have a final newline, the printf format string will have > the contents of the first line of the next file appended to it, which is > usually a '#' comment. > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > --- > hw/gpio/trace-events | 2 +- > scripts/tracetool/__init__.py | 2 ++ > 2 files changed, 3 insertions(+), 1 deletion(-) > Reviewed-by: Eric Blake <eblake@redhat.com> Does checkpatch and/or patchew flag what are intended to be text files but which lack a trailing newline? If not, how hard would it be to get them to do so? > diff --git a/hw/gpio/trace-events b/hw/gpio/trace-events > index cb41a89756..5d4dd200c2 100644 > --- a/hw/gpio/trace-events > +++ b/hw/gpio/trace-events > @@ -4,4 +4,4 @@ > nrf51_gpio_read(uint64_t offset, uint64_t r) "offset 0x%" PRIx64 " value 0x%" PRIx64 > nrf51_gpio_write(uint64_t offset, uint64_t value) "offset 0x%" PRIx64 " value 0x%" PRIx64 > nrf51_gpio_set(int64_t line, int64_t value) "line %" PRIi64 " value %" PRIi64 > -nrf51_gpio_update_output_irq(int64_t line, int64_t value) "line %" PRIi64 " value %" PRIi64 > \ No newline at end of file > +nrf51_gpio_update_output_irq(int64_t line, int64_t value) "line %" PRIi64 " value %" PRIi64 > diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py Fixes the problem file... > index 0e3c9e146c..3478ac93ab 100644 > --- a/scripts/tracetool/__init__.py > +++ b/scripts/tracetool/__init__.py > @@ -350,6 +350,8 @@ def read_events(fobj, fname): > > events = [] > for lineno, line in enumerate(fobj, 1): > + if line[-1] != '\n': > + raise ValueError("%s does not end with a new line" % fname) and ensures that no future trace-events files will have the problem, whether or not checkpatch flags other such files.
On Fri, Jan 18, 2019 at 05:31:01PM +0000, Daniel P. Berrangé wrote: > When generating the trace-events-all file, the build system simply > concatenates all the individual trace-events files. If any one of those > files does not have a final newline, the printf format string will have > the contents of the first line of the next file appended to it, which is > usually a '#' comment. > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > --- > hw/gpio/trace-events | 2 +- > scripts/tracetool/__init__.py | 2 ++ > 2 files changed, 3 insertions(+), 1 deletion(-) Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
On Fri, Jan 18, 2019 at 11:42:14AM -0600, Eric Blake wrote: > On 1/18/19 11:31 AM, Daniel P. Berrangé wrote: > > When generating the trace-events-all file, the build system simply > > concatenates all the individual trace-events files. If any one of those > > files does not have a final newline, the printf format string will have > > the contents of the first line of the next file appended to it, which is > > usually a '#' comment. > > > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > > --- > > hw/gpio/trace-events | 2 +- > > scripts/tracetool/__init__.py | 2 ++ > > 2 files changed, 3 insertions(+), 1 deletion(-) > > > > Reviewed-by: Eric Blake <eblake@redhat.com> > > Does checkpatch and/or patchew flag what are intended to be text files > but which lack a trailing newline? If not, how hard would it be to get > them to do so? it probably should check for missing newlines at end of file, but I'm going to let someone else tackle that due to time pressures on what was supposed to be a quick enhancement :-) Regards, Daniel
diff --git a/hw/gpio/trace-events b/hw/gpio/trace-events index cb41a89756..5d4dd200c2 100644 --- a/hw/gpio/trace-events +++ b/hw/gpio/trace-events @@ -4,4 +4,4 @@ nrf51_gpio_read(uint64_t offset, uint64_t r) "offset 0x%" PRIx64 " value 0x%" PRIx64 nrf51_gpio_write(uint64_t offset, uint64_t value) "offset 0x%" PRIx64 " value 0x%" PRIx64 nrf51_gpio_set(int64_t line, int64_t value) "line %" PRIi64 " value %" PRIi64 -nrf51_gpio_update_output_irq(int64_t line, int64_t value) "line %" PRIi64 " value %" PRIi64 \ No newline at end of file +nrf51_gpio_update_output_irq(int64_t line, int64_t value) "line %" PRIi64 " value %" PRIi64 diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py index 0e3c9e146c..3478ac93ab 100644 --- a/scripts/tracetool/__init__.py +++ b/scripts/tracetool/__init__.py @@ -350,6 +350,8 @@ def read_events(fobj, fname): events = [] for lineno, line in enumerate(fobj, 1): + if line[-1] != '\n': + raise ValueError("%s does not end with a new line" % fname) if not line.strip(): continue if line.lstrip().startswith('#'):
When generating the trace-events-all file, the build system simply concatenates all the individual trace-events files. If any one of those files does not have a final newline, the printf format string will have the contents of the first line of the next file appended to it, which is usually a '#' comment. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- hw/gpio/trace-events | 2 +- scripts/tracetool/__init__.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-)