Re: [PATCH 1/1] rcutorture: use bash shell for all the test scripts

From: Pranith Kumar
Date: Fri Jul 11 2014 - 19:34:16 EST


On Fri, Jul 11, 2014 at 7:23 PM, <josh@xxxxxxxxxxxxxxxx> wrote:
> On Fri, Jul 11, 2014 at 05:31:27PM -0400, Pranith Kumar wrote:
>> Some of the scripts encode a default /bin/sh shell. On systems which use dash as
>> default shell, these scripts fail as they are bash scripts. I encountered this
>> while testing the sprintf() changes on a Debian system where dash is the default
>> shell.
>>
>> This commit changes all such uses to use bash explicitly.
>
> Good catch.
>
> Since these all have #! lines, can you please set the executable bit on
> any that don't have it set (looks like just config2frag.sh and kvm.sh),
> and then change the Usage lines to drop the shell entirely and just
> invoke the program directly?

OK. I will send that as a separate patch.

>
>> Signed-off-by: Pranith Kumar <bobby.prani@xxxxxxxxx>
>
> With the above changed (perhaps in a separate patch):
> Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
>
>> tools/testing/selftests/rcutorture/bin/config2frag.sh | 4 ++--
>> tools/testing/selftests/rcutorture/bin/configcheck.sh | 4 ++--
>> tools/testing/selftests/rcutorture/bin/configinit.sh | 4 ++--
>> tools/testing/selftests/rcutorture/bin/kvm-build.sh | 2 +-
>> tools/testing/selftests/rcutorture/bin/kvm-recheck-lock.sh | 2 +-
>> tools/testing/selftests/rcutorture/bin/kvm-recheck-rcu.sh | 2 +-
>> tools/testing/selftests/rcutorture/bin/kvm-recheck.sh | 2 +-
>> tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh | 2 +-
>> tools/testing/selftests/rcutorture/bin/kvm.sh | 2 +-
>> tools/testing/selftests/rcutorture/bin/parse-build.sh | 4 ++--
>> tools/testing/selftests/rcutorture/bin/parse-console.sh | 4 ++--
>> tools/testing/selftests/rcutorture/bin/parse-torture.sh | 4 ++--
>> 12 files changed, 18 insertions(+), 18 deletions(-)
>>
>> diff --git a/tools/testing/selftests/rcutorture/bin/config2frag.sh b/tools/testing/selftests/rcutorture/bin/config2frag.sh
>> index 9f9ffcd..4e394ef 100644
>> --- a/tools/testing/selftests/rcutorture/bin/config2frag.sh
>> +++ b/tools/testing/selftests/rcutorture/bin/config2frag.sh
>> @@ -1,5 +1,5 @@
>> -#!/bin/sh
>> -# Usage: sh config2frag.sh < .config > configfrag
>> +#!/bin/bash
>> +# Usage: bash config2frag.sh < .config > configfrag
>> #
>> # Converts the "# CONFIG_XXX is not set" to "CONFIG_XXX=n" so that the
>> # resulting file becomes a legitimate Kconfig fragment.
>> diff --git a/tools/testing/selftests/rcutorture/bin/configcheck.sh b/tools/testing/selftests/rcutorture/bin/configcheck.sh
>> index d686537..6173ed5 100755
>> --- a/tools/testing/selftests/rcutorture/bin/configcheck.sh
>> +++ b/tools/testing/selftests/rcutorture/bin/configcheck.sh
>> @@ -1,5 +1,5 @@
>> -#!/bin/sh
>> -# Usage: sh configcheck.sh .config .config-template
>> +#!/bin/bash
>> +# Usage: bash configcheck.sh .config .config-template
>> #
>> # This program is free software; you can redistribute it and/or modify
>> # it under the terms of the GNU General Public License as published by
>> diff --git a/tools/testing/selftests/rcutorture/bin/configinit.sh b/tools/testing/selftests/rcutorture/bin/configinit.sh
>> index 9c3f3d3..d8f7418 100755
>> --- a/tools/testing/selftests/rcutorture/bin/configinit.sh
>> +++ b/tools/testing/selftests/rcutorture/bin/configinit.sh
>> @@ -1,6 +1,6 @@
>> -#!/bin/sh
>> +#!/bin/bash
>> #
>> -# sh configinit.sh config-spec-file [ build output dir ]
>> +# bash configinit.sh config-spec-file [ build output dir ]
>> #
>> # Create a .config file from the spec file. Run from the kernel source tree.
>> # Exits with 0 if all went well, with 1 if all went well but the config
>> diff --git a/tools/testing/selftests/rcutorture/bin/kvm-build.sh b/tools/testing/selftests/rcutorture/bin/kvm-build.sh
>> index 7c1e56b..e4bfb91 100755
>> --- a/tools/testing/selftests/rcutorture/bin/kvm-build.sh
>> +++ b/tools/testing/selftests/rcutorture/bin/kvm-build.sh
>> @@ -2,7 +2,7 @@
>> #
>> # Build a kvm-ready Linux kernel from the tree in the current directory.
>> #
>> -# Usage: sh kvm-build.sh config-template build-dir more-configs
>> +# Usage: bash kvm-build.sh config-template build-dir more-configs
>> #
>> # This program is free software; you can redistribute it and/or modify
>> # it under the terms of the GNU General Public License as published by
>> diff --git a/tools/testing/selftests/rcutorture/bin/kvm-recheck-lock.sh b/tools/testing/selftests/rcutorture/bin/kvm-recheck-lock.sh
>> index 7f1ff1a..30cbb63 100755
>> --- a/tools/testing/selftests/rcutorture/bin/kvm-recheck-lock.sh
>> +++ b/tools/testing/selftests/rcutorture/bin/kvm-recheck-lock.sh
>> @@ -2,7 +2,7 @@
>> #
>> # Analyze a given results directory for locktorture progress.
>> #
>> -# Usage: sh kvm-recheck-lock.sh resdir
>> +# Usage: bash kvm-recheck-lock.sh resdir
>> #
>> # This program is free software; you can redistribute it and/or modify
>> # it under the terms of the GNU General Public License as published by
>> diff --git a/tools/testing/selftests/rcutorture/bin/kvm-recheck-rcu.sh b/tools/testing/selftests/rcutorture/bin/kvm-recheck-rcu.sh
>> index 307c4b9..6e94a5e 100755
>> --- a/tools/testing/selftests/rcutorture/bin/kvm-recheck-rcu.sh
>> +++ b/tools/testing/selftests/rcutorture/bin/kvm-recheck-rcu.sh
>> @@ -2,7 +2,7 @@
>> #
>> # Analyze a given results directory for rcutorture progress.
>> #
>> -# Usage: sh kvm-recheck-rcu.sh resdir
>> +# Usage: bash kvm-recheck-rcu.sh resdir
>> #
>> # This program is free software; you can redistribute it and/or modify
>> # it under the terms of the GNU General Public License as published by
>> diff --git a/tools/testing/selftests/rcutorture/bin/kvm-recheck.sh b/tools/testing/selftests/rcutorture/bin/kvm-recheck.sh
>> index 3f6c9b7..3482b3f 100755
>> --- a/tools/testing/selftests/rcutorture/bin/kvm-recheck.sh
>> +++ b/tools/testing/selftests/rcutorture/bin/kvm-recheck.sh
>> @@ -4,7 +4,7 @@
>> # check the build and console output for errors. Given a directory
>> # containing results directories, this recursively checks them all.
>> #
>> -# Usage: sh kvm-recheck.sh resdir ...
>> +# Usage: bash kvm-recheck.sh resdir ...
>> #
>> # This program is free software; you can redistribute it and/or modify
>> # it under the terms of the GNU General Public License as published by
>> diff --git a/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh b/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh
>> index 0f69dcb..5c265da 100755
>> --- a/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh
>> +++ b/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh
>> @@ -6,7 +6,7 @@
>> # Execute this in the source tree. Do not run it as a background task
>> # because qemu does not seem to like that much.
>> #
>> -# Usage: sh kvm-test-1-run.sh config builddir resdir minutes qemu-args boot_args
>> +# Usage: bash kvm-test-1-run.sh config builddir resdir minutes qemu-args boot_args
>> #
>> # qemu-args defaults to "-nographic", along with arguments specifying the
>> # number of CPUs and other options generated from
>> diff --git a/tools/testing/selftests/rcutorture/bin/kvm.sh b/tools/testing/selftests/rcutorture/bin/kvm.sh
>> index 589e9c3..ff147ad 100644
>> --- a/tools/testing/selftests/rcutorture/bin/kvm.sh
>> +++ b/tools/testing/selftests/rcutorture/bin/kvm.sh
>> @@ -7,7 +7,7 @@
>> # Edit the definitions below to set the locations of the various directories,
>> # as well as the test duration.
>> #
>> -# Usage: sh kvm.sh [ options ]
>> +# Usage: bash kvm.sh [ options ]
>> #
>> # This program is free software; you can redistribute it and/or modify
>> # it under the terms of the GNU General Public License as published by
>> diff --git a/tools/testing/selftests/rcutorture/bin/parse-build.sh b/tools/testing/selftests/rcutorture/bin/parse-build.sh
>> index 5432309..41eeeef 100755
>> --- a/tools/testing/selftests/rcutorture/bin/parse-build.sh
>> +++ b/tools/testing/selftests/rcutorture/bin/parse-build.sh
>> @@ -1,4 +1,4 @@
>> -#!/bin/sh
>> +#!/bin/bash
>> #
>> # Check the build output from an rcutorture run for goodness.
>> # The "file" is a pathname on the local system, and "title" is
>> @@ -7,7 +7,7 @@
>> # The file must contain kernel build output.
>> #
>> # Usage:
>> -# sh parse-build.sh file title
>> +# bash parse-build.sh file title
>> #
>> # This program is free software; you can redistribute it and/or modify
>> # it under the terms of the GNU General Public License as published by
>> diff --git a/tools/testing/selftests/rcutorture/bin/parse-console.sh b/tools/testing/selftests/rcutorture/bin/parse-console.sh
>> index 4185d4c..2517eae 100755
>> --- a/tools/testing/selftests/rcutorture/bin/parse-console.sh
>> +++ b/tools/testing/selftests/rcutorture/bin/parse-console.sh
>> @@ -1,11 +1,11 @@
>> -#!/bin/sh
>> +#!/bin/bash
>> #
>> # Check the console output from an rcutorture run for oopses.
>> # The "file" is a pathname on the local system, and "title" is
>> # a text string for error-message purposes.
>> #
>> # Usage:
>> -# sh parse-console.sh file title
>> +# bash parse-console.sh file title
>> #
>> # This program is free software; you can redistribute it and/or modify
>> # it under the terms of the GNU General Public License as published by
>> diff --git a/tools/testing/selftests/rcutorture/bin/parse-torture.sh b/tools/testing/selftests/rcutorture/bin/parse-torture.sh
>> index 3455560..bbec40b 100755
>> --- a/tools/testing/selftests/rcutorture/bin/parse-torture.sh
>> +++ b/tools/testing/selftests/rcutorture/bin/parse-torture.sh
>> @@ -1,4 +1,4 @@
>> -#!/bin/sh
>> +#!/bin/bash
>> #
>> # Check the console output from a torture run for goodness.
>> # The "file" is a pathname on the local system, and "title" is
>> @@ -8,7 +8,7 @@
>> # with other dmesg text, as in console-log output.
>> #
>> # Usage:
>> -# sh parse-torture.sh file title
>> +# bash parse-torture.sh file title
>> #
>> # This program is free software; you can redistribute it and/or modify
>> # it under the terms of the GNU General Public License as published by
>> --
>> 1.9.1
>>



--
Pranith
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/