<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 2018年05月31日 12:19, Bruce Ashfield
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CADkTA4MU3Po893UfDcTeusYA0kkJdMHFHPWx3Z3RdMJS5gj8Xg@mail.gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <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">&lt;<a
                href="mailto:dengke.du@windriver.com" target="_blank"
                moz-do-not-send="true">dengke.du@windriver.com</a>&gt;</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 &lt;<a href="mailto:dengke.du@windriver.com"
                moz-do-not-send="true">dengke.du@windriver.com</a>&gt;<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>
        </div>
      </div>
    </blockquote>
    <br>
    Ok, I will put it in versioned kernel subdirectory.<br>
    <br>
    <blockquote type="cite"
cite="mid:CADkTA4MU3Po893UfDcTeusYA0kkJdMHFHPWx3Z3RdMJS5gj8Xg@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <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" moz-do-not-send="true">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>
        </div>
      </div>
    </blockquote>
    <br>
    Ok.<br>
    <br>
    <blockquote type="cite"
cite="mid:CADkTA4MU3Po893UfDcTeusYA0kkJdMHFHPWx3Z3RdMJS5gj8Xg@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <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>
      </div>
    </blockquote>
    <br>
    This is different to selftests, this ptest was based on kernel
    samples in sample directory,<br>
    those samples were some tutorial modules, the modules that we can
    modify it and learn<br>
    it(some basic kernel theory), in the end build it into our image to
    test and verification our<br>
    thought easily.<br>
    <br>
    <blockquote type="cite"
cite="mid:CADkTA4MU3Po893UfDcTeusYA0kkJdMHFHPWx3Z3RdMJS5gj8Xg@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <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 &lt;&lt;&lt; "$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" &gt;&gt; kernel.log<br>
              +    fi<br>
              +    rmmod "$i"<br>
              +  else<br>
              +    echo "$i: FAILED" &gt;&gt; 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 &lt;&lt;&lt; "$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" &gt;&gt; kernel.log<br>
              +    rmmod "$i"<br>
              +  else<br>
              +    echo "$i: FAILED" &gt;&gt; kernel.log<br>
              +  fi<br>
              +done<br>
              +<br>
              +#trace-events-sample<br>
              +list3="trace-events-sample"<br>
              +result=""<br>
              +IFS="-" read -ra array &lt;&lt;&lt; "$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 &gt; /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"  &gt;&gt; kernel.log<br>
              +    else<br>
              +      echo "$list3: FAILED-" &gt;&gt; kernel.log<br>
              +    fi<br>
              +  else<br>
              +    echo "$list3: FAILED--" &gt;&gt; kernel.log<br>
              +  fi<br>
              +else<br>
              +  echo "$list3: FAILED---" &gt;&gt; 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" &gt;&gt; kernel.log<br>
              +    rmmod "$list4"<br>
              +  else<br>
              +    echo "$list4: FAILED" &gt;&gt; kernel.log<br>
              +  fi<br>
              +else<br>
              +  echo "$list4: FAILED" &gt;&gt; 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" &gt;&gt; kernel.log<br>
              +  else<br>
              +    echo "$list5: FAILED" &gt;&gt; kernel.log<br>
              +  fi<br>
              +else<br>
              +  echo "$list5: FAILED" &gt;&gt; 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" &gt;&gt; kernel.log<br>
              +  else<br>
              +    echo "$list6: FAILED" &gt;&gt; kernel.log<br>
              +  fi<br>
              +else<br>
              +  echo "$list6: FAILED" &gt;&gt; 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 = " <a class="moz-txt-link-freetext" href="file://run-ptest">file://run-ptest</a> \<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" moz-do-not-send="true">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" moz-do-not-send="true">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" moz-do-not-send="true">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" moz-do-not-send="true">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>
        </div>
      </div>
    </blockquote>
    <br>
    Ok.<br>
    <br>
    <blockquote type="cite"
cite="mid:CADkTA4MU3Po893UfDcTeusYA0kkJdMHFHPWx3Z3RdMJS5gj8Xg@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <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=$%7BKBRANCH%7D"
                rel="noreferrer" target="_blank" moz-do-not-send="true">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=$%7BKMETA%7D"
                rel="noreferrer" target="_blank" moz-do-not-send="true">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"
                    moz-do-not-send="true">Openembedded-core@lists.<wbr>openembedded.org</a><br>
                  <a
                    href="http://lists.openembedded.org/mailman/listinfo/openembedded-core"
                    rel="noreferrer" target="_blank"
                    moz-do-not-send="true">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>
    </blockquote>
    <br>
  </body>
</html>