• John Kacur's avatar
    rtla: Fix -t\--trace[=file] · 842fc5b8
    John Kacur authored
    The -t option has an optional argument.
    The usual case is for a short option to be specified without an '='
    and for the long version to be specified with an '='
    
    Various forms of this do not work as expected.
    For example:
    rtla timerlat hist -T50 -tfile.txt
    will result in a truncated file name of "ile.txt"
    
    Another example is that the long form without the '=' will result in the
    default file name instead of the requested file name.
    
    This patch properly parses the optional argument with and without '='
    and with and without spaces for the short form.
    
    This patch was also tested using -t and --trace without providing a file
    name both as the last requested option and with a following long and
    short option.
    
    For example:
    
      rtla timerlat hist -T50 -t -u
      rtla timerlat hist -T50 --trace -u
    
    This fix is applied to both timerlat top and hist
    and to osnoise top and hist.
    
    Here is the full testing for rtla timerlat hist.
    Before applying the patch
    
      rtla timerlat hist -T50 -t=file.txt
        Works as expected, "file.txt"
    
      rtla timerlat hist -T50 -tfile.txt
        Truncated file name "ile.txt"
    
      rtla timerlat hist -T50 -t file.txt
        Default file name instead of file.txt
    
      rtla timerlat hist -T50 --trace=file.txt
        Truncated file name "ile.txt"
    
      rtla timerlat hist -T50 --trace file.txt
        Default file name "timerlat_trace.txt" instead of "file.txt"
    
    After applying the patch:
    
      rtla timerlat hist -T50 -t=file.txt
        Works as expected, "file.txt"
    
      rtla timerlat hist -T50 -tfile.txt
        Works as expected, "file.txt"
    
      rtla timerlat hist -T50 -t file.txt
        Works as expected, "file.txt"
    
      rtla timerlat hist -T50 --trace=file.txt
        Works as expected, "file.txt"
    
      rtla timerlat hist -T50 --trace file.txt
        Works as expected, "file.txt"
    
    In addition the following tests were performed to make sure that
    the default file name worked as expected including with trailing
    options.
    
      rtla timerlat hist -T50 -t
        Works as expected "timerlat_trace.txt"
    
      rtla timerlat hist -T50 --trace
        Works as expected "timerlat_trace.txt"
    
      rtla timerlat hist -T50 -t -u
        Works as expected "timerlat_trace.txt"
    
      rtla timerlat hist -T50 --trace -u
        Works as expected "timerlat_trace.txt"
    
    Link: https://lkml.kernel.org/r/20240515183024.59985-1-jkacur@redhat.com
    
    Cc: Daniel Bristot de Oliveria <bristot@kernel.org>
    Signed-off-by: default avatarJohn Kacur <jkacur@redhat.com>
    Signed-off-by: default avatarDaniel Bristot de Oliveira <bristot@kernel.org>
    842fc5b8
osnoise_hist.c 24.2 KB