[OE-core] [PATCH 1/1] linux-yocto: add ptest support

Dengke Du dengke.du at windriver.com
Fri Jun 1 07:55:20 UTC 2018



On 2018年05月31日 22:08, lei yang wrote:
>
> hi dengke,
>
> some of the kernel modules were rmmod-ed twice, some of them forget to 
> be rmmod-ed when it fails,
>
> please take a look.
>

Thanks, after bruce update the SRCREV for kernel meta, I will send v2.

> Lei
>
>
>
> On 2018年05月31日 12:19, Bruce Ashfield wrote:
>>
>>
>> On Wed, May 30, 2018 at 11:08 PM, Dengke Du <dengke.du at windriver.com 
>> <mailto:dengke.du at windriver.com>> wrote:
>>
>>     Signed-off-by: Dengke Du <dengke.du at windriver.com
>>     <mailto:dengke.du at windriver.com>>
>>     ---
>>      meta/recipes-kernel/linux/files/run-ptest    | 138
>>     ++++++++++++++++++++++++++
>>
>>
>> Nothing else in linux-yocto uses "files", and this shouldn't either.
>>
>> We can't guarantee that these are version independent, so they need 
>> to be in  a versioned
>> kernel subdirectory.
>>
>>      meta/recipes-kernel/linux/linux-yocto.inc    |   8 ++
>>      meta/recipes-kernel/linux/linux-yocto_4.14.bb
>>     <http://linux-yocto_4.14.bb> |   2 +-
>>      3 files changed, 147 insertions(+), 1 deletion(-)
>>      create mode 100644 meta/recipes-kernel/linux/files/run-ptest
>>
>>     diff --git a/meta/recipes-kernel/linux/files/run-ptest
>>     b/meta/recipes-kernel/linux/files/run-ptest
>>     new file mode 100644
>>     index 0000000..a3d9e14
>>     --- /dev/null
>>     +++ b/meta/recipes-kernel/linux/files/run-ptest
>>     @@ -0,0 +1,138 @@
>>     +#!/bin/bash
>>
>>
>> This script should have a license and proper header file.
>>
>> Also, if the ptests are mainly trace/sample related, name the script 
>> to indicate that.
>>
>> The kernel already has a significant number of selftests, which are 
>> likely better than
>> these ptests. Is there any reason why they aren't being used instead ?
>>
>>     +depmod
>>     +touch kernel.log
>>     +
>>     +#dma-example bytestream-example inttype-example record-example
>>     +list1=("dma-example" "bytestream-example" "inttype-example"
>>     "record-example")
>>     +for i in "${list1[@]}"
>>     +do
>>     +  dmesg -c
>>     +  modprobe "$i"
>>     +  result=""
>>     +  IFS="-" read -ra array <<< "$i"
>>     +  len=${#array[@]}
>>     +  if [ $len -eq 2 ];then
>>     +    result="${array[0]}_${array[1]}"
>>     +  elif [ $len -eq 3 ];then
>>     +    result="${array[0]}_${array[1]}_${array[2]}"
>>     +  fi
>>     +  lsmod | grep -q "$result"
>>     +  if [ $? -eq 0 ];then
>>     +    dmesg | grep "test passed"
>>     +    if [ $? -eq 0 ];then
>>     +      echo "$i: PASS" >> kernel.log
>>     +    fi
>>     +    rmmod "$i"
>>     +  else
>>     +    echo "$i: FAILED" >> kernel.log
>>     +  fi
>>     +done
>>     +
>>     +#kobject-example kset-example
>>     +list2=("kobject-example" "kset-example")
>>     +for i in "${list2[@]}"
>>     +do
>>     +  dmesg -c
>>     +  modprobe "$i"
>>     +  result=""
>>     +  IFS="-" read -ra array <<< "$i"
>>     +  len=${#array[@]}
>>     +  if [ $len -eq 2 ];then
>>     +    result="${array[0]}_${array[1]}"
>>     +  elif [ $len -eq 3 ];then
>>     +    result="${array[0]}_${array[1]}_${array[2]}"
>>     +  fi
>>     +  basedir="/sys/kernel/${result}"
>>     +  echo "$basedir"
>>     +  if [ -e ${basedir}/bar -a -e ${basedir}/baz -a -e
>>     ${basedir}/foo ];then
>>     +    echo "$i: PASS" >> kernel.log
>>     +    rmmod "$i"
>>     +  else
>>     +    echo "$i: FAILED" >> kernel.log
>>     +  fi
>>     +done
>>     +
>>     +#trace-events-sample
>>     +list3="trace-events-sample"
>>     +result=""
>>     +IFS="-" read -ra array <<< "$list3"
>>     +len=${#array[@]}
>>     +if [ $len -eq 2 ];then
>>     +  result="${array[0]}_${array[1]}"
>>     +elif [ $len -eq 3 ];then
>>     +  result="${array[0]}_${array[1]}_${array[2]}"
>>     +fi
>>     +modprobe "$list3"
>>     +lsmod | grep "$result"
>>     +if [ $? -eq 0 ];then
>>     +  if [ -e "/sys/kernel/debug/tracing/events/sample-trace" ];then
>>     +    echo 1 > /sys/kernel/debug/tracing/events/sample-trace/enable
>>     +    sleep 5
>>     +    ret=`cat /sys/kernel/debug/tracing/trace | grep hello | head
>>     -n1 | cut -d':' -f2`
>>     +    if [ "$ret" = " foo_bar" ];then
>>     +      echo "$list3: PASS"  >> kernel.log
>>     +    else
>>     +      echo "$list3: FAILED-" >> kernel.log
>>     +    fi
>>     +  else
>>     +    echo "$list3: FAILED--" >> kernel.log
>>     +  fi
>>     +else
>>     +  echo "$list3: FAILED---" >> kernel.log
>>     +fi
>>     +rmmod "$list3"
>>     +
>>     +#trace-printk
>>     +list4="trace-printk"
>>     +modprobe "$list4"
>>     +lsmod | grep "trace_printk"
>>     +if [ $? -eq 0 ];then
>>     +  ret=`cat /sys/kernel/debug/tracing/trace | grep trace_printk |
>>     head -n1 | cut -d':' -f2`
>>     +  if [ "$ret" = " trace_printk_irq_work" ];then
>>     +    echo "$list4: PASS" >> kernel.log
>>     +    rmmod "$list4"
>>     +  else
>>     +    echo "$list4: FAILED" >> kernel.log
>>     +  fi
>>     +else
>>     +  echo "$list4: FAILED" >> kernel.log
>>     +fi
>>     +rmmod "$list4"
>>     +
>>     +#kprobe_example
>>     +list5="kprobe_example"
>>     +dmesg -c
>>     +modprobe "$list5"
>>     +lsmod | grep "$list5"
>>     +if [ $? -eq 0 ];then
>>     +  dmesg | grep "_do_fork"
>>     +  if [ $? -eq 0 ];then
>>     +    echo "$list5: PASS" >> kernel.log
>>     +  else
>>     +    echo "$list5: FAILED" >> kernel.log
>>     +  fi
>>     +else
>>     +  echo "$list5: FAILED" >> kernel.log
>>     +fi
>>     +rmmod "$list5"
>>     +
>>     +#kretprobe_example
>>     +list6="kretprobe_example"
>>     +dmesg -c
>>     +modprobe "$list6"
>>     +lsmod | grep "$list6"
>>     +if [ $? -eq 0 ];then
>>     +  dmesg | grep "_do_fork returned"
>>     +  if [ $? -eq 0 ];then
>>     +    echo "$list6: PASS" >> kernel.log
>>     +  else
>>     +    echo "$list6: FAILED" >> kernel.log
>>     +  fi
>>     +else
>>     +  echo "$list6: FAILED" >> kernel.log
>>     +fi
>>     +rmmod "$list6"
>>     +
>>     +echo "#####result#####"
>>     +cat kernel.log
>>     +rm kernel.log
>>     diff --git a/meta/recipes-kernel/linux/linux-yocto.inc
>>     b/meta/recipes-kernel/linux/linux-yocto.inc
>>     index 95ec2a2..7e1773e 100644
>>     --- a/meta/recipes-kernel/linux/linux-yocto.inc
>>     +++ b/meta/recipes-kernel/linux/linux-yocto.inc
>>     @@ -67,3 +67,11 @@ do_install_append(){
>>      addtask kernel_version_sanity_check after do_kernel_metadata
>>     do_kernel_checkout before do_compile
>>      addtask validate_branches before do_patch after do_kernel_checkout
>>      addtask kernel_configcheck after do_configure before do_compile
>>     +
>>     +inherit ptest
>>     +SRC_URI_append = " file://run-ptest \
>>     +"
>>     +do_install_ptest_append() {
>>     +       install -D ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/run-ptest
>>     +}
>>     +KERNEL_FEATURES_append = "
>>     ${@bb.utils.contains("DISTRO_FEATURES", "ptest",
>>     "features/kernel-sample/kernel-sample.scc", "", d)}"
>>     diff --git a/meta/recipes-kernel/linux/linux-yocto_4.14.bb
>>     <http://linux-yocto_4.14.bb>
>>     b/meta/recipes-kernel/linux/linux-yocto_4.14.bb
>>     <http://linux-yocto_4.14.bb>
>>     index 16142f8..7002693 100644
>>     --- a/meta/recipes-kernel/linux/linux-yocto_4.14.bb
>>     <http://linux-yocto_4.14.bb>
>>     +++ b/meta/recipes-kernel/linux/linux-yocto_4.14.bb
>>     <http://linux-yocto_4.14.bb>
>>     @@ -19,7 +19,7 @@ SRCREV_machine_qemux86 ?=
>>     "74f6cd2b6976e37491779fcb1bc4966d3a61492c"
>>      SRCREV_machine_qemux86-64 ?=
>>     "74f6cd2b6976e37491779fcb1bc4966d3a61492c"
>>      SRCREV_machine_qemumips64 ?=
>>     "9863b327e770b42b8c18da3e0cfaf06e8f99ae97"
>>      SRCREV_machine ?= "74f6cd2b6976e37491779fcb1bc4966d3a61492c"
>>     -SRCREV_meta ?= "ea9330894eea727bd1655569b16f338976b72563"
>>     +SRCREV_meta ?= "53336e1b7d969f21d8214ec9ceeb48fba4f99372"
>>
>>
>> Do not bump the SRCREV for meta in this series.
>>
>> If your feature depends on something in the meta branch (which it 
>> does), wait until I've sent my next series before sending this.
>>
>> Bruce
>>
>>
>>      SRC_URI =
>>     "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}
>>     <http://git.yoctoproject.org/linux-yocto.git;name=machine;branch=$%7BKBRANCH%7D>;
>>     \
>>                
>>     git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.14;destsuffix=${KMETA}
>>     <http://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.14;destsuffix=$%7BKMETA%7D>"
>>     -- 
>>     2.7.4
>>
>>     -- 
>>     _______________________________________________
>>     Openembedded-core mailing list
>>     Openembedded-core at lists.openembedded.org
>>     <mailto:Openembedded-core at lists.openembedded.org>
>>     http://lists.openembedded.org/mailman/listinfo/openembedded-core
>>     <http://lists.openembedded.org/mailman/listinfo/openembedded-core>
>>
>>
>>
>>
>> -- 
>> "Thou shalt not follow the NULL pointer, for chaos and madness await 
>> thee at its end"
>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180601/15e5f376/attachment-0002.html>


More information about the Openembedded-core mailing list