Re: [PATCH 1/5] selftests: Add futex functional tests

From: Shuah Khan
Date: Mon May 11 2015 - 16:51:35 EST


On 05/11/2015 01:47 PM, Darren Hart wrote:
> On 5/11/15, 11:55 AM, "Shuah Khan" <shuahkh@xxxxxxxxxxxxxxx> wrote:
>
>> On 05/11/2015 12:22 PM, Darren Hart wrote:
>>> On 5/11/15, 11:06 AM, "Shuah Khan" <shuahkh@xxxxxxxxxxxxxxx> wrote:
>>>
>>>> On 05/08/2015 04:09 PM, Darren Hart wrote:
>>>>> The futextest testsuite [1] provides functional, stress, and
>>>>> performance tests for the various futex op codes. Those tests will be
>>>>> of
>>>>> more use to futex developers if they are included with the kernel
>>>>> source.
>>>>>
>>>>> Copy the core infrastructure and the functional tests into selftests,
>>>>> but adapt them for inclusion in the kernel:
>>>>>
>>>>> - Update the Makefile to include the run_tests target, remove
>>>>> reference
>>>>> to the performance and stress tests from the contributed sources.
>>>>> - Replace my dead IBM email address with my current Intel email
>>>>> address.
>>>>> - Remove the warrantee and write-to paragraphs from the license
>>>>> blurbs.
>>>>> - Remove the NAME section as the filename is easily determined. ;-)
>>>>> - Make the whitespace usage consistent in a couple of places.
>>>>> - Cleanup various CodingStyle violations.
>>>>>
>>>>> A future effort will explore moving the performance and stress tests
>>>>> into the kernel.
>>>>>
>>>>> 1. http://git.kernel.org/cgit/linux/kernel/git/dvhart/futextest.git
>>>>>
>>>>> Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
>>>>> Cc: linux-api@xxxxxxxxxxxxxxx
>>>>> Cc: Ingo Molnar <mingo@xxxxxxx>
>>>>> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
>>>>> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
>>>>> Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
>>>>> Cc: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx>
>>>>> Signed-off-by: Darren Hart <dvhart@xxxxxxxxxxxxxxx>
>>>>> ---
>>>>
>>>> Daren,
>>>>
>>>> I am seeing
>>>>
>>>> fatal: cannot convert from y to UTF-8
>>>>
>>>> when I try to apply the patch. Did you use git send-email?
>>>
>>> Hi Shuah,
>>>
>>> I've seen that from one of my contributors earlier this month as well. I
>>> dropped the Content... Header and it applied without problems.
>>>
>>> I created the patch using git format-patch and then sent them using git
>>> send-email - via a script I've been using for years now...
>>>
>>> Checking the files locally:
>>> $ file *
>>> 0000-cover-letter.patch: ASCII
>>> text
>>> 0001-selftests-Add-futex-functional-tests.patch: unified
>>> diff output, UTF-8 Unicode text
>>> 0002-selftest-futex-Update-Makefile-to-use-lib.mk.patch: unified
>>> diff output, ASCII text
>>> 0003-selftest-futex-Increment-ksft-pass-and-fail-counters.patch: unified
>>> diff output, ASCII text
>>> 0004-selftest-Add-futex-tests-to-the-top-level-Makefile.patch: unified
>>> diff output, ASCII text
>>> 0005-kselftest-Add-exit-code-defines.patch: unified
>>> diff output, ASCII text
>>>
>>>
>>> This shows that only the first in UTF-8 and the rest are ASCII. I
>>> presume
>>> this is due to the Copyright notices in the original files:
>>>
>>> Copyright © International Business Machines Corp., 2006-2008
>>>
>>> Which use © instead of (C). I just checked and there are 545 instances
>>> of
>>> © in the kernel itself, so this should not present a problem.
>>>
>>> I apologize for the glitch in applying. If you use the pull request I
>>> included that will avoid the mail transport issues, and I will be sure
>>> to
>>> fix my scripts to avoid the issue in the future.
>>>
>>> If you want to use the patches directly, please have a look at 1 of 5
>>> and
>>> just remove the "Content..." header, and I think you'll find "git am"
>>> will
>>> apply it without complaint.
>>>
>>
>> Hi Daren,
>>
>> Removing the Content header got me past the utf error. However, git am
>> complains:
>>
>> git am --signoff
>> ../4.2_patches/futex_tests/PATCH_1_5selftestsAddfutexfunctionaltests.mbox
>> Applying: selftests: Add futex functional tests
>> /mnt/data/lkml/linux-kselftest/.git/rebase-apply/patch:1457: new blank
>> line at EOF.
>> +
>> warning: 1 line adds whitespace errors.
>>
>> Could you look into these. Rest of the patches applied fine.
>
> Hi Shuah,
>
> This was due to a newline at the end of:
> tools/testing/selftests/futex/functional/run.sh
>
> Which unfortunately checkpatch.pl doesn't catch. My fault for not applying
> the series from the generated patches first. Sorry for the hassle.
>
> I have corrected this in the first patch and pushed v3 of the series to:
>
> git://git.infradead.org/users/dvhart/linux.git futextest-v3
>
>
> $ git diff infradead/futextest-v2 infradead/futextest-v3
> diff --git a/tools/testing/selftests/futex/functional/run.sh
> b/tools/testing/selftests/futex/functional/run.sh
> index 46827a8..e87dbe2 100755
> --- a/tools/testing/selftests/futex/functional/run.sh
> +++ b/tools/testing/selftests/futex/functional/run.sh
> @@ -77,4 +77,3 @@ echo
> echo
> ./futex_wait_uninitialized_heap $COLOR
> ./futex_wait_private_mapped_file $COLOR
> -
>
>

No need for a new pull request. Have you seen these errors before:

make[2]: Entering directory
'/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex'
for DIR in functional; do make -C $DIR all ; done
make[3]: Entering directory
'/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional'
gcc -g -O2 -Wall -D_GNU_SOURCE -I../include -I../../ -lpthread -lrt
futex_requeue_pi.c ../include/futextest.h -o futex_requeue_pi
/tmp/cc2UgUVs.o: In function `create_rt_thread':
/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional/futex_requeue_pi.c:102:
undefined reference to `pthread_create'
/tmp/cc2UgUVs.o: In function `unit_test':
/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional/futex_requeue_pi.c:342:
undefined reference to `pthread_join'
/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional/futex_requeue_pi.c:347:
undefined reference to `pthread_join'
/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional/futex_requeue_pi.c:346:
undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status
<builtin>: recipe for target 'futex_requeue_pi' failed
make[3]: *** [futex_requeue_pi] Error 1
make[3]: Leaving directory
'/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional'
Makefile:7: recipe for target 'all' failed

I am running make kselftest target when I saw the above build failures.
kselftest run doesn't fail which is good, however futex tests won't
run with this failure.


thanks,
-- Shuah


--
Shuah Khan
Sr. Linux Kernel Developer
Open Source Innovation Group
Samsung Research America (Silicon Valley)
shuahkh@xxxxxxxxxxxxxxx | (970) 217-8978
--
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/