do not test undefined behavior
PATCH 1/1 do not test undefined behavior
The test_flags() function's first test for each file is an attempt to write a space character into that file (NULL translates to " "). The test expects that this attempt will be successful and that the flag will get set to 0.
This behavior was changed in Linux kernel between versions 3.13.74 and 3.14. with the commit a742c59de66ea080afa3edaf3428b3cdd5aa87cd "cgroup: unify cgroup_write_X64() and cgroup_write_string()". With the new behavior, attempting to write a space character into a flag file returns EINVAL; I find this behavior more consistent.
Flag files are an interface which is known to expect numeric values. We already have a test in test_flags() which covers invalid input. We should not attempt to write a space into a flag file because the resulting behavior is not strictly defined anywhere. Therefore, it would be best to drop the first test.
--- .../cpuset_base_ops_testset.sh | 1 - 1 file changed, 1 deletion(-)
testcases/kernel/controllers/cpuset/cpuset_base_ops_test/cpuset_base_ops_testset.sh +0 -1
@@ -181,7 +181,6 @@ test_flags() do base_op_test "$CPUSET/$filename" "$flags" "$result" done <<- EOF - NULL 0 0 0 1 1 -1 WRITE_ERROR
--
1.7.9.2
PATCH 1/1 do not test undefined behavior
----- Original Message -----
Quoted 11 lines
The
test_flags()function's first test for each file is an attempt to write a space character into that file (NULL translates to " "). The test expects that this attempt will be successful and that the flag will get set to 0.This behavior was changed in Linux kernel between versions 3.13.74 and 3.14. with the commit
a742c59de66ea080afa3edaf3428b3cdd5aa87cd"cgroup: unifycgroup_write_X64()andcgroup_write_string()". With the new behavior, attempting to write a space character into a flag file returns EINVAL; I find this behavior more consistent.
Quoted 5 lines
Flag files are an interface which is known to expect numeric values. We already have a test in
test_flags()which covers invalid input. We should not attempt to write a space into a flag file because the resulting behavior is not strictly defined anywhere. Therefore, it would be best to drop the first test.
Hi,
no objections to change you are proposing, just comments on format:
You're missing Signed-off-by line.
Patch appears to be mangled, all tabs were replaced by spaces.
Did you send the patch with git send-email? Would you care to try resend?
Regards,
Jan
PATCH 1/1 do not test undefined behavior
Hi Jan,
thank you very much for your comments. This is my first ever attempt to send a patch. I did not send it with git send-email, but I will definitely try.
With regards,
Martin Karac
Quoted 33 lines · Jan Stancek
----- Original Message -----
Quoted 11 lines
The
test_flags()function's first test for each file is an attempt to write a space character into that file (NULL translates to " "). The test expects that this attempt will be successful and that the flag will get set to 0.This behavior was changed in Linux kernel between versions 3.13.74 and 3.14. with the commit
a742c59de66ea080afa3edaf3428b3cdd5aa87cd"cgroup: unifycgroup_write_X64()andcgroup_write_string()". With the new behavior, attempting to write a space character into a flag file returns EINVAL; I find this behavior more consistent.Quoted 5 lines
Flag files are an interface which is known to expect numeric values. We already have a test in
test_flags()which covers invalid input. We should not attempt to write a space into a flag file because the resulting behavior is not strictly defined anywhere. Therefore, it would be best to drop the first test.Hi,
no objections to change you are proposing, just comments on format:
You're missing Signed-off-by line.
Patch appears to be mangled, all tabs were replaced by spaces.Did you send the patch with git send-email? Would you care to try resend?
Regards,
Jan
Signature · 4 lines
Martin Karac PLQA - Prague Linux QA Oracle Czech s.r.o. Prague, Czech Republic