From: "Luis R. Rodriguez" <mcgrof@kernel.org>
To: akpm@linux-foundation.org, keescook@chromium.org
Cc: alan@linux.intel.com, tytso@mit.edu, gregkh@linuxfoundation.org,
torvalds@linux.intel.com, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org,
"Luis R. Rodriguez" <mcgrof@kernel.org>
Subject: [PATCH 5/6] test_sysctl: add simple proc_douintvec() case
Date: Thu, 25 May 2017 16:37:28 -0700 [thread overview]
Message-ID: <20170525233729.18530-6-mcgrof@kernel.org> (raw)
In-Reply-To: <20170525233729.18530-1-mcgrof@kernel.org>
Test against a simple proc_douintvec() case. While at it, add
a test against UINT_MAX. Make sure UINT_MAX works, and UINT_MAX+1
will fail and that negative values are not accepted.
Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
---
lib/test_sysctl.c | 11 ++++++
tools/testing/selftests/sysctl/sysctl.sh | 63 ++++++++++++++++++++++++++++++++
2 files changed, 74 insertions(+)
diff --git a/lib/test_sysctl.c b/lib/test_sysctl.c
index 1472e1ae4931..53db3513ab08 100644
--- a/lib/test_sysctl.c
+++ b/lib/test_sysctl.c
@@ -43,6 +43,8 @@ struct test_sysctl_data {
int int_0001;
int int_0002;
+ unsigned int uint_0001;
+
char string_0001[65];
};
@@ -50,6 +52,8 @@ static struct test_sysctl_data test_data = {
.int_0001 = 60,
.int_0002 = 1,
+ .uint_0001 = 314,
+
.string_0001 = "(none)",
};
@@ -72,6 +76,13 @@ static struct ctl_table test_table[] = {
.proc_handler = proc_dointvec,
},
{
+ .procname = "uint_0001",
+ .data = &test_data.uint_0001,
+ .maxlen = sizeof(unsigned int),
+ .mode = 0644,
+ .proc_handler = proc_douintvec,
+ },
+ {
.procname = "string_0001",
.data = &test_data.string_0001,
.maxlen = sizeof(test_data.string_0001),
diff --git a/tools/testing/selftests/sysctl/sysctl.sh b/tools/testing/selftests/sysctl/sysctl.sh
index bf1adb19ab66..d42e9e61d16a 100755
--- a/tools/testing/selftests/sysctl/sysctl.sh
+++ b/tools/testing/selftests/sysctl/sysctl.sh
@@ -32,6 +32,7 @@ TEST_FILE=$(mktemp)
ALL_TESTS="0001:1:1"
ALL_TESTS="$ALL_TESTS 0002:1:1"
ALL_TESTS="$ALL_TESTS 0003:1:1"
+ALL_TESTS="$ALL_TESTS 0004:1:1"
test_modprobe()
{
@@ -63,6 +64,9 @@ function allow_user_defaults()
if [ -z $INT_MAX ]; then
INT_MAX=$(getconf INT_MAX)
fi
+ if [ -z $UINT_MAX ]; then
+ UINT_MAX=$(getconf UINT_MAX)
+ fi
}
test_reqs()
@@ -106,6 +110,9 @@ reset_vals()
int_0002)
VAL="1"
;;
+ uint_0001)
+ VAL="314"
+ ;;
string_0001)
VAL="(none)"
;;
@@ -317,6 +324,49 @@ run_limit_digit_int()
test_rc
}
+# You are using an unsigned int
+run_limit_digit_uint()
+{
+ echo -n "Testing UINT_MAX works ..."
+ reset_vals
+ TEST_STR="$UINT_MAX"
+ echo -n $TEST_STR > $TARGET
+
+ if ! verify "${TARGET}"; then
+ echo "FAIL" >&2
+ rc=1
+ else
+ echo "ok"
+ fi
+ test_rc
+
+ echo -n "Testing UINT_MAX + 1 will fail as expected..."
+ reset_vals
+ TEST_STR=$(($UINT_MAX+1))
+ echo -n $TEST_STR > $TARGET 2> /dev/null
+
+ if verify "${TARGET}"; then
+ echo "FAIL" >&2
+ rc=1
+ else
+ echo "ok"
+ fi
+ test_rc
+
+ echo -n "Testing negative values will not work as expected ..."
+ reset_vals
+ TEST_STR="-3"
+ echo -n $TEST_STR > $TARGET 2> /dev/null
+
+ if verify "${TARGET}"; then
+ echo "FAIL" >&2
+ rc=1
+ else
+ echo "ok"
+ fi
+ test_rc
+}
+
run_stringtests()
{
echo -n "Writing entire sysctl in short writes ... "
@@ -422,6 +472,18 @@ sysctl_test_0003()
run_limit_digit_int
}
+sysctl_test_0004()
+{
+ TARGET="${SYSCTL}/uint_0001"
+ reset_vals
+ ORIG=$(cat "${TARGET}")
+ TEST_STR=$(( $ORIG + 1 ))
+
+ run_numerictests
+ run_limit_digit
+ run_limit_digit_uint
+}
+
list_tests()
{
echo "Test ID list:"
@@ -433,6 +495,7 @@ list_tests()
echo "0001 x $(get_test_count 0001) - tests proc_dointvec_minmax()"
echo "0002 x $(get_test_count 0002) - tests proc_dostring()"
echo "0003 x $(get_test_count 0003) - tests proc_dointvec()"
+ echo "0004 x $(get_test_count 0004) - tests proc_douintvec()"
}
test_reqs
--
2.11.0
next prev parent reply other threads:[~2017-05-25 23:37 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-25 23:37 [PATCH 0/6] sysctl: add dedicated stress test driver Luis R. Rodriguez
2017-05-25 23:37 ` [PATCH 1/6] test_sysctl: add dedicated proc sysctl " Luis R. Rodriguez
2017-05-25 23:37 ` [PATCH 2/6] test_sysctl: add generic script to expand on tests Luis R. Rodriguez
2017-05-25 23:37 ` [PATCH 3/6] test_sysctl: test against PAGE_SIZE for int Luis R. Rodriguez
2017-05-25 23:37 ` [PATCH 4/6] test_sysctl: add simple proc_dointvec() case Luis R. Rodriguez
2017-05-25 23:37 ` Luis R. Rodriguez [this message]
2017-05-25 23:37 ` [PATCH 6/6] test_sysctl: test against int proc_dointvec() array support Luis R. Rodriguez
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170525233729.18530-6-mcgrof@kernel.org \
--to=mcgrof@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=alan@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=keescook@chromium.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux.intel.com \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.