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