[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2abc7355-190e-b8a6-173f-d3190a0229aa@foss.arm.com>
Date: Thu, 16 Dec 2021 19:45:42 +0000
From: Carsten Haitzler <carsten.haitzler@...s.arm.com>
To: Daniel Thompson <daniel.thompson@...aro.org>
Cc: linux-kernel@...r.kernel.org, coresight@...ts.linaro.org,
suzuki.poulose@....com, mathieu.poirier@...aro.org,
mike.leach@...aro.org, leo.yan@...aro.org,
inux-perf-users@...r.kernel.org, acme@...nel.org
Subject: Re: [PATCH 02/12] perf test: Shell - only run .sh shell files to skip
other files
On 12/16/21 10:22, Daniel Thompson wrote:
> On Wed, Dec 15, 2021 at 04:03:53PM +0000, carsten.haitzler@...s.arm.com wrote:
>> From: Carsten Haitzler <carsten.haitzler@....com>
>>
>> You edit your scripts in the tests and end up with your usual shell
>> backup files with ~ or .bak or something else at the end, but then your
>> next perf test run wants to run the backups too. You might also have perf
>> .data files in the directory or something else undesireable as well. You end
>> up chasing which test is the one you edited and the backup and have to keep
>> removing all the backup files, so automatically skip any files that are
>> not plain *.sh scripts to limit the time wasted in chasing ghosts.
>>
>> Signed-off-by: Carsten Haitzler <carsten.haitzler@....com>
>
> Why require both executable *and* endswith('.sh')?
Paranoia. :) Making sure we really only run things that are meant to be
run and avoid other junk/tmp/whatever files.
>> ---
>> tools/perf/tests/builtin-test.c | 15 ++++++++++++++-
>> 1 file changed, 14 insertions(+), 1 deletion(-)
>>
>> diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-test.c
>> index ece272b55587..849737ead9fd 100644
>> --- a/tools/perf/tests/builtin-test.c
>> +++ b/tools/perf/tests/builtin-test.c
>> @@ -297,7 +297,20 @@ static const char *shell_test__description(char *description, size_t size,
>> for (int __i = 0; __i < nr && (ent = entlist[__i]); __i++) \
>> if (!is_directory(base, ent) && \
>> is_executable_file(base, ent) && \
>> - ent->d_name[0] != '.')
>> + ent->d_name[0] != '.' && \
>> + (shell_file_is_sh(ent->d_name) == 0))
>> +
>> +static int shell_file_is_sh(const char *file)
>> +{
>> + const char *ext;
>> +
>> + ext = strchr(file, '.');
>
> Shouldn't this be strrchr()?
Oh indeed probably should be. My bad. Nothing uses a dot inside the
filename yet. I can fix that - will wait for the rest to come in before
doing an update
Powered by blists - more mailing lists