All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 21/24] selftests: memfd: return Kselftest Skip code for skipped tests
@ 2018-05-07 23:01 ` shuah
  0 siblings, 0 replies; 6+ messages in thread
From: Shuah Khan (Samsung OSG) @ 2018-05-07 23:01 UTC (permalink / raw)
  To: shuah, akpm, mike.kravetz, marcandre.lureau, lizhijian
  Cc: linux-kselftest, linux-kernel

When memfd test is skipped because of unmet dependencies and/or unsupported
configuration, it returns non-zero value which is treated as a fail by the
Kselftest framework. This leads to false negative result even when the test
could not be run.

Change it to return kselftest skip code when a test gets skipped to clearly
report that the test could not be run.

Added an explicit check for root user at the start of memfd hugetlbfs test
and return skip code if a non-root user attempts to run it.

In addition, return skip code when not enough huge pages are available to
run the test.

Kselftest framework SKIP code is 4 and the framework prints appropriate
messages to indicate that the test is skipped.

Signed-off-by: Shuah Khan (Samsung OSG) <shuah@kernel.org>
---

Changes since v1:
-- addressed review comments on v1
-- Fixed a regression in v1 that changed the behavior to require root
   for all tests not just the hugetlbfs test.

 tools/testing/selftests/memfd/run_tests.sh | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/tools/testing/selftests/memfd/run_tests.sh b/tools/testing/selftests/memfd/run_tests.sh
index c2d41ed81b24..2013f195e623 100755
--- a/tools/testing/selftests/memfd/run_tests.sh
+++ b/tools/testing/selftests/memfd/run_tests.sh
@@ -1,6 +1,9 @@
 #!/bin/bash
 # please run as root
 
+# Kselftest framework requirement - SKIP code is 4.
+ksft_skip=4
+
 #
 # Normal tests requiring no special resources
 #
@@ -29,12 +32,13 @@ if [ -n "$freepgs" ] && [ $freepgs -lt $hpages_test ]; then
 	nr_hugepgs=`cat /proc/sys/vm/nr_hugepages`
 	hpages_needed=`expr $hpages_test - $freepgs`
 
+	if [ $UID != 0 ]; then
+		echo "Please run memfd with hugetlbfs test as root"
+		exit $ksft_skip
+	fi
+
 	echo 3 > /proc/sys/vm/drop_caches
 	echo $(( $hpages_needed + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
-	if [ $? -ne 0 ]; then
-		echo "Please run this test as root"
-		exit 1
-	fi
 	while read name size unit; do
 		if [ "$name" = "HugePages_Free:" ]; then
 			freepgs=$size
@@ -53,7 +57,7 @@ if [ $freepgs -lt $hpages_test ]; then
 	fi
 	printf "Not enough huge pages available (%d < %d)\n" \
 		$freepgs $needpgs
-	exit 1
+	exit $ksft_skip
 fi
 
 #
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 21/24] selftests: memfd: return Kselftest Skip code for skipped tests
@ 2018-05-07 23:01 ` shuah
  0 siblings, 0 replies; 6+ messages in thread
From: shuah @ 2018-05-07 23:01 UTC (permalink / raw)


When memfd test is skipped because of unmet dependencies and/or unsupported
configuration, it returns non-zero value which is treated as a fail by the
Kselftest framework. This leads to false negative result even when the test
could not be run.

Change it to return kselftest skip code when a test gets skipped to clearly
report that the test could not be run.

Added an explicit check for root user at the start of memfd hugetlbfs test
and return skip code if a non-root user attempts to run it.

In addition, return skip code when not enough huge pages are available to
run the test.

Kselftest framework SKIP code is 4 and the framework prints appropriate
messages to indicate that the test is skipped.

Signed-off-by: Shuah Khan (Samsung OSG) <shuah at kernel.org>
---

Changes since v1:
-- addressed review comments on v1
-- Fixed a regression in v1 that changed the behavior to require root
   for all tests not just the hugetlbfs test.

 tools/testing/selftests/memfd/run_tests.sh | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/tools/testing/selftests/memfd/run_tests.sh b/tools/testing/selftests/memfd/run_tests.sh
index c2d41ed81b24..2013f195e623 100755
--- a/tools/testing/selftests/memfd/run_tests.sh
+++ b/tools/testing/selftests/memfd/run_tests.sh
@@ -1,6 +1,9 @@
 #!/bin/bash
 # please run as root
 
+# Kselftest framework requirement - SKIP code is 4.
+ksft_skip=4
+
 #
 # Normal tests requiring no special resources
 #
@@ -29,12 +32,13 @@ if [ -n "$freepgs" ] && [ $freepgs -lt $hpages_test ]; then
 	nr_hugepgs=`cat /proc/sys/vm/nr_hugepages`
 	hpages_needed=`expr $hpages_test - $freepgs`
 
+	if [ $UID != 0 ]; then
+		echo "Please run memfd with hugetlbfs test as root"
+		exit $ksft_skip
+	fi
+
 	echo 3 > /proc/sys/vm/drop_caches
 	echo $(( $hpages_needed + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
-	if [ $? -ne 0 ]; then
-		echo "Please run this test as root"
-		exit 1
-	fi
 	while read name size unit; do
 		if [ "$name" = "HugePages_Free:" ]; then
 			freepgs=$size
@@ -53,7 +57,7 @@ if [ $freepgs -lt $hpages_test ]; then
 	fi
 	printf "Not enough huge pages available (%d < %d)\n" \
 		$freepgs $needpgs
-	exit 1
+	exit $ksft_skip
 fi
 
 #
-- 
2.14.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 21/24] selftests: memfd: return Kselftest Skip code for skipped tests
@ 2018-05-07 23:01 ` shuah
  0 siblings, 0 replies; 6+ messages in thread
From: Shuah Khan (Samsung OSG) @ 2018-05-07 23:01 UTC (permalink / raw)


When memfd test is skipped because of unmet dependencies and/or unsupported
configuration, it returns non-zero value which is treated as a fail by the
Kselftest framework. This leads to false negative result even when the test
could not be run.

Change it to return kselftest skip code when a test gets skipped to clearly
report that the test could not be run.

Added an explicit check for root user at the start of memfd hugetlbfs test
and return skip code if a non-root user attempts to run it.

In addition, return skip code when not enough huge pages are available to
run the test.

Kselftest framework SKIP code is 4 and the framework prints appropriate
messages to indicate that the test is skipped.

Signed-off-by: Shuah Khan (Samsung OSG) <shuah at kernel.org>
---

Changes since v1:
-- addressed review comments on v1
-- Fixed a regression in v1 that changed the behavior to require root
   for all tests not just the hugetlbfs test.

 tools/testing/selftests/memfd/run_tests.sh | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/tools/testing/selftests/memfd/run_tests.sh b/tools/testing/selftests/memfd/run_tests.sh
index c2d41ed81b24..2013f195e623 100755
--- a/tools/testing/selftests/memfd/run_tests.sh
+++ b/tools/testing/selftests/memfd/run_tests.sh
@@ -1,6 +1,9 @@
 #!/bin/bash
 # please run as root
 
+# Kselftest framework requirement - SKIP code is 4.
+ksft_skip=4
+
 #
 # Normal tests requiring no special resources
 #
@@ -29,12 +32,13 @@ if [ -n "$freepgs" ] && [ $freepgs -lt $hpages_test ]; then
 	nr_hugepgs=`cat /proc/sys/vm/nr_hugepages`
 	hpages_needed=`expr $hpages_test - $freepgs`
 
+	if [ $UID != 0 ]; then
+		echo "Please run memfd with hugetlbfs test as root"
+		exit $ksft_skip
+	fi
+
 	echo 3 > /proc/sys/vm/drop_caches
 	echo $(( $hpages_needed + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
-	if [ $? -ne 0 ]; then
-		echo "Please run this test as root"
-		exit 1
-	fi
 	while read name size unit; do
 		if [ "$name" = "HugePages_Free:" ]; then
 			freepgs=$size
@@ -53,7 +57,7 @@ if [ $freepgs -lt $hpages_test ]; then
 	fi
 	printf "Not enough huge pages available (%d < %d)\n" \
 		$freepgs $needpgs
-	exit 1
+	exit $ksft_skip
 fi
 
 #
-- 
2.14.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 21/24] selftests: memfd: return Kselftest Skip code for skipped tests
  2018-05-07 23:01 ` shuah
  (?)
@ 2018-05-08  0:20   ` mike.kravetz
  -1 siblings, 0 replies; 6+ messages in thread
From: Mike Kravetz @ 2018-05-08  0:20 UTC (permalink / raw)
  To: Shuah Khan (Samsung OSG), akpm, marcandre.lureau, lizhijian
  Cc: linux-kselftest, linux-kernel

On 05/07/2018 04:01 PM, Shuah Khan (Samsung OSG) wrote:
> When memfd test is skipped because of unmet dependencies and/or unsupported
> configuration, it returns non-zero value which is treated as a fail by the
> Kselftest framework. This leads to false negative result even when the test
> could not be run.
> 
> Change it to return kselftest skip code when a test gets skipped to clearly
> report that the test could not be run.
> 
> Added an explicit check for root user at the start of memfd hugetlbfs test
> and return skip code if a non-root user attempts to run it.
> 
> In addition, return skip code when not enough huge pages are available to
> run the test.
> 
> Kselftest framework SKIP code is 4 and the framework prints appropriate
> messages to indicate that the test is skipped.
> 
> Signed-off-by: Shuah Khan (Samsung OSG) <shuah@kernel.org>

Thanks for making the changes!

Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>

-- 
Mike Kravetz
> ---
> 
> Changes since v1:
> -- addressed review comments on v1
> -- Fixed a regression in v1 that changed the behavior to require root
>    for all tests not just the hugetlbfs test.
> 
>  tools/testing/selftests/memfd/run_tests.sh | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/testing/selftests/memfd/run_tests.sh b/tools/testing/selftests/memfd/run_tests.sh
> index c2d41ed81b24..2013f195e623 100755
> --- a/tools/testing/selftests/memfd/run_tests.sh
> +++ b/tools/testing/selftests/memfd/run_tests.sh
> @@ -1,6 +1,9 @@
>  #!/bin/bash
>  # please run as root
>  
> +# Kselftest framework requirement - SKIP code is 4.
> +ksft_skip=4
> +
>  #
>  # Normal tests requiring no special resources
>  #
> @@ -29,12 +32,13 @@ if [ -n "$freepgs" ] && [ $freepgs -lt $hpages_test ]; then
>  	nr_hugepgs=`cat /proc/sys/vm/nr_hugepages`
>  	hpages_needed=`expr $hpages_test - $freepgs`
>  
> +	if [ $UID != 0 ]; then
> +		echo "Please run memfd with hugetlbfs test as root"
> +		exit $ksft_skip
> +	fi
> +
>  	echo 3 > /proc/sys/vm/drop_caches
>  	echo $(( $hpages_needed + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
> -	if [ $? -ne 0 ]; then
> -		echo "Please run this test as root"
> -		exit 1
> -	fi
>  	while read name size unit; do
>  		if [ "$name" = "HugePages_Free:" ]; then
>  			freepgs=$size
> @@ -53,7 +57,7 @@ if [ $freepgs -lt $hpages_test ]; then
>  	fi
>  	printf "Not enough huge pages available (%d < %d)\n" \
>  		$freepgs $needpgs
> -	exit 1
> +	exit $ksft_skip
>  fi
>  
>  #
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 21/24] selftests: memfd: return Kselftest Skip code for skipped tests
@ 2018-05-08  0:20   ` mike.kravetz
  0 siblings, 0 replies; 6+ messages in thread
From: mike.kravetz @ 2018-05-08  0:20 UTC (permalink / raw)


On 05/07/2018 04:01 PM, Shuah Khan (Samsung OSG) wrote:
> When memfd test is skipped because of unmet dependencies and/or unsupported
> configuration, it returns non-zero value which is treated as a fail by the
> Kselftest framework. This leads to false negative result even when the test
> could not be run.
> 
> Change it to return kselftest skip code when a test gets skipped to clearly
> report that the test could not be run.
> 
> Added an explicit check for root user at the start of memfd hugetlbfs test
> and return skip code if a non-root user attempts to run it.
> 
> In addition, return skip code when not enough huge pages are available to
> run the test.
> 
> Kselftest framework SKIP code is 4 and the framework prints appropriate
> messages to indicate that the test is skipped.
> 
> Signed-off-by: Shuah Khan (Samsung OSG) <shuah at kernel.org>

Thanks for making the changes!

Reviewed-by: Mike Kravetz <mike.kravetz at oracle.com>

-- 
Mike Kravetz
> ---
> 
> Changes since v1:
> -- addressed review comments on v1
> -- Fixed a regression in v1 that changed the behavior to require root
>    for all tests not just the hugetlbfs test.
> 
>  tools/testing/selftests/memfd/run_tests.sh | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/testing/selftests/memfd/run_tests.sh b/tools/testing/selftests/memfd/run_tests.sh
> index c2d41ed81b24..2013f195e623 100755
> --- a/tools/testing/selftests/memfd/run_tests.sh
> +++ b/tools/testing/selftests/memfd/run_tests.sh
> @@ -1,6 +1,9 @@
>  #!/bin/bash
>  # please run as root
>  
> +# Kselftest framework requirement - SKIP code is 4.
> +ksft_skip=4
> +
>  #
>  # Normal tests requiring no special resources
>  #
> @@ -29,12 +32,13 @@ if [ -n "$freepgs" ] && [ $freepgs -lt $hpages_test ]; then
>  	nr_hugepgs=`cat /proc/sys/vm/nr_hugepages`
>  	hpages_needed=`expr $hpages_test - $freepgs`
>  
> +	if [ $UID != 0 ]; then
> +		echo "Please run memfd with hugetlbfs test as root"
> +		exit $ksft_skip
> +	fi
> +
>  	echo 3 > /proc/sys/vm/drop_caches
>  	echo $(( $hpages_needed + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
> -	if [ $? -ne 0 ]; then
> -		echo "Please run this test as root"
> -		exit 1
> -	fi
>  	while read name size unit; do
>  		if [ "$name" = "HugePages_Free:" ]; then
>  			freepgs=$size
> @@ -53,7 +57,7 @@ if [ $freepgs -lt $hpages_test ]; then
>  	fi
>  	printf "Not enough huge pages available (%d < %d)\n" \
>  		$freepgs $needpgs
> -	exit 1
> +	exit $ksft_skip
>  fi
>  
>  #
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 21/24] selftests: memfd: return Kselftest Skip code for skipped tests
@ 2018-05-08  0:20   ` mike.kravetz
  0 siblings, 0 replies; 6+ messages in thread
From: Mike Kravetz @ 2018-05-08  0:20 UTC (permalink / raw)


On 05/07/2018 04:01 PM, Shuah Khan (Samsung OSG) wrote:
> When memfd test is skipped because of unmet dependencies and/or unsupported
> configuration, it returns non-zero value which is treated as a fail by the
> Kselftest framework. This leads to false negative result even when the test
> could not be run.
> 
> Change it to return kselftest skip code when a test gets skipped to clearly
> report that the test could not be run.
> 
> Added an explicit check for root user at the start of memfd hugetlbfs test
> and return skip code if a non-root user attempts to run it.
> 
> In addition, return skip code when not enough huge pages are available to
> run the test.
> 
> Kselftest framework SKIP code is 4 and the framework prints appropriate
> messages to indicate that the test is skipped.
> 
> Signed-off-by: Shuah Khan (Samsung OSG) <shuah at kernel.org>

Thanks for making the changes!

Reviewed-by: Mike Kravetz <mike.kravetz at oracle.com>

-- 
Mike Kravetz
> ---
> 
> Changes since v1:
> -- addressed review comments on v1
> -- Fixed a regression in v1 that changed the behavior to require root
>    for all tests not just the hugetlbfs test.
> 
>  tools/testing/selftests/memfd/run_tests.sh | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/testing/selftests/memfd/run_tests.sh b/tools/testing/selftests/memfd/run_tests.sh
> index c2d41ed81b24..2013f195e623 100755
> --- a/tools/testing/selftests/memfd/run_tests.sh
> +++ b/tools/testing/selftests/memfd/run_tests.sh
> @@ -1,6 +1,9 @@
>  #!/bin/bash
>  # please run as root
>  
> +# Kselftest framework requirement - SKIP code is 4.
> +ksft_skip=4
> +
>  #
>  # Normal tests requiring no special resources
>  #
> @@ -29,12 +32,13 @@ if [ -n "$freepgs" ] && [ $freepgs -lt $hpages_test ]; then
>  	nr_hugepgs=`cat /proc/sys/vm/nr_hugepages`
>  	hpages_needed=`expr $hpages_test - $freepgs`
>  
> +	if [ $UID != 0 ]; then
> +		echo "Please run memfd with hugetlbfs test as root"
> +		exit $ksft_skip
> +	fi
> +
>  	echo 3 > /proc/sys/vm/drop_caches
>  	echo $(( $hpages_needed + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
> -	if [ $? -ne 0 ]; then
> -		echo "Please run this test as root"
> -		exit 1
> -	fi
>  	while read name size unit; do
>  		if [ "$name" = "HugePages_Free:" ]; then
>  			freepgs=$size
> @@ -53,7 +57,7 @@ if [ $freepgs -lt $hpages_test ]; then
>  	fi
>  	printf "Not enough huge pages available (%d < %d)\n" \
>  		$freepgs $needpgs
> -	exit 1
> +	exit $ksft_skip
>  fi
>  
>  #
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-05-08  0:21 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-07 23:01 [PATCH v2 21/24] selftests: memfd: return Kselftest Skip code for skipped tests Shuah Khan (Samsung OSG)
2018-05-07 23:01 ` Shuah Khan (Samsung OSG)
2018-05-07 23:01 ` shuah
2018-05-08  0:20 ` Mike Kravetz
2018-05-08  0:20   ` Mike Kravetz
2018-05-08  0:20   ` mike.kravetz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.