<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.yoctoproject.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jair+Gonzalez</id>
	<title>Yocto Project - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.yoctoproject.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jair+Gonzalez"/>
	<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/Special:Contributions/Jair_Gonzalez"/>
	<updated>2026-05-12T05:26:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=34341</id>
		<title>BSP Test Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=34341"/>
		<updated>2017-12-22T23:33:12Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Test Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About BSP  =&lt;br /&gt;
&lt;br /&gt;
A Board Support Package (BSP) is the collection of software and data that allows an operating system to run in a specific hardware. It contains the drivers, routines and information that defines how to support a particular hardware device, set of devices, or hardware platform.&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
&lt;br /&gt;
Verify different supported images generated by Yocto Project build system on main AB, manual and automated test are applied in both physical HW and emulated with qemu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Member&#039;&#039;&#039;&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border:0.05pt solid #000000;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Team&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | José Pérez Carranza&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Oscar Lopez Arandas &lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Yi Zaho&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Wind River &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types of Tests &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* Automated test on different platforms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Platforms, type of images and type of tests are showed detailed on BSP Test Matrix. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features tested&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Manual Tests&lt;br /&gt;
** Boot image &lt;br /&gt;
** Install Image &lt;br /&gt;
** Multimedia&lt;br /&gt;
** Graphical interface components &lt;br /&gt;
** System reboot and shutdown recovery and standby &lt;br /&gt;
** X server tests &lt;br /&gt;
** rpm packages &lt;br /&gt;
** File system (reading/writing)&lt;br /&gt;
** Mont / Umont &lt;br /&gt;
** Network&lt;br /&gt;
&lt;br /&gt;
All test cases can be found here &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Automated Tests &lt;br /&gt;
** buildcpio&lt;br /&gt;
** buildgalculator&lt;br /&gt;
** buildlzip&lt;br /&gt;
** connman&lt;br /&gt;
** date&lt;br /&gt;
** df&lt;br /&gt;
** dnf&lt;br /&gt;
** gcc&lt;br /&gt;
** kernelmodule&lt;br /&gt;
** ldd&lt;br /&gt;
** logrotate&lt;br /&gt;
** multilib&lt;br /&gt;
** oe_syslog&lt;br /&gt;
** pam&lt;br /&gt;
** parselogs&lt;br /&gt;
** perl&lt;br /&gt;
** ping&lt;br /&gt;
** ptest&lt;br /&gt;
** python&lt;br /&gt;
** rpm&lt;br /&gt;
** scanelf&lt;br /&gt;
** scp&lt;br /&gt;
** skeletoninit&lt;br /&gt;
** ssh&lt;br /&gt;
** systemd&lt;br /&gt;
** x32lib&lt;br /&gt;
** xorg&lt;br /&gt;
&lt;br /&gt;
full code of this automated test are on poky repo under meta/lib/oeqa/runtime/cases &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy  =&lt;br /&gt;
&lt;br /&gt;
As mentioned below there are 2 types of test Automated an Manual tests, below a description of how those test are applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Manual==&lt;br /&gt;
&lt;br /&gt;
Test cases executed fully manually on real HW and on a qemu instance, these tests are focused on user scenarios using the image and also ensuring that graphical interface and multimedia are properly working on the image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automated Tests==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test cases execute automatically used testimage suite as well as 2 special test called pTest and Compliance, these tests are written in Python using oeqa framework and check different content and packages behavior of the booted image by a series of commands executed by a ssh communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
 1. Prepare the image and device under test&lt;br /&gt;
 &lt;br /&gt;
    1.1 Download Artifacts&lt;br /&gt;
       there are 2 links available from Public AutoBuilder to download images &lt;br /&gt;
          http://autobuilder.yoctoproject.org/pub/releases/&lt;br /&gt;
          https://autobuilder.yocto.io/pub/releases/&lt;br /&gt;
     &lt;br /&gt;
       Artifacts to be downloaded are: &lt;br /&gt;
    &lt;br /&gt;
       &#039;&#039;&#039;Real HW&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.hddimg&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic.bmap&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-genericx86.*&#039;&#039;&#039;&lt;br /&gt;
       &lt;br /&gt;
       &#039;&#039;&#039;QEMU&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/qemu/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;BZIMAGE&amp;gt;.bin&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.ext4&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.qemuboot.conf&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-qemux86.*&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
    1.2 For real hardware devices:&lt;br /&gt;
       - Write the image to a bootable media (USB key, SD Card, etc.) using the dd command:&lt;br /&gt;
           &#039;&#039;&#039;$ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic of=TARGET_DEVICE&#039;&#039;&#039;&lt;br /&gt;
       - Attach the bootable device to the DUT&lt;br /&gt;
       - Turn the DUT on, and use its boot options to select the correct media for booting&lt;br /&gt;
       - Ensure the device has a network connection and a valid IP address&lt;br /&gt;
&lt;br /&gt;
 2. For Manual Test Cases:&lt;br /&gt;
   &lt;br /&gt;
    2.1 - Go to the proper Test Run assigned on the execution and start executing test cases  &lt;br /&gt;
&lt;br /&gt;
 3. For automated Test Cases:&lt;br /&gt;
    &lt;br /&gt;
    3.1 Clone poky repo $git clone git://git.yoctoproject.org/poky&lt;br /&gt;
    3.2 $cd poky &lt;br /&gt;
    3.3 Checkout to the commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
    3.4 &#039;&#039;&#039;If testing meta-intel&#039;&#039;&#039;, clone the layer repo inside poky $git clone git://git.yoctoproject.org/meta-intel&lt;br /&gt;
        3.4.1 $cd meta-intel&lt;br /&gt;
        3.4.2 Checkout to the meta-intel commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
        3.4.3 Return to the poky root path $cd ..&lt;br /&gt;
    3.5 $source oe-init-build-env&lt;br /&gt;
    3.6 &#039;&#039;&#039;If testing meta-intel&#039;&#039;&#039;, add the layer to conf/bblayers.conf. It may be done with:&lt;br /&gt;
        $bitbake-layers add-layer &amp;quot;../meta-intel&amp;quot;&lt;br /&gt;
    3.7 For real HW edit local.conf. PATH: ~/poky/build/conf, at the end of the file adding: &lt;br /&gt;
        &#039;&#039;&#039;Install / Boot the image on the DUT and check the IP&#039;&#039;&#039;&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        TEST_TARGET = &amp;quot;simpleremote&amp;quot;&lt;br /&gt;
        TEST_SERVER_IP = &amp;quot;HOST ip&amp;quot; --&amp;gt; IP of the machine being used to launch tests&lt;br /&gt;
        TEST_TARGET_IP = &amp;quot;DUT ip&amp;quot;  --&amp;gt; IP of the device under test&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    3.8 For QEMU edit local.conf. PATH: ~/poky/build/conf, at the end of the file adding:&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    &#039;&#039;&#039;For releases before 2.3 also add&#039;&#039;&#039;&lt;br /&gt;
    TEST_SUITES = &amp;quot; auto&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Remember to add the machine to local.conf, for example:&#039;&#039;&#039;&lt;br /&gt;
    If genericx86 is needed, MACHINE ?= &amp;quot;genericx86&amp;quot;&lt;br /&gt;
    If qemux86 is needed, MACHINE ?= &amp;quot;qemux86&amp;quot;&lt;br /&gt;
    If intel-corei7-64 is needed, MACHINE = &amp;quot;intel-corei7-64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 4. Prepare the environment to execute test suite &lt;br /&gt;
    &lt;br /&gt;
    4.1 $bitbake rpm busybox curl run-postinsts&lt;br /&gt;
    4.2 $bitbake package-index&lt;br /&gt;
    4.3 Ensure that a folder is created, otherwise create it, under&lt;br /&gt;
        tmp/deploy/images/&amp;lt;MACHINE&amp;gt;, where &amp;lt;MACHINE&amp;gt; corresponds to the variable defined on&lt;br /&gt;
        local.conf on previous steps&lt;br /&gt;
    4.4 Paste artifacts downloaded on previously created folder &lt;br /&gt;
&lt;br /&gt;
 5. Execute the test suite&lt;br /&gt;
    &lt;br /&gt;
    5.1 $bitbake &amp;lt;IMAGE_TESTED&amp;gt; -c testimage&lt;br /&gt;
       &#039;&#039;&#039;example bitbake core-image-sato-sdk -c testimage -v&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 6. Verify that all test cases PASSED if not raise bugs properly &lt;br /&gt;
&lt;br /&gt;
 7. Update results to corresponding Testopia Test Run &lt;br /&gt;
    &#039;&#039;&#039;There is a script available to upload results form the log automatically on [[Qa-tools#Testopia_Update|QA-Tools]] and follow this example [[Qa-tools#Update_a_Test_Run_by_ID|Update TR by ID]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Bug Reporting==&lt;br /&gt;
&lt;br /&gt;
For correctly report the bugs follow the already defined steps [[Bug_reporting_and_Information_levels | here]]&lt;br /&gt;
&lt;br /&gt;
= Special Tests =&lt;br /&gt;
&lt;br /&gt;
There are 2 special test that also applied as BSP Components those are:&lt;br /&gt;
  &lt;br /&gt;
== pTest ==&lt;br /&gt;
&lt;br /&gt;
For detailed information about behavior and characteristics check [[Ptest]]&lt;br /&gt;
&lt;br /&gt;
=== Test Process ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1. Download pTest image from autobuilder (core-image-sato-sdk-ptest-genericx86-64.hddimg)&lt;br /&gt;
&lt;br /&gt;
 2. Install or write the image on a media connected to the DUT (NUC using legacy boot)&lt;br /&gt;
    Configure the network so it be able to work externally:&lt;br /&gt;
    - Export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command eg&lt;br /&gt;
      $ export http_proxy=http://&amp;lt;my_proxy&amp;gt;:&amp;lt;port&amp;gt;&lt;br /&gt;
    - And check if you have internet connection, typing on terminal:&lt;br /&gt;
      $ wget www.google.com&lt;br /&gt;
&lt;br /&gt;
 3. In command line type&lt;br /&gt;
    $ ptest-runner &amp;gt; ptest.log&lt;br /&gt;
      and wait for it to finish ( about 5 hours)&lt;br /&gt;
      &#039;&#039;&#039;Note:&#039;&#039;&#039; The &amp;quot;script&amp;quot; is already placed on the distro, you just have to type &#039;&#039;&#039;ptest&#039;&#039;&#039;...TAB and the terminal should autocomplete the command.&lt;br /&gt;
      and &amp;gt; &#039;&#039;&#039;ptest.log&#039;&#039;&#039;, in order to save the test results in that file.&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process ===&lt;br /&gt;
&lt;br /&gt;
1. Generate the report of pTests as follows: &lt;br /&gt;
     1.1 Get the log from the DUT.&lt;br /&gt;
     1.2 Go to the [[Ptest/archive]] page and check the previous execution to this release.&lt;br /&gt;
     1.3 Go the the report of the execution and download the log.&lt;br /&gt;
     1.4 Use the [[Qa-tools#Ptest_Parser|ptest-parser]] script to generate the report, this script generates a file called &amp;lt;release&amp;gt;wiki.page.&lt;br /&gt;
     1.5 Create a wiki with the name &#039;&#039;&#039;Ptest_&amp;lt;commit-tested&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
     1.6 Copy the content of the content of &#039;&#039;&#039;&amp;lt;release&amp;gt;wiki.page&#039;&#039;&#039; and paste it on new wiki created.&lt;br /&gt;
     1.7 Upload the log of current execution and update the recent created wiki with the link to the log.&lt;br /&gt;
     1.8 Check the packages that had regression on pass rate [[File:down_rate.png|15px]] and if there is a bug reported update the bug with comments that still present &lt;br /&gt;
         on current commit, if there is no bug created raise a new one.&lt;br /&gt;
     1.9 Update the [[Ptest/archive]] wiki with the info of this new execution.&lt;br /&gt;
&lt;br /&gt;
== Compliance ==&lt;br /&gt;
&lt;br /&gt;
In this section, 3 Test suites are executed on NUC HW with a core-image-lsb-sdk-genericx86-64 image.&lt;br /&gt;
&lt;br /&gt;
*LSB tests&lt;br /&gt;
*POSIX tests&lt;br /&gt;
*LTP tests&lt;br /&gt;
&lt;br /&gt;
=== Test Process  ===&lt;br /&gt;
 1. Download the core-image-lsb-sdk-genericx86-64.hddimg image from Autobuilder (same image as in LSB automated testing for genericx86-64-lsb bsp)&lt;br /&gt;
&lt;br /&gt;
 2. Install the image on the DUT&lt;br /&gt;
    * We test compliance on a NUC&lt;br /&gt;
&lt;br /&gt;
 3. Configure the network so it be able to work externally:&lt;br /&gt;
    * edit /etc/resolv.conf and add the gateway ip_address&lt;br /&gt;
    * add the ip and netmask using &amp;quot;ifconfig&amp;quot; command&lt;br /&gt;
    * add the route using &amp;quot;route add default gw &amp;lt;ip_address&amp;gt;&amp;quot; &lt;br /&gt;
    * export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command&lt;br /&gt;
      : there is a bug and if you make these steps in another order than above, it may be possible not work&lt;br /&gt;
&lt;br /&gt;
  4. Copy &amp;quot;compliance_test.py&amp;quot; script on DUT&lt;br /&gt;
     script can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=cagurida/compliance here]&lt;br /&gt;
&lt;br /&gt;
  5. Make sure that your network connection is working&lt;br /&gt;
&lt;br /&gt;
  6. Run the script like this:&lt;br /&gt;
    * make the script executable: &amp;quot;chmod a+x compliance_local.py&amp;quot;&lt;br /&gt;
    * run in command line the following command &amp;quot;./compliance_test.py &amp;lt;milestone&amp;gt; &amp;lt;date&amp;gt;&amp;quot;&lt;br /&gt;
    * wait until &amp;quot;Configuration done. LSB script must be started from machine.&amp;quot; in command line( about 8-12 hours)&lt;br /&gt;
&lt;br /&gt;
  7. Run &amp;quot;LSB_test.sh&amp;quot; via ssh or manually and wait for it to finish( about a day)&lt;br /&gt;
&lt;br /&gt;
  8. Get the logs from DUT:&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fulllog&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.log&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fail&lt;br /&gt;
    - posix.log (can be found in: /opt/ltp/testcases/open_posix_testsuite)&lt;br /&gt;
      -  the three others are found in /opt/ltp directory, in output, temp, result folders . The logs need to be sent to [[yi.zhao@windriver.com]] specifying the&lt;br /&gt;
         version and the type of image&lt;br /&gt;
    - in /var/opt/lsb/test/manager/results/x86.../x86....tar.gz (you can find it with auto-complete(tab) easily)&lt;br /&gt;
      -- it has like 18 Mb&lt;br /&gt;
      -- upload this file on drive and send the link to [[yi.zhao@windriver.com]]&lt;br /&gt;
      -- also I&#039;ll fwd an email to see how it looks&lt;br /&gt;
&lt;br /&gt;
  9. Put the tests from Testopia - Runtime test run on passed&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To Be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Add New Tests =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test Approach=&lt;br /&gt;
&lt;br /&gt;
=Test Matrix=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yocto QA Cycle&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;!-- The table can be edited with this tool : http://www.tablesgenerator.com/mediawiki_tables --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! linux-yocto&lt;br /&gt;
! Image-type&lt;br /&gt;
! AUTO&lt;br /&gt;
! MANUAL&lt;br /&gt;
! Compliance&lt;br /&gt;
! pTest&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (x86)&#039;&#039;&#039;&lt;br /&gt;
| Big Core&lt;br /&gt;
| MinwMax 32bit&lt;br /&gt;
| genericx86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| MinwMax 64bit&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NUC&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemux86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemux86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (n-x86)&#039;&#039;&#039;&lt;br /&gt;
| MIPS&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| PPC&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| ARM&lt;br /&gt;
| Beaglebone Black&lt;br /&gt;
| beaglebone&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemuarm&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuarm64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuppc&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meta-Intel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! Image-type&lt;br /&gt;
! Auto&lt;br /&gt;
! Manual&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | meta-intel&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; | Big Core&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 64bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | NUC&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | CherryHill&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Joule&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#ff0000&amp;quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | core2-32&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | meta-intel-quark 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | intel-quark&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Not Tested=&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=34338</id>
		<title>BSP Test Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=34338"/>
		<updated>2017-12-22T20:44:31Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Compliance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About BSP  =&lt;br /&gt;
&lt;br /&gt;
A Board Support Package (BSP) is the collection of software and data that allows an operating system to run in a specific hardware. It contains the drivers, routines and information that defines how to support a particular hardware device, set of devices, or hardware platform.&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
&lt;br /&gt;
Verify different supported images generated by Yocto Project build system on main AB, manual and automated test are applied in both physical HW and emulated with qemu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Member&#039;&#039;&#039;&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border:0.05pt solid #000000;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Team&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | José Pérez Carranza&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Oscar Lopez Arandas &lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Yi Zaho&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Wind River &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types of Tests &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* Automated test on different platforms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Platforms, type of images and type of tests are showed detailed on BSP Test Matrix. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features tested&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Manual Tests&lt;br /&gt;
** Boot image &lt;br /&gt;
** Install Image &lt;br /&gt;
** Multimedia&lt;br /&gt;
** Graphical interface components &lt;br /&gt;
** System reboot and shutdown recovery and standby &lt;br /&gt;
** X server tests &lt;br /&gt;
** rpm packages &lt;br /&gt;
** File system (reading/writing)&lt;br /&gt;
** Mont / Umont &lt;br /&gt;
** Network&lt;br /&gt;
&lt;br /&gt;
All test cases can be found here &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Automated Tests &lt;br /&gt;
** buildcpio&lt;br /&gt;
** buildgalculator&lt;br /&gt;
** buildlzip&lt;br /&gt;
** connman&lt;br /&gt;
** date&lt;br /&gt;
** df&lt;br /&gt;
** dnf&lt;br /&gt;
** gcc&lt;br /&gt;
** kernelmodule&lt;br /&gt;
** ldd&lt;br /&gt;
** logrotate&lt;br /&gt;
** multilib&lt;br /&gt;
** oe_syslog&lt;br /&gt;
** pam&lt;br /&gt;
** parselogs&lt;br /&gt;
** perl&lt;br /&gt;
** ping&lt;br /&gt;
** ptest&lt;br /&gt;
** python&lt;br /&gt;
** rpm&lt;br /&gt;
** scanelf&lt;br /&gt;
** scp&lt;br /&gt;
** skeletoninit&lt;br /&gt;
** ssh&lt;br /&gt;
** systemd&lt;br /&gt;
** x32lib&lt;br /&gt;
** xorg&lt;br /&gt;
&lt;br /&gt;
full code of this automated test are on poky repo under meta/lib/oeqa/runtime/cases &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy  =&lt;br /&gt;
&lt;br /&gt;
As mentioned below there are 2 types of test Automated an Manual tests, below a description of how those test are applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Manual==&lt;br /&gt;
&lt;br /&gt;
Test cases executed fully manually on real HW and on a qemu instance, these tests are focused on user scenarios using the image and also ensuring that graphical interface and multimedia are properly working on the image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automated Tests==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test cases execute automatically used testimage suite as well as 2 special test called pTest and Compliance, these tests are written in Python using oeqa framework and check different content and packages behavior of the booted image by a series of commands executed by a ssh communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
 1. Prepare the image and device under test&lt;br /&gt;
 &lt;br /&gt;
    1.1 Download Artifacts&lt;br /&gt;
       there are 2 links available from Public AutoBuilder to download images &lt;br /&gt;
          http://autobuilder.yoctoproject.org/pub/releases/&lt;br /&gt;
          https://autobuilder.yocto.io/pub/releases/&lt;br /&gt;
     &lt;br /&gt;
       Artifacts to be downloaded are: &lt;br /&gt;
    &lt;br /&gt;
       &#039;&#039;&#039;Real HW&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.hddimg&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic.bmap&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-genericx86.*&#039;&#039;&#039;&lt;br /&gt;
       &lt;br /&gt;
       &#039;&#039;&#039;QEMU&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/qemu/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;BZIMAGE&amp;gt;.bin&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.ext4&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.qemuboot.conf&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-qemux86.*&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
    1.2 For real hardware devices:&lt;br /&gt;
       - Write the image to a bootable media (USB key, SD Card, etc.) using the dd command:&lt;br /&gt;
           &#039;&#039;&#039;$ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic of=TARGET_DEVICE&#039;&#039;&#039;&lt;br /&gt;
       - Attach the bootable device to the DUT&lt;br /&gt;
       - Turn the DUT on, and use its boot options to select the correct media for booting&lt;br /&gt;
       - Ensure the device has a network connection and a valid IP address&lt;br /&gt;
&lt;br /&gt;
 2. For Manual Test Cases:&lt;br /&gt;
   &lt;br /&gt;
    2.1 - Go to the proper Test Run assigned on the execution and start executing test cases  &lt;br /&gt;
&lt;br /&gt;
 3. For automated Test Cases:&lt;br /&gt;
    &lt;br /&gt;
    3.1 Clone poky repo $git clone git://git.yoctoproject.org/poky&lt;br /&gt;
    3.2 $cd poky &lt;br /&gt;
    3.3 Checkout to the commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
    3.4 &#039;&#039;&#039;If testing meta-intel&#039;&#039;&#039;, clone the layer repo inside poky $git clone git://git.yoctoproject.org/meta-intel&lt;br /&gt;
        3.4.1 $cd meta-intel&lt;br /&gt;
        3.4.2 Checkout to the meta-intel commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
        3.4.3 Return to the poky root path $cd ..&lt;br /&gt;
    3.5 $source oe-init-build-env&lt;br /&gt;
    3.6 &#039;&#039;&#039;If testing meta-intel&#039;&#039;&#039;, add the layer to conf/bblayers.conf. It may be done with:&lt;br /&gt;
        $bitbake-layers add-layer &amp;quot;../meta-intel&amp;quot;&lt;br /&gt;
    3.7 For real HW edit local.conf. PATH: ~/poky/build/conf, at the end of the file adding: &lt;br /&gt;
        &#039;&#039;&#039;Install / Boot the image on the DUT and check the IP&#039;&#039;&#039;&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        TEST_TARGET = &amp;quot;simpleremote&amp;quot;&lt;br /&gt;
        TEST_SERVER_IP = &amp;quot;HOST ip&amp;quot; --&amp;gt; IP of the machine being used to launch tests&lt;br /&gt;
        TEST_TARGET_IP = &amp;quot;DUT ip&amp;quot;  --&amp;gt; IP of the device under test&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    3.8 For QEMU edit local.conf. PATH: ~/poky/build/conf, at the end of the file adding:&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    &#039;&#039;&#039;For releases before 2.3 also add&#039;&#039;&#039;&lt;br /&gt;
    TEST_SUITES = &amp;quot; auto&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Remember to add the machine to local.conf, for example:&#039;&#039;&#039;&lt;br /&gt;
    If genericx86 is needed, MACHINE ?= &amp;quot;genericx86&amp;quot;&lt;br /&gt;
    If qemux86 is needed, MACHINE ?= &amp;quot;qemux86&amp;quot;&lt;br /&gt;
    If intel-corei7-64 is needed, MACHINE = &amp;quot;intel-corei7-64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 4. Prepare the environment to execute test suite &lt;br /&gt;
    &lt;br /&gt;
    4.1 $bitbake rpm busybox curl run-postinsts&lt;br /&gt;
    4.2 $bitbake package-index&lt;br /&gt;
    4.3 Ensure that a folder is created, otherwise create it, under&lt;br /&gt;
        tmp/deploy/images/&amp;lt;MACHINE&amp;gt;, where &amp;lt;MACHINE&amp;gt; corresponds to the variable defined on&lt;br /&gt;
        local.conf on previous steps&lt;br /&gt;
    4.4 Paste artifacts downloaded on previously created folder &lt;br /&gt;
&lt;br /&gt;
 5. Execute the test suite&lt;br /&gt;
    &lt;br /&gt;
    5.1 $bitbake &amp;lt;IMAGE_TESTED&amp;gt; -c testimage&lt;br /&gt;
       &#039;&#039;&#039;example bitbake core-image-sato-sdk -c testimage -v&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 6. Verify that all test cases PASSED if not raise bugs properly &lt;br /&gt;
&lt;br /&gt;
 7. Update results to corresponding Testopia Test Run &lt;br /&gt;
    &#039;&#039;&#039;There is a script available to upload results form the log automatically on [[Qa-tools#Testopia_Update|QA-Tools]] and follow this example [[Qa-tools#Update_a_Test_Run_by_ID|Update TR by ID]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Bug Reporting==&lt;br /&gt;
&lt;br /&gt;
For correctly report the bugs follow the already defined steps [[Bug_reporting_and_Information_levels | here]]&lt;br /&gt;
&lt;br /&gt;
= Special Tests =&lt;br /&gt;
&lt;br /&gt;
There are 2 special test that also applied as BSP Components those are:&lt;br /&gt;
  &lt;br /&gt;
== pTest ==&lt;br /&gt;
&lt;br /&gt;
For detailed information about behavior and characteristics check [[Ptest]]&lt;br /&gt;
&lt;br /&gt;
=== Test Process ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1. Download pTest image from autobuilder( you can find core-image-sato-sdk image in pTest directory)&lt;br /&gt;
    * Test are applied on NUC with genericx86-64 &lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT (using legacy boot)&lt;br /&gt;
    Configure the network so it be able to work externally:&lt;br /&gt;
    - Export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command eg&lt;br /&gt;
      $ export http_proxy=http://&amp;lt;my_proxy&amp;gt;:&amp;lt;port&amp;gt;&lt;br /&gt;
    - And check if you have internet connection, typing on terminal:&lt;br /&gt;
      $ wget www.google.com&lt;br /&gt;
&lt;br /&gt;
 3. In command line type&lt;br /&gt;
    $ ptest-runner &amp;gt; ptest.log&lt;br /&gt;
      and wait for it to finish ( about 5 hours)&lt;br /&gt;
      &#039;&#039;&#039;Note:&#039;&#039;&#039; The &amp;quot;script&amp;quot; is already placed on the distro, you just have to type &#039;&#039;&#039;ptest&#039;&#039;&#039;...TAB and the terminal should autocomplete the command.&lt;br /&gt;
      and &amp;gt; &#039;&#039;&#039;ptest.log&#039;&#039;&#039;, in order to save the test results in that file.&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process ===&lt;br /&gt;
&lt;br /&gt;
1. Generate the report of pTests as follows: &lt;br /&gt;
     1.1 Get the log from the DUT.&lt;br /&gt;
     1.2 Go to the [[Ptest/archive]] page and check the previous execution to this release.&lt;br /&gt;
     1.3 Go the the report of the execution and download the log.&lt;br /&gt;
     1.4 Use the [[Qa-tools#Ptest_Parser|ptest-parser]] script to generate the report, this script generates a file called &amp;lt;release&amp;gt;wiki.page.&lt;br /&gt;
     1.5 Create a wiki with the name &#039;&#039;&#039;Ptest_&amp;lt;commit-tested&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
     1.6 Copy the content of the content of &#039;&#039;&#039;&amp;lt;release&amp;gt;wiki.page&#039;&#039;&#039; and paste it on new wiki created.&lt;br /&gt;
     1.7 Upload the log of current execution and update the recent created wiki with the link to the log.&lt;br /&gt;
     1.8 Check the packages that had regression on pass rate [[File:down_rate.png|15px]] and if there is a bug reported update the bug with comments that still present &lt;br /&gt;
         on current commit, if there is no bug created raise a new one.&lt;br /&gt;
     1.9 Update the [[Ptest/archive]] wiki with the info of this new execution.&lt;br /&gt;
&lt;br /&gt;
== Compliance ==&lt;br /&gt;
&lt;br /&gt;
In this section, 3 Test suites are executed on NUC HW with a core-image-lsb-sdk-genericx86-64 image.&lt;br /&gt;
&lt;br /&gt;
*LSB tests&lt;br /&gt;
*POSIX tests&lt;br /&gt;
*LTP tests&lt;br /&gt;
&lt;br /&gt;
=== Test Process  ===&lt;br /&gt;
 1. Download the core-image-lsb-sdk-genericx86-64.hddimg image from Autobuilder (same image as in LSB automated testing for genericx86-64-lsb bsp)&lt;br /&gt;
&lt;br /&gt;
 2. Install the image on the DUT&lt;br /&gt;
    * We test compliance on a NUC&lt;br /&gt;
&lt;br /&gt;
 3. Configure the network so it be able to work externally:&lt;br /&gt;
    * edit /etc/resolv.conf and add the gateway ip_address&lt;br /&gt;
    * add the ip and netmask using &amp;quot;ifconfig&amp;quot; command&lt;br /&gt;
    * add the route using &amp;quot;route add default gw &amp;lt;ip_address&amp;gt;&amp;quot; &lt;br /&gt;
    * export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command&lt;br /&gt;
      : there is a bug and if you make these steps in another order than above, it may be possible not work&lt;br /&gt;
&lt;br /&gt;
  4. Copy &amp;quot;compliance_test.py&amp;quot; script on DUT&lt;br /&gt;
     script can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=cagurida/compliance here]&lt;br /&gt;
&lt;br /&gt;
  5. Make sure that your network connection is working&lt;br /&gt;
&lt;br /&gt;
  6. Run the script like this:&lt;br /&gt;
    * make the script executable: &amp;quot;chmod a+x compliance_local.py&amp;quot;&lt;br /&gt;
    * run in command line the following command &amp;quot;./compliance_test.py &amp;lt;milestone&amp;gt; &amp;lt;date&amp;gt;&amp;quot;&lt;br /&gt;
    * wait until &amp;quot;Configuration done. LSB script must be started from machine.&amp;quot; in command line( about 8-12 hours)&lt;br /&gt;
&lt;br /&gt;
  7. Run &amp;quot;LSB_test.sh&amp;quot; via ssh or manually and wait for it to finish( about a day)&lt;br /&gt;
&lt;br /&gt;
  8. Get the logs from DUT:&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fulllog&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.log&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fail&lt;br /&gt;
    - posix.log (can be found in: /opt/ltp/testcases/open_posix_testsuite)&lt;br /&gt;
      -  the three others are found in /opt/ltp directory, in output, temp, result folders . The logs need to be sent to [[yi.zhao@windriver.com]] specifying the&lt;br /&gt;
         version and the type of image&lt;br /&gt;
    - in /var/opt/lsb/test/manager/results/x86.../x86....tar.gz (you can find it with auto-complete(tab) easily)&lt;br /&gt;
      -- it has like 18 Mb&lt;br /&gt;
      -- upload this file on drive and send the link to [[yi.zhao@windriver.com]]&lt;br /&gt;
      -- also I&#039;ll fwd an email to see how it looks&lt;br /&gt;
&lt;br /&gt;
  9. Put the tests from Testopia - Runtime test run on passed&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To Be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Add New Tests =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test Approach=&lt;br /&gt;
&lt;br /&gt;
=Test Matrix=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yocto QA Cycle&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;!-- The table can be edited with this tool : http://www.tablesgenerator.com/mediawiki_tables --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! linux-yocto&lt;br /&gt;
! Image-type&lt;br /&gt;
! AUTO&lt;br /&gt;
! MANUAL&lt;br /&gt;
! Compliance&lt;br /&gt;
! pTest&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (x86)&#039;&#039;&#039;&lt;br /&gt;
| Big Core&lt;br /&gt;
| MinwMax 32bit&lt;br /&gt;
| genericx86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| MinwMax 64bit&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NUC&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemux86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemux86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (n-x86)&#039;&#039;&#039;&lt;br /&gt;
| MIPS&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| PPC&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| ARM&lt;br /&gt;
| Beaglebone Black&lt;br /&gt;
| beaglebone&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemuarm&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuarm64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuppc&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meta-Intel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! Image-type&lt;br /&gt;
! Auto&lt;br /&gt;
! Manual&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | meta-intel&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; | Big Core&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 64bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | NUC&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | CherryHill&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Joule&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#ff0000&amp;quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | core2-32&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | meta-intel-quark 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | intel-quark&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Not Tested=&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34144</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34144"/>
		<updated>2017-12-18T23:06:00Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Document Conventions==&lt;br /&gt;
:1. In command and configuration snippets that exist on the rest of the document, words or short phrases that appear in uppercase letters and enclosed on square brackets (for example, [VERSION]) are placeholders that need to be manually replaced by their correct value, depending on the context.&lt;br /&gt;
: 2. In command snippets, the dollar symbol and subsequent space at the beginning of the line indicates the command line prompt. This two characters should not be used when entering the command.&lt;br /&gt;
: 3. Other characters should be left as they appear on command or configuration sentences.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
: 6. To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 7. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; and &amp;quot;SRC_URI&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables were set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Disable any proxy being used by git. For example, if the git proxy environment variable is set, you can unset it with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Re-enable any previous git proxy settings. If using the git proxy environment variable, return it to its previous value, or close and reopen the terminal.&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Create a meta layer for test purpose using &amp;quot;bitbake-layers&amp;quot; command.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers create-layer meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Remove the redundant recipes-example in meta-kerneltest&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm -r recipes-example&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Edit layer.conf for meta-kerneltest (Known issue in bitbake-layers in 2.4; Fixed in 2.5)&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/layer.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove the additional &amp;quot;\&amp;quot; at the end of line 4:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \\       &amp;lt;-- Additional \ will cause bitbake parse warning and unable to look for *.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Correct code:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Add the meta layer into build/conf/bblayers.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using QEMU:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the QEMU terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the QEMU terminal.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34143</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34143"/>
		<updated>2017-12-18T22:54:16Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Prerequisites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Document Conventions==&lt;br /&gt;
:1. In command and configuration snippets that exist on the rest of the document, words or short phrases that appear in uppercase letters and enclosed on square brackets (for example, [VERSION]) are placeholders that need to be manually replaced by their correct value, depending on the context.&lt;br /&gt;
: 2. In command snippets, the dollar symbol and subsequent space at the beginning of the line indicates the command line prompt. This two characters should not be used when entering the command.&lt;br /&gt;
: 3. Other characters should be left as they appear on command or configuration sentences.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
: 6. To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 7. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; and &amp;quot;SRC_URI&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables were set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Disable any proxy being used by git. For example, if the git proxy environment variable is set, you can unset it with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Re-enable any previous git proxy settings. If using the git proxy environment variable, return it to its previous value, or close and reopen the terminal.&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Create a meta layer for test purpose using &amp;quot;bitbake-layers&amp;quot; command.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers create-layer meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Remove the redundant recipes-example in meta-kerneltest&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm -r recipes-example&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Edit layer.conf for meta-kerneltest (Known issue in bitbake-layers in 2.4; Fixed in 2.5)&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/layer.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove the additional &amp;quot;\&amp;quot; at the end of line 4:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \\       &amp;lt;-- Additional \ will cause bitbake parse warning and unable to look for *.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Correct code:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Add the meta layer into build/conf/bblayers.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using QEMU:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the QEMU terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the QEMU terminal.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34142</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34142"/>
		<updated>2017-12-18T21:42:29Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Document Conventions==&lt;br /&gt;
:1. In command and configuration snippets that exist on the rest of the document, words or short phrases that appear in uppercase letters and enclosed on square brackets (for example, [VERSION]) are placeholders that need to be manually replaced by their correct value, depending on the context.&lt;br /&gt;
: 2. In command snippets, the dollar symbol and subsequent space at the beginning of the line indicates the command line prompt. This two characters should not be used when entering the command.&lt;br /&gt;
: 3. Other characters should be left as they appear on command or configuration sentences.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
: 6. To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 7. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; and &amp;quot;SRC_URI&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables were set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Disable any proxy being used by git. For example, if the git proxy environment variable is set, you can unset it with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Re-enable any previous git proxy settings. If using the git proxy environment variable, return it to its previous value, or close and reopen the terminal.&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Create a meta layer for test purpose using &amp;quot;bitbake-layers&amp;quot; command.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers create-layer meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Remove the redundant recipes-example in meta-kerneltest&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm -r recipes-example&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Edit layer.conf for meta-kerneltest (Known issue in bitbake-layers in 2.4; Fixed in 2.5)&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/layer.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove the additional &amp;quot;\&amp;quot; at the end of line 4:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \\       &amp;lt;-- Additional \ will cause bitbake parse warning and unable to look for *.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Correct code:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Add the meta layer into build/conf/bblayers.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using QEMU:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the QEMU terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the QEMU terminal.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34141</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34141"/>
		<updated>2017-12-18T21:30:18Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Document Conventions==&lt;br /&gt;
:1. In command and configuration snippets that exist on the rest of the document, words or short phrases that appear in uppercase letters and enclosed on square brackets (for example, [VERSION]) are placeholders that need to be manually replaced by their correct value, depending on the context.&lt;br /&gt;
: 2. In command snippets, the dollar symbol and subsequent space at the beginning of the line indicates the command line prompt. This two characters should not be used when entering the command.&lt;br /&gt;
: 3. Other characters should be left as they appear on command or configuration sentences.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
: 6. To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 7. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; and &amp;quot;SRC_URI&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables were set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Disable any proxy being used by git. For example, if the git proxy environment variable is set, you can unset it with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Re-enable any previous git proxy settings. If using the git proxy environment variable, return it to its previous value, or close and reopen the terminal.&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Create a meta layer for test purpose using &amp;quot;bitbake-layers&amp;quot; command.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers create-layer meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Remove the redundant recipes-example in meta-kerneltest&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm -r recipes-example&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Edit layer.conf for meta-kerneltest (Known issue in bitbake-layers in 2.4; Fixed in 2.5)&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/layer.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove the additional &amp;quot;\&amp;quot; at the end of line 4:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \\       &amp;lt;-- Additional \ will cause bitbake parse warning and unable to look for *.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Correct code:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Add the meta layer into build/conf/bblayers.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using QEMU:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the QEMU terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the QEMU terminal.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34140</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34140"/>
		<updated>2017-12-18T21:29:54Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Expected Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Document Conventions==&lt;br /&gt;
:1. In command and configuration snippets that exist on the rest of the document, words or short phrases that appear in uppercase letters and enclosed on square brackets (for example, [VERSION]) are placeholders that need to be manually replaced by their correct value, depending on the context.&lt;br /&gt;
: 2. In command snippets, the dollar symbol and subsequent space at the beginning of the line indicates the command line prompt. This two characters should not be used when entering the command.&lt;br /&gt;
: 3. Other characters should be left as they appear on command or configuration sentences.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
: 6. To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 7. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; and &amp;quot;SRC_URI&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables are set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Disable any proxy being used by git. For example, if the git proxy environment variable is set, you can unset it with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Re-enable any previous git proxy settings. If using the git proxy environment variable, return it to its previous value, or close and reopen the terminal.&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Create a meta layer for test purpose using &amp;quot;bitbake-layers&amp;quot; command.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers create-layer meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Remove the redundant recipes-example in meta-kerneltest&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm -r recipes-example&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Edit layer.conf for meta-kerneltest (Known issue in bitbake-layers in 2.4; Fixed in 2.5)&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/layer.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove the additional &amp;quot;\&amp;quot; at the end of line 4:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \\       &amp;lt;-- Additional \ will cause bitbake parse warning and unable to look for *.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Correct code:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Add the meta layer into build/conf/bblayers.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using QEMU:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the QEMU terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the QEMU terminal.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34139</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34139"/>
		<updated>2017-12-18T21:29:00Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Document Conventions==&lt;br /&gt;
:1. In command and configuration snippets that exist on the rest of the document, words or short phrases that appear in uppercase letters and enclosed on square brackets (for example, [VERSION]) are placeholders that need to be manually replaced by their correct value, depending on the context.&lt;br /&gt;
: 2. In command snippets, the dollar symbol and subsequent space at the beginning of the line indicates the command line prompt. This two characters should not be used when entering the command.&lt;br /&gt;
: 3. Other characters should be left as they appear on command or configuration sentences.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
: 6. To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 7. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables are set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Disable any proxy being used by git. For example, if the git proxy environment variable is set, you can unset it with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Re-enable any previous git proxy settings. If using the git proxy environment variable, return it to its previous value, or close and reopen the terminal.&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Create a meta layer for test purpose using &amp;quot;bitbake-layers&amp;quot; command.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers create-layer meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Remove the redundant recipes-example in meta-kerneltest&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm -r recipes-example&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Edit layer.conf for meta-kerneltest (Known issue in bitbake-layers in 2.4; Fixed in 2.5)&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/layer.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove the additional &amp;quot;\&amp;quot; at the end of line 4:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \\       &amp;lt;-- Additional \ will cause bitbake parse warning and unable to look for *.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Correct code:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Add the meta layer into build/conf/bblayers.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using QEMU:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the QEMU terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the QEMU terminal.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34138</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34138"/>
		<updated>2017-12-18T18:21:54Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* General Remarks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Document Conventions==&lt;br /&gt;
:1. In command and configuration snippets that exist on the rest of the document, words or short phrases that appear in uppercase letters and enclosed on square brackets (for example, [VERSION]) are placeholders that need to be manually replaced by their correct value, depending on the context.&lt;br /&gt;
: 2. In command snippets, the dollar symbol and subsequent space at the beginning of the line indicates the command line prompt. This two characters should not be used when entering the command.&lt;br /&gt;
: 3. Other characters should be left as they appear on command or configuration sentences.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
: 6. To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 7. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep PREFERRED_PROVIDER_virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables are set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Disable any proxy being used by git. For example, if the git proxy environment variable is set, you can unset it with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Re-enable any previous git proxy settings. If using the git proxy environment variable, return it to its previous value, or close and reopen the terminal.&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Create a meta layer for test purpose using &amp;quot;bitbake-layers&amp;quot; command.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers create-layer meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Remove the redundant recipes-example in meta-kerneltest&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm -r recipes-example&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Edit layer.conf for meta-kerneltest (Known issue in bitbake-layers in 2.4; Fixed in 2.5)&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/layer.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove the additional &amp;quot;\&amp;quot; at the end of line 4:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \\       &amp;lt;-- Additional \ will cause bitbake parse warning and unable to look for *.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Correct code:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Add the meta layer into build/conf/bblayers.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using QEMU:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the QEMU terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the QEMU terminal.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34065</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34065"/>
		<updated>2017-12-12T17:11:51Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Document Conventions==&lt;br /&gt;
:1. In command and configuration snippets that exist on the rest of the document, words or short phrases that appear in uppercase letters and enclosed on square brackets (for example, [VERSION]) are placeholders that need to be manually replaced by their correct value, depending on the context.&lt;br /&gt;
: 2. In command snippets, the dollar symbol and subsequent space at the beginning of the line indicates the command line prompt. This two characters should not be used when entering the command.&lt;br /&gt;
: 3. Other characters should be left as they appear on command or configuration sentences.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
:: To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 6. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep PREFERRED_PROVIDER_virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables are set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Disable any proxy being used by git. For example, if the git proxy environment variable is set, you can unset it with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Re-enable any previous git proxy settings. If using the git proxy environment variable, return it to its previous value, or close and reopen the terminal.&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Create a meta layer for test purpose using &amp;quot;bitbake-layers&amp;quot; command.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers create-layer meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Remove the redundant recipes-example in meta-kerneltest&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm -r recipes-example&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Edit layer.conf for meta-kerneltest (Known issue in bitbake-layers in 2.4; Fixed in 2.5)&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/layer.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove the additional &amp;quot;\&amp;quot; at the end of line 4:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \\       &amp;lt;-- Additional \ will cause bitbake parse warning and unable to look for *.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Correct code:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Add the meta layer into build/conf/bblayers.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using QEMU:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the QEMU terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the QEMU terminal.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34064</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=34064"/>
		<updated>2017-12-12T17:11:05Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Document Conventions==&lt;br /&gt;
:1. In command and configuration snippets that exist on the rest of the document, words or short phrases that appear in uppercase letters and enclosed on square brackets (for example, [VERSION]) are placeholders that need to be manually replaced by their correct value, depending on the context.&lt;br /&gt;
: 2. In command snippets, the dollar symbol and subsequent space at the beginning of the line indicates the command line prompt. This two characters should not be used when entering the command.&lt;br /&gt;
: 3. Other characters should be left as they appear on command or configuration sentences.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
:: To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 6. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep PREFERRED_PROVIDER_virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables are set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Disable any proxy being used by git. For example, if the git proxy environment variable is set, you can unset it with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Re-enable any existing git proxy settings. If using the git proxy environment variable, return it to its previous value, or close and reopen the terminal.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Create a meta layer for test purpose using &amp;quot;bitbake-layers&amp;quot; command.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers create-layer meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Remove the redundant recipes-example in meta-kerneltest&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm -r recipes-example&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Edit layer.conf for meta-kerneltest (Known issue in bitbake-layers in 2.4; Fixed in 2.5)&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/layer.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove the additional &amp;quot;\&amp;quot; at the end of line 4:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \\       &amp;lt;-- Additional \ will cause bitbake parse warning and unable to look for *.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Correct code:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;BBFILES += &amp;quot;${LAYERDIR}/recipes-*/*/*.bb \&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Add the meta layer into build/conf/bblayers.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using QEMU:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the QEMU terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the QEMU terminal.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33461</id>
		<title>BSP Test Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33461"/>
		<updated>2017-11-21T22:00:45Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Test Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About BSP  =&lt;br /&gt;
&lt;br /&gt;
A Board Support Package (BSP) is the collection of software and data that allows an operating system to run in a specific hardware. It contains the drivers, routines and information that defines how to support a particular hardware device, set of devices, or hardware platform.&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
&lt;br /&gt;
Verify different supported images generated by Yocto Project build system on main AB, manual and automated test are applied in both physical HW and emulated with qemu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Member&#039;&#039;&#039;&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border:0.05pt solid #000000;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Team&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | José Pérez Carranza&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Oscar Lopez Arandas &lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Yi Zaho&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Wind River &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types of Tests &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* Automated test on different platforms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Platforms, type of images and type of tests are showed detailed on BSP Test Matrix. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features tested&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Manual Tests&lt;br /&gt;
** Boot image &lt;br /&gt;
** Install Image &lt;br /&gt;
** Multimedia&lt;br /&gt;
** Graphical interface components &lt;br /&gt;
** System reboot and shutdown recovery and standby &lt;br /&gt;
** X server tests &lt;br /&gt;
** rpm packages &lt;br /&gt;
** File system (reading/writing)&lt;br /&gt;
** Mont / Umont &lt;br /&gt;
** Network&lt;br /&gt;
&lt;br /&gt;
All test cases can be found here &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Automated Tests &lt;br /&gt;
** buildcpio&lt;br /&gt;
** buildgalculator&lt;br /&gt;
** buildlzip&lt;br /&gt;
** connman&lt;br /&gt;
** date&lt;br /&gt;
** df&lt;br /&gt;
** dnf&lt;br /&gt;
** gcc&lt;br /&gt;
** kernelmodule&lt;br /&gt;
** ldd&lt;br /&gt;
** logrotate&lt;br /&gt;
** multilib&lt;br /&gt;
** oe_syslog&lt;br /&gt;
** pam&lt;br /&gt;
** parselogs&lt;br /&gt;
** perl&lt;br /&gt;
** ping&lt;br /&gt;
** ptest&lt;br /&gt;
** python&lt;br /&gt;
** rpm&lt;br /&gt;
** scanelf&lt;br /&gt;
** scp&lt;br /&gt;
** skeletoninit&lt;br /&gt;
** ssh&lt;br /&gt;
** systemd&lt;br /&gt;
** x32lib&lt;br /&gt;
** xorg&lt;br /&gt;
&lt;br /&gt;
full code of this automated test are on poky repo under meta/lib/oeqa/runtime/cases &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy  =&lt;br /&gt;
&lt;br /&gt;
As mentioned below there are 2 types of test Automated an Manual tests, below a description of how those test are applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Manual==&lt;br /&gt;
&lt;br /&gt;
Test cases executed fully manually on real HW and on a qemu instance, these tests are focused on user scenarios using the image and also ensuring that graphical interface and multimedia are properly working on the image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automated Tests==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test cases execute automatically used testimage suite as well as 2 special test called pTest and Compliance, these tests are written in Python using oeqa framework and check different content and packages behavior of the booted image by a series of commands executed by a ssh communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
 1. Prepare the image and device under test&lt;br /&gt;
 &lt;br /&gt;
    1.1 Download Artifacts&lt;br /&gt;
       there are 2 links available from Public AutoBuilder to download images &lt;br /&gt;
          http://autobuilder.yoctoproject.org/pub/releases/&lt;br /&gt;
          https://autobuilder.yocto.io/pub/releases/&lt;br /&gt;
     &lt;br /&gt;
       Artifacts to be downloaded are: &lt;br /&gt;
    &lt;br /&gt;
       &#039;&#039;&#039;Real HW&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.hddimg&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic.bmap&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-genericx86.*&#039;&#039;&#039;&lt;br /&gt;
       &lt;br /&gt;
       &#039;&#039;&#039;QEMU&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/qemu/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;BZIMAGE&amp;gt;.bin&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.ext4&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.qemuboot.conf&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-qemux86.*&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
    1.2 For real hardware devices:&lt;br /&gt;
       - Write the image to a bootable media (USB key, SD Card, etc.) using the dd command:&lt;br /&gt;
           &#039;&#039;&#039;$ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic of=TARGET_DEVICE&#039;&#039;&#039;&lt;br /&gt;
       - Attach the bootable device to the DUT&lt;br /&gt;
       - Turn the DUT on, and use its boot options to select the correct media for booting&lt;br /&gt;
       - Ensure the device has a network connection and a valid IP address&lt;br /&gt;
&lt;br /&gt;
 2. For Manual Test Cases:&lt;br /&gt;
   &lt;br /&gt;
    2.1 - Go to the proper Test Run assigned on the execution and start executing test cases  &lt;br /&gt;
&lt;br /&gt;
 3. For automated Test Cases:&lt;br /&gt;
    &lt;br /&gt;
    3.1 Clone poky repo $git clone git://git.yoctoproject.org/poky&lt;br /&gt;
    3.2 $cd poky &lt;br /&gt;
    3.3 Checkout to the commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
    3.4 &#039;&#039;&#039;If testing meta-intel&#039;&#039;&#039;, clone the layer repo inside poky $git clone git://git.yoctoproject.org/meta-intel&lt;br /&gt;
        3.4.1 $cd meta-intel&lt;br /&gt;
        3.4.2 Checkout to the meta-intel commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
        3.4.3 Return to the poky root path $cd ..&lt;br /&gt;
    3.5 $source oe-init-build-env&lt;br /&gt;
    3.6 &#039;&#039;&#039;If testing meta-intel&#039;&#039;&#039;, add the layer to conf/bblayers.conf. It may be done with:&lt;br /&gt;
        $bitbake-layers add-layer &amp;quot;../meta-intel&amp;quot;&lt;br /&gt;
    3.7 For real HW edit local.conf. PATH: ~/poky/build/conf, at the end of the file adding: &lt;br /&gt;
        &#039;&#039;&#039;Install / Boot the image on the DUT and check the IP&#039;&#039;&#039;&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        TEST_TARGET = &amp;quot;simpleremote&amp;quot;&lt;br /&gt;
        TEST_SERVER_IP = &amp;quot;HOST ip&amp;quot; --&amp;gt; IP of the machine being used to launch tests&lt;br /&gt;
        TEST_TARGET_IP = &amp;quot;DUT ip&amp;quot;  --&amp;gt; IP of the device under test&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    3.8 For QEMU edit local.conf. PATH: ~/poky/build/conf, at the end of the file adding:&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    &#039;&#039;&#039;For releases before 2.3 also add&#039;&#039;&#039;&lt;br /&gt;
    TEST_SUITES = &amp;quot; auto&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Remember to add the machine to local.conf, for example:&#039;&#039;&#039;&lt;br /&gt;
    If genericx86 is needed, MACHINE ?= &amp;quot;genericx86&amp;quot;&lt;br /&gt;
    If qemux86 is needed, MACHINE ?= &amp;quot;qemux86&amp;quot;&lt;br /&gt;
    If intel-corei7-64 is needed, MACHINE = &amp;quot;intel-corei7-64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 4. Prepare the environment to execute test suite &lt;br /&gt;
    &lt;br /&gt;
    4.1 $bitbake rpm busybox run-postinsts&lt;br /&gt;
    4.2 $bitbake package-index&lt;br /&gt;
    4.3 Ensure that a folder is created, otherwise create it, under&lt;br /&gt;
        tmp/deploy/images/&amp;lt;MACHINE&amp;gt;, where &amp;lt;MACHINE&amp;gt; corresponds to the variable defined on&lt;br /&gt;
        local.conf on previous steps&lt;br /&gt;
    4.4 Paste artifacts downloaded on previously created folder &lt;br /&gt;
&lt;br /&gt;
 5. Execute the test suite&lt;br /&gt;
    &lt;br /&gt;
    5.1 $bitbake &amp;lt;IMAGE_TESTED&amp;gt; -c testimage&lt;br /&gt;
       &#039;&#039;&#039;example bitbake core-image-sato-sdk -c testimage -v&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 6. Verify that all test cases PASSED if not raise bugs properly &lt;br /&gt;
&lt;br /&gt;
 7. Update results to corresponding Testopia Test Run &lt;br /&gt;
    &#039;&#039;&#039;There is a script available to upload results form the log automatically on [[Qa-tools#Testopia_Update|QA-Tools]] and follow this example [[Qa-tools#Update_a_Test_Run_by_ID|Update TR by ID]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Bug Reporting==&lt;br /&gt;
&lt;br /&gt;
For correctly report the bugs follow the already defined steps [[Bug_reporting_and_Information_levels | here]]&lt;br /&gt;
&lt;br /&gt;
= Special Tests =&lt;br /&gt;
&lt;br /&gt;
There are 2 special test that also applied as BSP Components those are:&lt;br /&gt;
  &lt;br /&gt;
== pTest ==&lt;br /&gt;
&lt;br /&gt;
For detailed information about behavior and characteristics check [[Ptest]]&lt;br /&gt;
&lt;br /&gt;
=== Test Process ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1. Download pTest image from autobuilder( you can find core-image-sato-sdk image in pTest directory)&lt;br /&gt;
    * Test are applied on NUC with genericx86-64 &lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT (using legacy boot)&lt;br /&gt;
    Configure the network so it be able to work externally:&lt;br /&gt;
    - Export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command eg&lt;br /&gt;
      $ export http_proxy=http://&amp;lt;my_proxy&amp;gt;:&amp;lt;port&amp;gt;&lt;br /&gt;
    - And check if you have internet connection, typing on terminal:&lt;br /&gt;
      $ wget www.google.com&lt;br /&gt;
&lt;br /&gt;
 3. In command line type&lt;br /&gt;
    $ ptest-runner &amp;gt; ptest.log&lt;br /&gt;
      and wait for it to finish ( about 5 hours)&lt;br /&gt;
      &#039;&#039;&#039;Note:&#039;&#039;&#039; The &amp;quot;script&amp;quot; is already placed on the distro, you just have to type &#039;&#039;&#039;ptest&#039;&#039;&#039;...TAB and the terminal should autocomplete the command.&lt;br /&gt;
      and &amp;gt; &#039;&#039;&#039;ptest.log&#039;&#039;&#039;, in order to save the test results in that file.&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process ===&lt;br /&gt;
&lt;br /&gt;
1. Generate the report of pTests as follows: &lt;br /&gt;
     1.1 Get the log from the DUT.&lt;br /&gt;
     1.2 Go to the [[Ptest/archive]] page and check the previous execution to this release.&lt;br /&gt;
     1.3 Go the the report of the execution and download the log.&lt;br /&gt;
     1.4 Use the [[Qa-tools#Ptest_Parser|ptest-parser]] script to generate the report, this script generates a file called &amp;lt;release&amp;gt;wiki.page.&lt;br /&gt;
     1.5 Create a wiki with the name &#039;&#039;&#039;Ptest_&amp;lt;commit-tested&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
     1.6 Copy the content of the content of &#039;&#039;&#039;&amp;lt;release&amp;gt;wiki.page&#039;&#039;&#039; and paste it on new wiki created.&lt;br /&gt;
     1.7 Upload the log of current execution and update the recent created wiki with the link to the log.&lt;br /&gt;
     1.8 Check the packages that had regression on pass rate [[File:down_rate.png|15px]] and if there is a bug reported update the bug with comments that still present &lt;br /&gt;
         on current commit, if there is no bug created raise a new one.&lt;br /&gt;
     1.9 Update the [[Ptest/archive]] wiki with the info of this new execution.&lt;br /&gt;
&lt;br /&gt;
== Compliance ==&lt;br /&gt;
&lt;br /&gt;
In this section 3 Test suites are executed on a NUC HW with core-image-sato-lsb-generixc86-64 image booted.&lt;br /&gt;
&lt;br /&gt;
*LSB tests&lt;br /&gt;
*POSIX tests&lt;br /&gt;
*LTP tests&lt;br /&gt;
&lt;br /&gt;
=== Test Process  ===&lt;br /&gt;
 1. Download lsb image from autobuilder( same image as in LSB automated testing for genericx86-64-lsb bsp)&lt;br /&gt;
    * we test compliance on NUC with genericx86-64-lsb, core-image-lsb-sdk&lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT&lt;br /&gt;
&lt;br /&gt;
 3. Configure the network so it be able to work externally:&lt;br /&gt;
    * edit /etc/resolv.conf and add the gateway ip_address&lt;br /&gt;
    * add the ip and netmask using &amp;quot;ifconfig&amp;quot; command&lt;br /&gt;
    * add the route using &amp;quot;route add default gw &amp;lt;ip_address&amp;gt;&amp;quot; &lt;br /&gt;
    * export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command&lt;br /&gt;
      : there is a bug and if you make these steps in another order than above, it may be possible not work&lt;br /&gt;
&lt;br /&gt;
  4. Copy &amp;quot;compliance_test.py&amp;quot; script on DUT&lt;br /&gt;
     script can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=cagurida/compliance here]&lt;br /&gt;
&lt;br /&gt;
  5. Make sure that your network connection is working&lt;br /&gt;
&lt;br /&gt;
  6. Run the script like this:&lt;br /&gt;
    * make the script executable: &amp;quot;chmod a+x compliance_local.py&amp;quot;&lt;br /&gt;
    * run in command line the following command &amp;quot;./compliance_test.py &amp;lt;milestone&amp;gt; &amp;lt;date&amp;gt;&amp;quot;&lt;br /&gt;
    * wait until &amp;quot;Configuration done. LSB script must be started from machine.&amp;quot; in command line( about 8-12 hours)&lt;br /&gt;
&lt;br /&gt;
  7. Run &amp;quot;LSB_test.sh&amp;quot; via ssh or manually and wait for it to finish( about a day)&lt;br /&gt;
&lt;br /&gt;
  8. Get the logs from DUT:&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fulllog&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.log&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fail&lt;br /&gt;
    - posix.log (can be found in: /opt/ltp/testcases/open_posix_testsuite)&lt;br /&gt;
      -  the three others are found in /opt/ltp directory, in output, temp, result folders . The logs need to be sent to [[yi.zhao@windriver.com]] specifying the&lt;br /&gt;
         version and the type of image&lt;br /&gt;
    - in /var/opt/lsb/test/manager/results/x86.../x86....tar.gz (you can find it with auto-complete(tab) easily)&lt;br /&gt;
      -- it has like 18 Mb&lt;br /&gt;
      -- upload this file on drive and send the link to [[yi.zhao@windriver.com]]&lt;br /&gt;
      -- also I&#039;ll fwd an email to see how it looks&lt;br /&gt;
&lt;br /&gt;
  9. Put the tests from Testopia - Runtime test run on passed&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To Be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Add New Tests =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test Approach=&lt;br /&gt;
&lt;br /&gt;
=Test Matrix=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yocto QA Cycle&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;!-- The table can be edited with this tool : http://www.tablesgenerator.com/mediawiki_tables --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! linux-yocto&lt;br /&gt;
! Image-type&lt;br /&gt;
! AUTO&lt;br /&gt;
! MANUAL&lt;br /&gt;
! Compliance&lt;br /&gt;
! pTest&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (x86)&#039;&#039;&#039;&lt;br /&gt;
| Big Core&lt;br /&gt;
| MinwMax 32bit&lt;br /&gt;
| genericx86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| MinwMax 64bit&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NUC&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemux86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemux86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (n-x86)&#039;&#039;&#039;&lt;br /&gt;
| MIPS&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| PPC&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| ARM&lt;br /&gt;
| Beaglebone Black&lt;br /&gt;
| beaglebone&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemuarm&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuarm64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuppc&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meta-Intel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! Image-type&lt;br /&gt;
! Auto&lt;br /&gt;
! Manual&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | meta-intel&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; | Big Core&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 64bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | NUC&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | CherryHill&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Joule&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#ff0000&amp;quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | core2-32&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | meta-intel-quark 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | intel-quark&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Not Tested=&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33449</id>
		<title>BSP Test Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33449"/>
		<updated>2017-11-21T21:42:42Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Compliance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About BSP  =&lt;br /&gt;
&lt;br /&gt;
A Board Support Package (BSP) is the collection of software and data that allows an operating system to run in a specific hardware. It contains the drivers, routines and information that defines how to support a particular hardware device, set of devices, or hardware platform.&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
&lt;br /&gt;
Verify different supported images generated by Yocto Project build system on main AB, manual and automated test are applied in both physical HW and emulated with qemu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Member&#039;&#039;&#039;&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border:0.05pt solid #000000;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Team&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | José Pérez Carranza&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Oscar Lopez Arandas &lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Yi Zaho&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Wind River &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types of Tests &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* Automated test on different platforms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Platforms, type of images and type of tests are showed detailed on BSP Test Matrix. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features tested&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Manual Tests&lt;br /&gt;
** Boot image &lt;br /&gt;
** Install Image &lt;br /&gt;
** Multimedia&lt;br /&gt;
** Graphical interface components &lt;br /&gt;
** System reboot and shutdown recovery and standby &lt;br /&gt;
** X server tests &lt;br /&gt;
** rpm packages &lt;br /&gt;
** File system (reading/writing)&lt;br /&gt;
** Mont / Umont &lt;br /&gt;
** Network&lt;br /&gt;
&lt;br /&gt;
All test cases can be found here &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Automated Tests &lt;br /&gt;
** buildcpio&lt;br /&gt;
** buildgalculator&lt;br /&gt;
** buildlzip&lt;br /&gt;
** connman&lt;br /&gt;
** date&lt;br /&gt;
** df&lt;br /&gt;
** dnf&lt;br /&gt;
** gcc&lt;br /&gt;
** kernelmodule&lt;br /&gt;
** ldd&lt;br /&gt;
** logrotate&lt;br /&gt;
** multilib&lt;br /&gt;
** oe_syslog&lt;br /&gt;
** pam&lt;br /&gt;
** parselogs&lt;br /&gt;
** perl&lt;br /&gt;
** ping&lt;br /&gt;
** ptest&lt;br /&gt;
** python&lt;br /&gt;
** rpm&lt;br /&gt;
** scanelf&lt;br /&gt;
** scp&lt;br /&gt;
** skeletoninit&lt;br /&gt;
** ssh&lt;br /&gt;
** systemd&lt;br /&gt;
** x32lib&lt;br /&gt;
** xorg&lt;br /&gt;
&lt;br /&gt;
full code of this automated test are on poky repo under meta/lib/oeqa/runtime/cases &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy  =&lt;br /&gt;
&lt;br /&gt;
As mentioned below there are 2 types of test Automated an Manual tests, below a description of how those test are applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Manual==&lt;br /&gt;
&lt;br /&gt;
Test cases executed fully manually on real HW and on a qemu instance, these tests are focused on user scenarios using the image and also ensuring that graphical interface and multimedia are properly working on the image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automated Tests==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test cases execute automatically used testimage suite as well as 2 special test called pTest and Compliance, these tests are written in Python using oeqa framework and check different content and packages behavior of the booted image by a series of commands executed by a ssh communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
 1. Prepare the image and device under test&lt;br /&gt;
 &lt;br /&gt;
    1.1 Download Artifacts&lt;br /&gt;
       there are 2 links available from Public AutoBuilder to download images &lt;br /&gt;
          http://autobuilder.yoctoproject.org/pub/releases/&lt;br /&gt;
          https://autobuilder.yocto.io/pub/releases/&lt;br /&gt;
     &lt;br /&gt;
       Artifacts to be downloaded are: &lt;br /&gt;
    &lt;br /&gt;
       &#039;&#039;&#039;Real HW&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.hddimg&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic.bmap&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-genericx86.*&#039;&#039;&#039;&lt;br /&gt;
       &lt;br /&gt;
       &#039;&#039;&#039;QEMU&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/qemu/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;BZIMAGE&amp;gt;.bin&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.ext4&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.qemuboot.conf&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-qemux86.*&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
    1.2 For real hardware devices:&lt;br /&gt;
       - Write the image to a bootable media (USB key, SD Card, etc.) using the dd command:&lt;br /&gt;
           &#039;&#039;&#039;$ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic of=TARGET_DEVICE&#039;&#039;&#039;&lt;br /&gt;
       - Attach the bootable device to the DUT&lt;br /&gt;
       - Turn the DUT on, and use its boot options to select the correct media for booting&lt;br /&gt;
       - Ensure the device has a network connection and a valid IP address&lt;br /&gt;
&lt;br /&gt;
 2. For Manual Test Cases:&lt;br /&gt;
   &lt;br /&gt;
    2.1 - Go to the proper Test Run assigned on the execution and start executing test cases  &lt;br /&gt;
&lt;br /&gt;
 3. For automated Test Cases:&lt;br /&gt;
    &lt;br /&gt;
    3.1 Clone poky repo $git clone git://git.yoctoproject.org/poky&lt;br /&gt;
    3.2 $cd poky &lt;br /&gt;
    3.3 Checkout to the commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
    3.4 &#039;&#039;&#039;If testing meta-intel&#039;&#039;&#039;, clone the layer repo inside poky $git clone git://git.yoctoproject.org/meta-intel&lt;br /&gt;
        3.4.1 $cd meta-intel&lt;br /&gt;
        3.4.2 Checkout to the meta-intel commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
        3.4.3 Return to the poky root path $cd ..&lt;br /&gt;
    3.5 $source oe-init-build-env&lt;br /&gt;
    3.6 &#039;&#039;&#039;If testing meta-intel&#039;&#039;&#039;, add the layer to conf/bblayers.conf. It may be done with:&lt;br /&gt;
        $bitbake-layers add-layer &amp;quot;../meta-intel&amp;quot;&lt;br /&gt;
    3.7 For real HW edit local.conf. PATH: ~/poky/build/conf, at the end of the file adding: &lt;br /&gt;
        &#039;&#039;&#039;Install / Boot the image on the DUT and check the IP&#039;&#039;&#039;&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        TEST_TARGET = &amp;quot;simpleremote&amp;quot;&lt;br /&gt;
        TEST_SERVER_IP = &amp;quot;HOST ip&amp;quot; --&amp;gt; IP of the machine being used to launch tests&lt;br /&gt;
        TEST_TARGET_IP = &amp;quot;DUT ip&amp;quot;  --&amp;gt; IP of the device under test&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    3.8 For QEMU edit local.conf. PATH: ~/poky/build/conf, at the end of the file adding:&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    &#039;&#039;&#039;For releases before 2.3 also add&#039;&#039;&#039;&lt;br /&gt;
    TEST_SUITES = &amp;quot; auto&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Remember to add the machine to local.conf, for example:&#039;&#039;&#039;&lt;br /&gt;
    If genericx86 is needed, MACHINE ?= &amp;quot;genericx86&amp;quot;&lt;br /&gt;
    If qemux86 is needed, MACHINE ?= &amp;quot;qemux86&amp;quot;&lt;br /&gt;
    If intel-corei7-64 is needed, MACHINE = &amp;quot;intel-corei7-64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 4. Prepare the environment to execute test suite &lt;br /&gt;
    &lt;br /&gt;
    4.1 $bitbake rpm busybox run-postinsts&lt;br /&gt;
    4.2 $bitbake package-index&lt;br /&gt;
    4.3 Ensure that a folder is created, otherwise create it, under&lt;br /&gt;
        tmp/deploy/images/&amp;lt;MACHINE&amp;gt;, where &amp;lt;MACHINE&amp;gt; corresponds to the variable defined on&lt;br /&gt;
        local.conf on previous steps&lt;br /&gt;
    4.4 Paste artifacts downloaded on previously created folder &lt;br /&gt;
&lt;br /&gt;
 5. Execute the test suite&lt;br /&gt;
    &lt;br /&gt;
    5.1 $bitbake &amp;lt;IMAGE_TESTED&amp;gt; -c testimage&lt;br /&gt;
       &#039;&#039;&#039;example bitbake core-image-sato-sdk -c testimage -v&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 6. Verify that all test cases PASSED if not raise bugs properly &lt;br /&gt;
&lt;br /&gt;
 7. Update results to corresponding Testopia Test Run &lt;br /&gt;
    &#039;&#039;&#039;There is a script available to upload results form the log automatically on [[Qa-tools#Testopia_Update|QA-Tools]] and follow this example [[Qa-tools#Update_a_Test_Run_by_ID|Update TR by ID]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Bug Reporting==&lt;br /&gt;
&lt;br /&gt;
For correctly report the bugs follow the already defined steps [[Bug_reporting_and_Information_levels | here]]&lt;br /&gt;
&lt;br /&gt;
= Special Tests =&lt;br /&gt;
&lt;br /&gt;
There are 2 special test that also applied as BSP Components those are:&lt;br /&gt;
  &lt;br /&gt;
== pTest ==&lt;br /&gt;
&lt;br /&gt;
For detailed information about behavior and characteristics check [[Ptest]]&lt;br /&gt;
&lt;br /&gt;
=== Test Process ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1. Download pTest image from autobuilder( you can find core-image-sato-sdk image in pTest directory)&lt;br /&gt;
    * Test are applied on NUC with genericx86-64 &lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT (using legacy boot)&lt;br /&gt;
    Configure the network so it be able to work externally:&lt;br /&gt;
    - Export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command eg&lt;br /&gt;
      $ export http_proxy=http://&amp;lt;my_proxy&amp;gt;:&amp;lt;port&amp;gt;&lt;br /&gt;
    - And check if you have internet connection, typing on terminal:&lt;br /&gt;
      $ wget www.google.com&lt;br /&gt;
&lt;br /&gt;
 3. In command line type&lt;br /&gt;
    $ ptest-runner &amp;gt; ptest.log&lt;br /&gt;
      and wait for it to finish ( about 5 hours)&lt;br /&gt;
      &#039;&#039;&#039;Note:&#039;&#039;&#039; The &amp;quot;script&amp;quot; is already placed on the distro, you just have to type &#039;&#039;&#039;ptest&#039;&#039;&#039;...TAB and the terminal should autocomplete the command.&lt;br /&gt;
      and &amp;gt; &#039;&#039;&#039;ptest.log&#039;&#039;&#039;, in order to save the test results in that file.&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process ===&lt;br /&gt;
&lt;br /&gt;
1. Generate the report of pTests as follows: &lt;br /&gt;
     1.1 Get the log from the DUT.&lt;br /&gt;
     1.2 Go to the [[Ptest/archive]] page and check the previous execution to this release.&lt;br /&gt;
     1.3 Go the the report of the execution and download the log.&lt;br /&gt;
     1.4 Use the [[Qa-tools#Ptest_Parser|ptest-parser]] script to generate the report, this script generates a file called &amp;lt;release&amp;gt;wiki.page.&lt;br /&gt;
     1.5 Create a wiki with the name &#039;&#039;&#039;Ptest_&amp;lt;commit-tested&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
     1.6 Copy the content of the content of &#039;&#039;&#039;&amp;lt;release&amp;gt;wiki.page&#039;&#039;&#039; and paste it on new wiki created.&lt;br /&gt;
     1.7 Upload the log of current execution and update the recent created wiki with the link to the log.&lt;br /&gt;
     1.8 Check the packages that had regression on pass rate [[File:down_rate.png|15px]] and if there is a bug reported update the bug with comments that still present &lt;br /&gt;
         on current commit, if there is no bug created raise a new one.&lt;br /&gt;
     1.9 Update the [[Ptest/archive]] wiki with the info of this new execution.&lt;br /&gt;
&lt;br /&gt;
== Compliance ==&lt;br /&gt;
&lt;br /&gt;
In this section 3 Test suites are executed on a NUC HW with core-image-sato-lsb-generixc86-64 image booted.&lt;br /&gt;
&lt;br /&gt;
*LSB tests&lt;br /&gt;
*POSIX tests&lt;br /&gt;
*LTP tests&lt;br /&gt;
&lt;br /&gt;
=== Test Process  ===&lt;br /&gt;
 1. Download lsb image from autobuilder( same image as in LSB automated testing for genericx86-64-lsb bsp)&lt;br /&gt;
    * we test compliance on NUC with genericx86-64-lsb, core-image-lsb-sdk&lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT&lt;br /&gt;
&lt;br /&gt;
 3. Configure the network so it be able to work externally:&lt;br /&gt;
    * edit /etc/resolv.conf and add the gateway ip_address&lt;br /&gt;
    * add the ip and netmask using &amp;quot;ifconfig&amp;quot; command&lt;br /&gt;
    * add the route using &amp;quot;route add default gw &amp;lt;ip_address&amp;gt;&amp;quot; &lt;br /&gt;
    * export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command&lt;br /&gt;
      : there is a bug and if you make these steps in another order than above, it may be possible not work&lt;br /&gt;
&lt;br /&gt;
  4. Copy &amp;quot;compliance_test.py&amp;quot; script on DUT&lt;br /&gt;
     script can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=cagurida/compliance here]&lt;br /&gt;
&lt;br /&gt;
  5. Make sure that your network connection is working&lt;br /&gt;
&lt;br /&gt;
  6. Run the script like this:&lt;br /&gt;
    * make the script executable: &amp;quot;chmod a+x compliance_local.py&amp;quot;&lt;br /&gt;
    * run in command line the following command &amp;quot;./compliance_test.py &amp;lt;milestone&amp;gt; &amp;lt;date&amp;gt;&amp;quot;&lt;br /&gt;
    * wait until &amp;quot;Configuration done. LSB script must be started from machine.&amp;quot; in command line( about 8-12 hours)&lt;br /&gt;
&lt;br /&gt;
  7. Run &amp;quot;LSB_test.sh&amp;quot; via ssh or manually and wait for it to finish( about a day)&lt;br /&gt;
&lt;br /&gt;
  8. Get the logs from DUT:&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fulllog&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.log&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fail&lt;br /&gt;
    - posix.log (can be found in: /opt/ltp/testcases/open_posix_testsuite)&lt;br /&gt;
      -  the three others are found in /opt/ltp directory, in output, temp, result folders . The logs need to be sent to [[yi.zhao@windriver.com]] specifying the v &lt;br /&gt;
         version and the type of image&lt;br /&gt;
    - in /var/opt/lsb/test/manager/results/x86.../x86....tar.gz (you can find it with auto-complete(tab) easily)&lt;br /&gt;
      -- it has like 18 Mb&lt;br /&gt;
      -- upload this file on drive and send the link to [[yi.zhao@windriver.com]]&lt;br /&gt;
      -- also I&#039;ll fwd an email to see how it looks&lt;br /&gt;
&lt;br /&gt;
  9. Put the tests from Testopia - Runtime test run on passed&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To Be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Add New Tests =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test Approach=&lt;br /&gt;
&lt;br /&gt;
=Test Matrix=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yocto QA Cycle&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;!-- The table can be edited with this tool : http://www.tablesgenerator.com/mediawiki_tables --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! linux-yocto&lt;br /&gt;
! Image-type&lt;br /&gt;
! AUTO&lt;br /&gt;
! MANUAL&lt;br /&gt;
! Compliance&lt;br /&gt;
! pTest&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (x86)&#039;&#039;&#039;&lt;br /&gt;
| Big Core&lt;br /&gt;
| MinwMax 32bit&lt;br /&gt;
| genericx86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| MinwMax 64bit&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NUC&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemux86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemux86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (n-x86)&#039;&#039;&#039;&lt;br /&gt;
| MIPS&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| PPC&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| ARM&lt;br /&gt;
| Beaglebone Black&lt;br /&gt;
| beaglebone&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemuarm&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuarm64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuppc&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meta-Intel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! Image-type&lt;br /&gt;
! Auto&lt;br /&gt;
! Manual&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | meta-intel&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; | Big Core&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 64bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | NUC&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | CherryHill&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Joule&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#ff0000&amp;quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | core2-32&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | meta-intel-quark 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | intel-quark&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Not Tested=&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33359</id>
		<title>BSP Test Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33359"/>
		<updated>2017-11-17T23:42:28Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Reporting Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About BSP  =&lt;br /&gt;
&lt;br /&gt;
A Board Support Package (BSP) is the collection of software and data that allows an operating system to run in a specific hardware. It contains the drivers, routines and information that defines how to support a particular hardware device, set of devices, or hardware platform.&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
&lt;br /&gt;
Verify different supported images generated by Yocto Project build system on main AB, manual and automated test are applied in both physical HW and emulated with qemu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Member&#039;&#039;&#039;&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border:0.05pt solid #000000;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Team&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | José Pérez Carranza&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Oscar Lopez Arandas &lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Yi Zaho&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Wind River &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types of Tests &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* Automated test on different platforms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Platforms, type of images and type of tests are showed detailed on BSP Test Matrix. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features tested&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Manual Tests&lt;br /&gt;
** Boot image &lt;br /&gt;
** Install Image &lt;br /&gt;
** Multimedia&lt;br /&gt;
** Graphical interface components &lt;br /&gt;
** System reboot and shutdown recovery and standby &lt;br /&gt;
** X server tests &lt;br /&gt;
** rpm packages &lt;br /&gt;
** File system (reading/writing)&lt;br /&gt;
** Mont / Umont &lt;br /&gt;
** Network&lt;br /&gt;
&lt;br /&gt;
All test cases can be found here &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Automated Tests &lt;br /&gt;
** buildcpio&lt;br /&gt;
** buildgalculator&lt;br /&gt;
** buildlzip&lt;br /&gt;
** connman&lt;br /&gt;
** date&lt;br /&gt;
** df&lt;br /&gt;
** dnf&lt;br /&gt;
** gcc&lt;br /&gt;
** kernelmodule&lt;br /&gt;
** ldd&lt;br /&gt;
** logrotate&lt;br /&gt;
** multilib&lt;br /&gt;
** oe_syslog&lt;br /&gt;
** pam&lt;br /&gt;
** parselogs&lt;br /&gt;
** perl&lt;br /&gt;
** ping&lt;br /&gt;
** ptest&lt;br /&gt;
** python&lt;br /&gt;
** rpm&lt;br /&gt;
** scanelf&lt;br /&gt;
** scp&lt;br /&gt;
** skeletoninit&lt;br /&gt;
** ssh&lt;br /&gt;
** systemd&lt;br /&gt;
** x32lib&lt;br /&gt;
** xorg&lt;br /&gt;
&lt;br /&gt;
full code of this automated test are on poky repo under meta/lib/oeqa/runtime/cases &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy  =&lt;br /&gt;
&lt;br /&gt;
As mentioned below there are 2 types of test Automated an Manual tests, below a description of how those test are applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Manual==&lt;br /&gt;
&lt;br /&gt;
Test cases executed fully manually on real HW and on a qemu instance, these tests are focused on user scenarios using the image and also ensuring that graphical interface and multimedia are properly working on the image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automated Tests==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test cases execute automatically used testimage suite as well as 2 special test called pTest and Compliance, these tests are written in Python using oeqa framework and check different content and packages behavior of the booted image by a series of commands executed by a ssh communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
 1. Prepare the image and device under test&lt;br /&gt;
 &lt;br /&gt;
    1.1 Download Artifacts&lt;br /&gt;
       there are 2 links available from Public AutoBuilder to download images &lt;br /&gt;
          http://autobuilder.yoctoproject.org/pub/releases/&lt;br /&gt;
          https://autobuilder.yocto.io/pub/releases/&lt;br /&gt;
     &lt;br /&gt;
       Artifacts to be downloaded are: &lt;br /&gt;
    &lt;br /&gt;
       &#039;&#039;&#039;Real HW&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.hddimg&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic.bmap&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-genericx86.*&#039;&#039;&#039;&lt;br /&gt;
       &lt;br /&gt;
       &#039;&#039;&#039;QEMU&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/qemu/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;BZIMAGE&amp;gt;.bin&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.ext4&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.qemuboot.conf&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-qemux86.*&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
    1.2 For real hardware devices:&lt;br /&gt;
       - Write the image to a bootable media (USB key, SD Card, etc.) using the dd command:&lt;br /&gt;
           &#039;&#039;&#039;$ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic of=TARGET_DEVICE&#039;&#039;&#039;&lt;br /&gt;
       - Attach the bootable device to the DUT&lt;br /&gt;
       - Turn the DUT on, and use its boot options to select the correct media for booting&lt;br /&gt;
       - Ensure the device has a network connection and a valid IP address&lt;br /&gt;
&lt;br /&gt;
 2. For Manual Test Cases:&lt;br /&gt;
   &lt;br /&gt;
    2.1 - Go to the proper Test Run assigned on the execution and start executing test cases  &lt;br /&gt;
&lt;br /&gt;
 3. For automated Test Cases:&lt;br /&gt;
    &lt;br /&gt;
    3.1 Clone poky repo $git clone git://git.yoctoproject.org/poky&lt;br /&gt;
    3.2 $cd poky &lt;br /&gt;
    3.3 Checkout to the commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
    3.4 &#039;&#039;&#039;If testing meta-intel&#039;&#039;&#039;, clone the layer repo inside poky $git clone git://git.yoctoproject.org/meta-intel&lt;br /&gt;
        3.4.1 $cd meta-intel&lt;br /&gt;
        3.4.2 Checkout to the meta-intel commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
        3.4.3 Return to the poky root path $cd ..&lt;br /&gt;
    3.5 $source oe-init-build-env&lt;br /&gt;
    3.6 &#039;&#039;&#039;If testing meta-intel&#039;&#039;&#039;, add the layer to conf/bblayers.conf. It may be done with:&lt;br /&gt;
        $bitbake-layers add-layer &amp;quot;../meta-intel&amp;quot;&lt;br /&gt;
    3.7 For real HW edit local.conf. PATH: ~/poky/build/conf, at the end of the file adding: &lt;br /&gt;
        &#039;&#039;&#039;Install / Boot the image on the DUT and check the IP&#039;&#039;&#039;&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        TEST_TARGET = &amp;quot;simpleremote&amp;quot;&lt;br /&gt;
        TEST_SERVER_IP = &amp;quot;HOST ip&amp;quot; --&amp;gt; IP of the machine being used to launch tests&lt;br /&gt;
        TEST_TARGET_IP = &amp;quot;DUT ip&amp;quot;  --&amp;gt; IP of the device under test&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    3.8 For QEMU edit local.conf. PATH: ~/poky/build/conf, at the end of the file adding:&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    &#039;&#039;&#039;For releases before 2.3 also add&#039;&#039;&#039;&lt;br /&gt;
    TEST_SUITES = &amp;quot; auto&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Remember to add the machine to local.conf, for example:&#039;&#039;&#039;&lt;br /&gt;
    If genericx86 is needed, MACHINE ?= &amp;quot;genericx86&amp;quot;&lt;br /&gt;
    If qemux86 is needed, MACHINE ?= &amp;quot;qemux86&amp;quot;&lt;br /&gt;
    If intel-corei7-64 is needed, MACHINE = &amp;quot;intel-corei7-64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 4. Prepare the environment to execute test suite &lt;br /&gt;
    &lt;br /&gt;
    4.1 $bitbake rpm busybox run-postinsts&lt;br /&gt;
    4.2 $bitbake package-index&lt;br /&gt;
    4.3 Ensure that a folder is created, otherwise create it, under&lt;br /&gt;
        tmp/deploy/images/&amp;lt;MACHINE&amp;gt;, where &amp;lt;MACHINE&amp;gt; corresponds to the variable defined on&lt;br /&gt;
        local.conf on previous steps&lt;br /&gt;
    4.4 Paste artifacts downloaded on previously created folder &lt;br /&gt;
&lt;br /&gt;
 5. Execute the test suite&lt;br /&gt;
    &lt;br /&gt;
    5.1 $bitbake &amp;lt;IMAGE_TESTED&amp;gt; -c testimage&lt;br /&gt;
       &#039;&#039;&#039;example bitbake core-image-sato-sdk -c testimage -v&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 6. Verify that all test cases PASSED if not raise bugs properly &lt;br /&gt;
&lt;br /&gt;
 7. Update results to corresponding Testopia Test Run &lt;br /&gt;
    &#039;&#039;&#039;There is a script available to upload results form the log automatically on [[Qa-tools#Testopia_Update|QA-Tools]] and follow this example [[Qa-tools#Update_a_Test_Run_by_ID|Update TR by ID]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Bug Reporting==&lt;br /&gt;
&lt;br /&gt;
For correctly report the bugs follow the already defined steps [[Bug_reporting_and_Information_levels | here]]&lt;br /&gt;
&lt;br /&gt;
= Special Tests =&lt;br /&gt;
&lt;br /&gt;
There are 2 special test that also applied as BSP Components those are:&lt;br /&gt;
  &lt;br /&gt;
== pTest ==&lt;br /&gt;
&lt;br /&gt;
For detailed information about behavior and characteristics check [[Ptest]]&lt;br /&gt;
&lt;br /&gt;
=== Test Process ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1. Download pTest image from autobuilder( you can find core-image-sato-sdk image in pTest directory)&lt;br /&gt;
    * Test are applied on NUC with genericx86-64 &lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT (using legacy boot)&lt;br /&gt;
    Configure the network so it be able to work externally:&lt;br /&gt;
    - Export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command eg&lt;br /&gt;
      $ export http_proxy=http://&amp;lt;my_proxy&amp;gt;:&amp;lt;port&amp;gt;&lt;br /&gt;
    - And check if you have internet connection, typing on terminal:&lt;br /&gt;
      $ wget www.google.com&lt;br /&gt;
&lt;br /&gt;
 3. In command line type&lt;br /&gt;
    $ ptest-runner &amp;gt; ptest.log&lt;br /&gt;
      and wait for it to finish ( about 5 hours)&lt;br /&gt;
      &#039;&#039;&#039;Note:&#039;&#039;&#039; The &amp;quot;script&amp;quot; is already placed on the distro, you just have to type &#039;&#039;&#039;ptest&#039;&#039;&#039;...TAB and the terminal should autocomplete the command.&lt;br /&gt;
      and &amp;gt; &#039;&#039;&#039;ptest.log&#039;&#039;&#039;, in order to save the test results in that file.&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process ===&lt;br /&gt;
&lt;br /&gt;
1. Generate the report of pTests as follows: &lt;br /&gt;
     1.1 Get the log from the DUT.&lt;br /&gt;
     1.2 Go to the [[Ptest/archive]] page and check the previous execution to this release.&lt;br /&gt;
     1.3 Go the the report of the execution and download the log.&lt;br /&gt;
     1.4 Use the [[Qa-tools#Ptest_Parser|ptest-parser]] script to generate the report, this script generates a file called &amp;lt;release&amp;gt;wiki.page.&lt;br /&gt;
     1.5 Create a wiki with the name &#039;&#039;&#039;Ptest_&amp;lt;commit-tested&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
     1.6 Copy the content of the content of &#039;&#039;&#039;&amp;lt;release&amp;gt;wiki.page&#039;&#039;&#039; and paste it on new wiki created.&lt;br /&gt;
     1.7 Upload the log of current execution and update the recent created wiki with the link to the log.&lt;br /&gt;
     1.8 Check the packages that had regression on pass rate [[File:down_rate.png|15px]] and if there is a bug reported update the bug with comments that still present &lt;br /&gt;
         on current commit, if there is no bug created raise a new one.&lt;br /&gt;
     1.9 Update the [[Ptest/archive]] wiki with the info of this new execution.&lt;br /&gt;
&lt;br /&gt;
== Compliance ==&lt;br /&gt;
&lt;br /&gt;
In this section 3 Test suites are executed on a NUC HW with core-image-sato-sdk-generixc86-64 image booted.&lt;br /&gt;
&lt;br /&gt;
*LSB tests&lt;br /&gt;
*POSIX tests&lt;br /&gt;
*LTP tests&lt;br /&gt;
&lt;br /&gt;
=== Test Process  ===&lt;br /&gt;
 1. Download lsb image from autobuilder( same image as in LSB automated testing for genericx86-64-lsb bsp)&lt;br /&gt;
    * we test compliance on NUC with genericx86-64-lsb, core-image-lsb-sdk&lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT&lt;br /&gt;
&lt;br /&gt;
 3. Configure the network so it be able to work externally:&lt;br /&gt;
    * edit /etc/resolv.conf and add the gateway ip_address&lt;br /&gt;
    * add the ip and netmask using &amp;quot;ifconfig&amp;quot; command&lt;br /&gt;
    * add the route using &amp;quot;route add default gw &amp;lt;ip_address&amp;gt;&amp;quot; &lt;br /&gt;
    * export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command&lt;br /&gt;
      : there is a bug and if you make these steps in another order than above, it may be possible not work&lt;br /&gt;
&lt;br /&gt;
  4. Copy &amp;quot;compliance_test.py&amp;quot; script on DUT&lt;br /&gt;
     script can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=cagurida/compliance here]&lt;br /&gt;
&lt;br /&gt;
  5. Make sure that your network connection is working&lt;br /&gt;
&lt;br /&gt;
  6. Run the script like this:&lt;br /&gt;
    * make the script executable: &amp;quot;chmod a+x compliance_local.py&amp;quot;&lt;br /&gt;
    * run in command line the following command &amp;quot;./compliance_test.py &amp;lt;milestone&amp;gt; &amp;lt;date&amp;gt;&amp;quot;&lt;br /&gt;
    * wait until &amp;quot;Configuration done. LSB script must be started from machine.&amp;quot; in command line( about 8-12 hours)&lt;br /&gt;
&lt;br /&gt;
  7. Run &amp;quot;LSB_test.sh&amp;quot; via ssh or manually and wait for it to finish( about a day)&lt;br /&gt;
&lt;br /&gt;
  8. Get the logs from DUT:&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fulllog&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.log&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fail&lt;br /&gt;
    - posix.log (can be found in: /opt/ltp/testcases/open_posix_testsuite)&lt;br /&gt;
      -  the three others are found in /opt/ltp directory, in output, temp, result folders . The logs need to be sent to [[yi.zhao@windriver.com]] specifying the v &lt;br /&gt;
         version and the type of image&lt;br /&gt;
    - in /var/opt/lsb/test/manager/results/x86.../x86....tar.gz (you can find it with auto-complete(tab) easily)&lt;br /&gt;
      -- it has like 18 Mb&lt;br /&gt;
      -- upload this file on drive and send the link to [[hongxu.jia@windriver.com]] and [[mark.hatle@windriver.com]]&lt;br /&gt;
      -- also I&#039;ll fwd an email to see how it looks&lt;br /&gt;
&lt;br /&gt;
  9. Put the tests from Testopia - Runtime test run on passed&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To Be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Add New Tests =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test Approach=&lt;br /&gt;
&lt;br /&gt;
=Test Matrix=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yocto QA Cycle&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;!-- The table can be edited with this tool : http://www.tablesgenerator.com/mediawiki_tables --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! linux-yocto&lt;br /&gt;
! Image-type&lt;br /&gt;
! AUTO&lt;br /&gt;
! MANUAL&lt;br /&gt;
! Compliance&lt;br /&gt;
! pTest&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (x86)&#039;&#039;&#039;&lt;br /&gt;
| Big Core&lt;br /&gt;
| MinwMax 32bit&lt;br /&gt;
| genericx86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| MinwMax 64bit&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NUC&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemux86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemux86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (n-x86)&#039;&#039;&#039;&lt;br /&gt;
| MIPS&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| PPC&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| ARM&lt;br /&gt;
| Beaglebone Black&lt;br /&gt;
| beaglebone&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemuarm&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuarm64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuppc&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meta-Intel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! Image-type&lt;br /&gt;
! Auto&lt;br /&gt;
! Manual&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | meta-intel&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; | Big Core&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 64bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | NUC&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | CherryHill&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Joule&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#ff0000&amp;quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | core2-32&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | meta-intel-quark 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | intel-quark&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Not Tested=&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33334</id>
		<title>BSP Test Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33334"/>
		<updated>2017-11-16T22:03:12Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Bug Reporting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About BSP  =&lt;br /&gt;
&lt;br /&gt;
A Board Support Package (BSP) is the collection of software and data that allows an operating system to run in a specific hardware. It contains the drivers, routines and information that defines how to support a particular hardware device, set of devices, or hardware platform.&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
&lt;br /&gt;
Verify different supported images generated by Yocto Project build system on main AB, manual and automated test are applied in both physical HW and emulated with qemu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Member&#039;&#039;&#039;&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border:0.05pt solid #000000;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Team&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | José Pérez Carranza&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Oscar Lopez Arandas &lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Yi Zaho&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Wind River &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types of Tests &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* Automated test on different platforms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Platforms, type of images and type of tests are showed detailed on BSP Test Matrix. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features tested&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Manual Tests&lt;br /&gt;
** Boot image &lt;br /&gt;
** Install Image &lt;br /&gt;
** Multimedia&lt;br /&gt;
** Graphical interface components &lt;br /&gt;
** System reboot and shutdown recovery and standby &lt;br /&gt;
** X server tests &lt;br /&gt;
** rpm packages &lt;br /&gt;
** File system (reading/writing)&lt;br /&gt;
** Mont / Umont &lt;br /&gt;
** Network&lt;br /&gt;
&lt;br /&gt;
All test cases can be found here &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Automated Tests &lt;br /&gt;
** buildcpio&lt;br /&gt;
** buildgalculator&lt;br /&gt;
** buildlzip&lt;br /&gt;
** connman&lt;br /&gt;
** date&lt;br /&gt;
** df&lt;br /&gt;
** dnf&lt;br /&gt;
** gcc&lt;br /&gt;
** kernelmodule&lt;br /&gt;
** ldd&lt;br /&gt;
** logrotate&lt;br /&gt;
** multilib&lt;br /&gt;
** oe_syslog&lt;br /&gt;
** pam&lt;br /&gt;
** parselogs&lt;br /&gt;
** perl&lt;br /&gt;
** ping&lt;br /&gt;
** ptest&lt;br /&gt;
** python&lt;br /&gt;
** rpm&lt;br /&gt;
** scanelf&lt;br /&gt;
** scp&lt;br /&gt;
** skeletoninit&lt;br /&gt;
** ssh&lt;br /&gt;
** systemd&lt;br /&gt;
** x32lib&lt;br /&gt;
** xorg&lt;br /&gt;
&lt;br /&gt;
full code of this automated test are on poky repo under meta/lib/oeqa/runtime/cases &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy  =&lt;br /&gt;
&lt;br /&gt;
As mentioned below there are 2 types of test Automated an Manual tests, below a description of how those test are applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Manual==&lt;br /&gt;
&lt;br /&gt;
Test cases executed fully manually on real HW and on a qemu instance, these tests are focused on user scenarios using the image and also ensuring that graphical interface and multimedia are properly working on the image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automated Tests==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test cases execute automatically used testimage suite as well as 2 special test called pTest and Compliance, these tests are written in Python using oeqa framework and check different content and packages behavior of the booted image by a series of commands executed by a ssh communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
 1. Prepare the image and device under test&lt;br /&gt;
 &lt;br /&gt;
    1.1 Download Artifacts&lt;br /&gt;
       there are 2 links available from Public AutoBuilder to download images &lt;br /&gt;
          http://autobuilder.yoctoproject.org/pub/releases/&lt;br /&gt;
          https://autobuilder.yocto.io/pub/releases/&lt;br /&gt;
     &lt;br /&gt;
       Artifacts to be downloaded are: &lt;br /&gt;
    &lt;br /&gt;
       &#039;&#039;&#039;Real HW&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.hddimg&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic.bmap&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-genericx86.*&#039;&#039;&#039;&lt;br /&gt;
       &lt;br /&gt;
       &#039;&#039;&#039;QEMU&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/qemu/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;BZIMAGE&amp;gt;.bin&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.ext4&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.qemuboot.conf&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-qemux86.*&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
    1.2 For real hardware devices:&lt;br /&gt;
       - Write the image to a bootable media (USB key, SD Card, etc.) using the dd command:&lt;br /&gt;
           &#039;&#039;&#039;$ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic of=TARGET_DEVICE&#039;&#039;&#039;&lt;br /&gt;
       - Attach the bootable device to the DUT&lt;br /&gt;
       - Turn the DUT on, and use its boot options to select the correct media for booting&lt;br /&gt;
       - Ensure the device has a network connection and a valid IP address&lt;br /&gt;
&lt;br /&gt;
 2. For Manual Test Cases:&lt;br /&gt;
   &lt;br /&gt;
    2.1 - Go to the proper Test Run assigned on the execution and start executing test cases  &lt;br /&gt;
&lt;br /&gt;
 3. For automated Test Cases:&lt;br /&gt;
    &lt;br /&gt;
    3.1 Clone poky repo $git clone git://git.yoctoproject.org/poky&lt;br /&gt;
    3.2 $cd poky &lt;br /&gt;
    3.3 Checkout to the commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
    3.4 &#039;&#039;&#039;If testing meta-intel&#039;&#039;&#039;, clone the layer repo inside poky $git clone git://git.yoctoproject.org/meta-intel&lt;br /&gt;
        3.4.1 $cd meta-intel&lt;br /&gt;
        3.4.2 Checkout to the meta-intel commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
        3.4.3 Return to the poky root path $cd ..&lt;br /&gt;
    3.5 $source oe-init-build-env&lt;br /&gt;
    3.6 &#039;&#039;&#039;If testing meta-intel&#039;&#039;&#039;, add the layer to conf/bblayers.conf. It may be done with:&lt;br /&gt;
        $bitbake-layers add-layer &amp;quot;../meta-intel&amp;quot;&lt;br /&gt;
    3.7 For real HW edit local.conf. PATH: ~/poky/build/conf, at the end of the file adding: &lt;br /&gt;
        &#039;&#039;&#039;Install / Boot the image on the DUT and check the IP&#039;&#039;&#039;&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        TEST_TARGET = &amp;quot;simpleremote&amp;quot;&lt;br /&gt;
        TEST_SERVER_IP = &amp;quot;HOST ip&amp;quot; --&amp;gt; IP of the machine being used to launch tests&lt;br /&gt;
        TEST_TARGET_IP = &amp;quot;DUT ip&amp;quot;  --&amp;gt; IP of the device under test&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    3.8 For QEMU edit local.conf. PATH: ~/poky/build/conf, at the end of the file adding:&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    &#039;&#039;&#039;For releases before 2.3 also add&#039;&#039;&#039;&lt;br /&gt;
    TEST_SUITES = &amp;quot; auto&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Remember to add the machine to local.conf, for example:&#039;&#039;&#039;&lt;br /&gt;
    If genericx86 is needed, MACHINE ?= &amp;quot;genericx86&amp;quot;&lt;br /&gt;
    If qemux86 is needed, MACHINE ?= &amp;quot;qemux86&amp;quot;&lt;br /&gt;
    If intel-corei7-64 is needed, MACHINE = &amp;quot;intel-corei7-64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 4. Prepare the environment to execute test suite &lt;br /&gt;
    &lt;br /&gt;
    4.1 $bitbake rpm busybox run-postinsts&lt;br /&gt;
    4.2 $bitbake package-index&lt;br /&gt;
    4.3 Ensure that a folder is created, otherwise create it, under&lt;br /&gt;
        tmp/deploy/images/&amp;lt;MACHINE&amp;gt;, where &amp;lt;MACHINE&amp;gt; corresponds to the variable defined on&lt;br /&gt;
        local.conf on previous steps&lt;br /&gt;
    4.4 Paste artifacts downloaded on previously created folder &lt;br /&gt;
&lt;br /&gt;
 5. Execute the test suite&lt;br /&gt;
    &lt;br /&gt;
    5.1 $bitbake &amp;lt;IMAGE_TESTED&amp;gt; -c testimage&lt;br /&gt;
       &#039;&#039;&#039;example bitbake core-image-sato-sdk -c testimage -v&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 6. Verify that all test cases PASSED if not raise bugs properly &lt;br /&gt;
&lt;br /&gt;
 7. Update results to corresponding Testopia Test Run &lt;br /&gt;
    &#039;&#039;&#039;There is a script available to upload results form the log automatically on [[Qa-tools#Testopia_Update|QA-Tools]] and follow this example [[Qa-tools#Update_a_Test_Run_by_ID|Update TR by ID]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Bug Reporting==&lt;br /&gt;
&lt;br /&gt;
For correctly report the bugs follow the already defined steps [[Bug_reporting_and_Information_levels | here]]&lt;br /&gt;
&lt;br /&gt;
= Special Tests =&lt;br /&gt;
&lt;br /&gt;
There are 2 special test that also applied as BSP Components those are:&lt;br /&gt;
  &lt;br /&gt;
== pTest ==&lt;br /&gt;
&lt;br /&gt;
For detailed information about behavior and characteristics check [[Ptest]]&lt;br /&gt;
&lt;br /&gt;
=== Test Process ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1. Download pTest image from autobuilder( you can find core-image-sato-sdk image in pTest directory)&lt;br /&gt;
    * Test are applied on NUC with genericx86-64 &lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT (using legacy boot)&lt;br /&gt;
    Configure the network so it be able to work externally:&lt;br /&gt;
    - Export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command eg&lt;br /&gt;
      $ export http_proxy=http://&amp;lt;my_proxy&amp;gt;:&amp;lt;port&amp;gt;&lt;br /&gt;
    - And check if you have internet connection, typing on terminal:&lt;br /&gt;
      $ wget www.google.com&lt;br /&gt;
&lt;br /&gt;
 3. In command line type&lt;br /&gt;
    $ ptest-runner &amp;gt; ptest.log&lt;br /&gt;
      and wait for it to finish ( about 5 hours)&lt;br /&gt;
      &#039;&#039;&#039;Note:&#039;&#039;&#039; The &amp;quot;script&amp;quot; is already placed on the distro, you just have to type &#039;&#039;&#039;ptest&#039;&#039;&#039;...TAB and the terminal should autocomplete the command.&lt;br /&gt;
      and &amp;gt; &#039;&#039;&#039;ptest.log&#039;&#039;&#039;, in order to save the test results in that file.&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process ===&lt;br /&gt;
&lt;br /&gt;
1. Generate the report of pTests as follows: &lt;br /&gt;
     1.1 Get the log from the DUT.&lt;br /&gt;
     1.2 Go to the [[Ptest/archive]] page and check the previous execution to this release.&lt;br /&gt;
     1.3 Go the the report of the execution and download the log.&lt;br /&gt;
     1.4 Use the [[Qa-tools#Ptest_Parser|ptest-parser]] script to generate the report, this script generates a file called &amp;lt;release&amp;gt;wiki.page.&lt;br /&gt;
     1.5 Create a wiki with the name &#039;&#039;&#039;Ptest &amp;lt;commit&amp;gt;_&amp;lt;release-tested&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
     1.6 Copy the content of the content of &#039;&#039;&#039;&amp;lt;release&amp;gt;wiki.page&#039;&#039;&#039; and paste it on new wiki created.&lt;br /&gt;
     1.7 Upload the log of current execution and update the recent created wiki with the link to the log.&lt;br /&gt;
     1.8 Check the packages that had regression on pass rate [[File:down_rate.png|15px]] and if there is a bug reported update the bug with comments that still present &lt;br /&gt;
         on current commit, if there is no bug created raise a new one.&lt;br /&gt;
     1.9 Update the [[Ptest/archive]] wiki with the info of this new execution.&lt;br /&gt;
&lt;br /&gt;
== Compliance ==&lt;br /&gt;
&lt;br /&gt;
In this section 3 Test suites are executed on a NUC HW with core-image-sato-sdk-generixc86-64 image booted.&lt;br /&gt;
&lt;br /&gt;
*LSB tests&lt;br /&gt;
*POSIX tests&lt;br /&gt;
*LTP tests&lt;br /&gt;
&lt;br /&gt;
=== Test Process  ===&lt;br /&gt;
 1. Download lsb image from autobuilder( same image as in LSB automated testing for genericx86-64-lsb bsp)&lt;br /&gt;
    * we test compliance on NUC with genericx86-64-lsb, core-image-lsb-sdk&lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT&lt;br /&gt;
&lt;br /&gt;
 3. Configure the network so it be able to work externally:&lt;br /&gt;
    * edit /etc/resolv.conf and add the gateway ip_address&lt;br /&gt;
    * add the ip and netmask using &amp;quot;ifconfig&amp;quot; command&lt;br /&gt;
    * add the route using &amp;quot;route add default gw &amp;lt;ip_address&amp;gt;&amp;quot; &lt;br /&gt;
    * export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command&lt;br /&gt;
      : there is a bug and if you make these steps in another order than above, it may be possible not work&lt;br /&gt;
&lt;br /&gt;
  4. Copy &amp;quot;compliance_test.py&amp;quot; script on DUT&lt;br /&gt;
     script can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=cagurida/compliance here]&lt;br /&gt;
&lt;br /&gt;
  5. Make sure that your network connection is working&lt;br /&gt;
&lt;br /&gt;
  6. Run the script like this:&lt;br /&gt;
    * make the script executable: &amp;quot;chmod a+x compliance_local.py&amp;quot;&lt;br /&gt;
    * run in command line the following command &amp;quot;./compliance_test.py &amp;lt;milestone&amp;gt; &amp;lt;date&amp;gt;&amp;quot;&lt;br /&gt;
    * wait until &amp;quot;Configuration done. LSB script must be started from machine.&amp;quot; in command line( about 8-12 hours)&lt;br /&gt;
&lt;br /&gt;
  7. Run &amp;quot;LSB_test.sh&amp;quot; via ssh or manually and wait for it to finish( about a day)&lt;br /&gt;
&lt;br /&gt;
  8. Get the logs from DUT:&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fulllog&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.log&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fail&lt;br /&gt;
    - posix.log (can be found in: /opt/ltp/testcases/open_posix_testsuite)&lt;br /&gt;
      -  the three others are found in /opt/ltp directory, in output, temp, result folders . The logs need to be sent to [[yi.zhao@windriver.com]] specifying the v &lt;br /&gt;
         version and the type of image&lt;br /&gt;
    - in /var/opt/lsb/test/manager/results/x86.../x86....tar.gz (you can find it with auto-complete(tab) easily)&lt;br /&gt;
      -- it has like 18 Mb&lt;br /&gt;
      -- upload this file on drive and send the link to [[hongxu.jia@windriver.com]] and [[mark.hatle@windriver.com]]&lt;br /&gt;
      -- also I&#039;ll fwd an email to see how it looks&lt;br /&gt;
&lt;br /&gt;
  9. Put the tests from Testopia - Runtime test run on passed&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To Be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Add New Tests =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test Approach=&lt;br /&gt;
&lt;br /&gt;
=Test Matrix=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yocto QA Cycle&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;!-- The table can be edited with this tool : http://www.tablesgenerator.com/mediawiki_tables --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! linux-yocto&lt;br /&gt;
! Image-type&lt;br /&gt;
! AUTO&lt;br /&gt;
! MANUAL&lt;br /&gt;
! Compliance&lt;br /&gt;
! pTest&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (x86)&#039;&#039;&#039;&lt;br /&gt;
| Big Core&lt;br /&gt;
| MinwMax 32bit&lt;br /&gt;
| genericx86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| MinwMax 64bit&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NUC&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemux86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemux86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (n-x86)&#039;&#039;&#039;&lt;br /&gt;
| MIPS&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| PPC&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| ARM&lt;br /&gt;
| Beaglebone Black&lt;br /&gt;
| beaglebone&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemuarm&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuarm64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuppc&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meta-Intel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! Image-type&lt;br /&gt;
! Auto&lt;br /&gt;
! Manual&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | meta-intel&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; | Big Core&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 64bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | NUC&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | CherryHill&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Joule&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#ff0000&amp;quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | core2-32&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | meta-intel-quark 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | intel-quark&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Not Tested=&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33333</id>
		<title>BSP Test Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33333"/>
		<updated>2017-11-16T21:14:51Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Test Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About BSP  =&lt;br /&gt;
&lt;br /&gt;
A Board Support Package (BSP) is the collection of software and data that allows an operating system to run in a specific hardware. It contains the drivers, routines and information that defines how to support a particular hardware device, set of devices, or hardware platform.&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
&lt;br /&gt;
Verify different supported images generated by Yocto Project build system on main AB, manual and automated test are applied in both physical HW and emulated with qemu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Member&#039;&#039;&#039;&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border:0.05pt solid #000000;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Team&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | José Pérez Carranza&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Oscar Lopez Arandas &lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Yi Zaho&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Wind River &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types of Tests &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* Automated test on different platforms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Platforms, type of images and type of tests are showed detailed on BSP Test Matrix. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features tested&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Manual Tests&lt;br /&gt;
** Boot image &lt;br /&gt;
** Install Image &lt;br /&gt;
** Multimedia&lt;br /&gt;
** Graphical interface components &lt;br /&gt;
** System reboot and shutdown recovery and standby &lt;br /&gt;
** X server tests &lt;br /&gt;
** rpm packages &lt;br /&gt;
** File system (reading/writing)&lt;br /&gt;
** Mont / Umont &lt;br /&gt;
** Network&lt;br /&gt;
&lt;br /&gt;
All test cases can be found here &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Automated Tests &lt;br /&gt;
** buildcpio&lt;br /&gt;
** buildgalculator&lt;br /&gt;
** buildlzip&lt;br /&gt;
** connman&lt;br /&gt;
** date&lt;br /&gt;
** df&lt;br /&gt;
** dnf&lt;br /&gt;
** gcc&lt;br /&gt;
** kernelmodule&lt;br /&gt;
** ldd&lt;br /&gt;
** logrotate&lt;br /&gt;
** multilib&lt;br /&gt;
** oe_syslog&lt;br /&gt;
** pam&lt;br /&gt;
** parselogs&lt;br /&gt;
** perl&lt;br /&gt;
** ping&lt;br /&gt;
** ptest&lt;br /&gt;
** python&lt;br /&gt;
** rpm&lt;br /&gt;
** scanelf&lt;br /&gt;
** scp&lt;br /&gt;
** skeletoninit&lt;br /&gt;
** ssh&lt;br /&gt;
** systemd&lt;br /&gt;
** x32lib&lt;br /&gt;
** xorg&lt;br /&gt;
&lt;br /&gt;
full code of this automated test are on poky repo under meta/lib/oeqa/runtime/cases &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy  =&lt;br /&gt;
&lt;br /&gt;
As mentioned below there are 2 types of test Automated an Manual tests, below a description of how those test are applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Manual==&lt;br /&gt;
&lt;br /&gt;
Test cases executed fully manually on real HW and on a qemu instance, these tests are focused on user scenarios using the image and also ensuring that graphical interface and multimedia are properly working on the image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automated Tests==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test cases execute automatically used testimage suite as well as 2 special test called pTest and Compliance, these tests are written in Python using oeqa framework and check different content and packages behavior of the booted image by a series of commands executed by a ssh communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
 1. Prepare the image and device under test&lt;br /&gt;
 &lt;br /&gt;
    1.1 Download Artifacts&lt;br /&gt;
       there are 2 links available from Public AutoBuilder to download images &lt;br /&gt;
          http://autobuilder.yoctoproject.org/pub/releases/&lt;br /&gt;
          https://autobuilder.yocto.io/pub/releases/&lt;br /&gt;
     &lt;br /&gt;
       Artifacts to be downloaded are: &lt;br /&gt;
    &lt;br /&gt;
       &#039;&#039;&#039;Real HW&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.hddimg&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic.bmap&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-genericx86.*&#039;&#039;&#039;&lt;br /&gt;
       &lt;br /&gt;
       &#039;&#039;&#039;QEMU&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/qemu/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;BZIMAGE&amp;gt;.bin&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.ext4&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.qemuboot.conf&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-qemux86.*&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
    1.2 For real hardware devices:&lt;br /&gt;
       - Write the image to a bootable media (USB key, SD Card, etc.) using the dd command:&lt;br /&gt;
           &#039;&#039;&#039;$ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic of=TARGET_DEVICE&#039;&#039;&#039;&lt;br /&gt;
       - Attach the bootable device to the DUT&lt;br /&gt;
       - Turn the DUT on, and use its boot options to select the correct media for booting&lt;br /&gt;
       - Ensure the device has a network connection and a valid IP address&lt;br /&gt;
&lt;br /&gt;
 2. For Manual Test Cases:&lt;br /&gt;
   &lt;br /&gt;
    2.1 - Go to the proper Test Run assigned on the execution and start executing test cases  &lt;br /&gt;
&lt;br /&gt;
 3. For automated Test Cases:&lt;br /&gt;
    &lt;br /&gt;
    3.1 Clone poky repo $git clone git://git.yoctoproject.org/poky&lt;br /&gt;
    3.2 $cd poky &lt;br /&gt;
    3.3 Checkout to the commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
    3.4 &#039;&#039;&#039;If testing meta-intel&#039;&#039;&#039;, clone the layer repo inside poky $git clone git://git.yoctoproject.org/meta-intel&lt;br /&gt;
        3.4.1 $cd meta-intel&lt;br /&gt;
        3.4.2 Checkout to the meta-intel commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
        3.4.3 Return to the poky root path $cd ..&lt;br /&gt;
    3.5 $source oe-init-build-env&lt;br /&gt;
    3.6 &#039;&#039;&#039;If testing meta-intel&#039;&#039;&#039;, add the layer to conf/bblayers.conf. It may be done with:&lt;br /&gt;
        $bitbake-layers add-layer &amp;quot;../meta-intel&amp;quot;&lt;br /&gt;
    3.7 For real HW edit local.conf. PATH: ~/poky/build/conf, at the end of the file adding: &lt;br /&gt;
        &#039;&#039;&#039;Install / Boot the image on the DUT and check the IP&#039;&#039;&#039;&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        TEST_TARGET = &amp;quot;simpleremote&amp;quot;&lt;br /&gt;
        TEST_SERVER_IP = &amp;quot;HOST ip&amp;quot; --&amp;gt; IP of the machine being used to launch tests&lt;br /&gt;
        TEST_TARGET_IP = &amp;quot;DUT ip&amp;quot;  --&amp;gt; IP of the device under test&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    3.8 For QEMU edit local.conf. PATH: ~/poky/build/conf, at the end of the file adding:&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    &#039;&#039;&#039;For releases before 2.3 also add&#039;&#039;&#039;&lt;br /&gt;
    TEST_SUITES = &amp;quot; auto&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Remember to add the machine to local.conf, for example:&#039;&#039;&#039;&lt;br /&gt;
    If genericx86 is needed, MACHINE ?= &amp;quot;genericx86&amp;quot;&lt;br /&gt;
    If qemux86 is needed, MACHINE ?= &amp;quot;qemux86&amp;quot;&lt;br /&gt;
    If intel-corei7-64 is needed, MACHINE = &amp;quot;intel-corei7-64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 4. Prepare the environment to execute test suite &lt;br /&gt;
    &lt;br /&gt;
    4.1 $bitbake rpm busybox run-postinsts&lt;br /&gt;
    4.2 $bitbake package-index&lt;br /&gt;
    4.3 Ensure that a folder is created, otherwise create it, under&lt;br /&gt;
        tmp/deploy/images/&amp;lt;MACHINE&amp;gt;, where &amp;lt;MACHINE&amp;gt; corresponds to the variable defined on&lt;br /&gt;
        local.conf on previous steps&lt;br /&gt;
    4.4 Paste artifacts downloaded on previously created folder &lt;br /&gt;
&lt;br /&gt;
 5. Execute the test suite&lt;br /&gt;
    &lt;br /&gt;
    5.1 $bitbake &amp;lt;IMAGE_TESTED&amp;gt; -c testimage&lt;br /&gt;
       &#039;&#039;&#039;example bitbake core-image-sato-sdk -c testimage -v&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 6. Verify that all test cases PASSED if not raise bugs properly &lt;br /&gt;
&lt;br /&gt;
 7. Update results to corresponding Testopia Test Run &lt;br /&gt;
    &#039;&#039;&#039;There is a script available to upload results form the log automatically on [[Qa-tools#Testopia_Update|QA-Tools]] and follow this example [[Qa-tools#Update_a_Test_Run_by_ID|Update TR by ID]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Bug Reporting==&lt;br /&gt;
&lt;br /&gt;
For correctly report the bugs follow the already defined steps here&lt;br /&gt;
&lt;br /&gt;
= Special Tests =&lt;br /&gt;
&lt;br /&gt;
There are 2 special test that also applied as BSP Components those are:&lt;br /&gt;
  &lt;br /&gt;
== pTest ==&lt;br /&gt;
&lt;br /&gt;
For detailed information about behavior and characteristics check [[Ptest]]&lt;br /&gt;
&lt;br /&gt;
=== Test Process ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1. Download pTest image from autobuilder( you can find core-image-sato-sdk image in pTest directory)&lt;br /&gt;
    * Test are applied on NUC with genericx86-64 &lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT (using legacy boot)&lt;br /&gt;
    Configure the network so it be able to work externally:&lt;br /&gt;
    - Export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command eg&lt;br /&gt;
      $ export http_proxy=http://&amp;lt;my_proxy&amp;gt;:&amp;lt;port&amp;gt;&lt;br /&gt;
    - And check if you have internet connection, typing on terminal:&lt;br /&gt;
      $ wget www.google.com&lt;br /&gt;
&lt;br /&gt;
 3. In command line type&lt;br /&gt;
    $ ptest-runner &amp;gt; ptest.log&lt;br /&gt;
      and wait for it to finish ( about 5 hours)&lt;br /&gt;
      &#039;&#039;&#039;Note:&#039;&#039;&#039; The &amp;quot;script&amp;quot; is already placed on the distro, you just have to type &#039;&#039;&#039;ptest&#039;&#039;&#039;...TAB and the terminal should autocomplete the command.&lt;br /&gt;
      and &amp;gt; &#039;&#039;&#039;ptest.log&#039;&#039;&#039;, in order to save the test results in that file.&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process ===&lt;br /&gt;
&lt;br /&gt;
1. Generate the report of pTests as follows: &lt;br /&gt;
     1.1 Get the log from the DUT.&lt;br /&gt;
     1.2 Go to the [[Ptest/archive]] page and check the previous execution to this release.&lt;br /&gt;
     1.3 Go the the report of the execution and download the log.&lt;br /&gt;
     1.4 Use the [[Qa-tools#Ptest_Parser|ptest-parser]] script to generate the report, this script generates a file called &amp;lt;release&amp;gt;wiki.page.&lt;br /&gt;
     1.5 Create a wiki with the name &#039;&#039;&#039;Ptest &amp;lt;commit&amp;gt;_&amp;lt;release-tested&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
     1.6 Copy the content of the content of &#039;&#039;&#039;&amp;lt;release&amp;gt;wiki.page&#039;&#039;&#039; and paste it on new wiki created.&lt;br /&gt;
     1.7 Upload the log of current execution and update the recent created wiki with the link to the log.&lt;br /&gt;
     1.8 Check the packages that had regression on pass rate [[File:down_rate.png|15px]] and if there is a bug reported update the bug with comments that still present &lt;br /&gt;
         on current commit, if there is no bug created raise a new one.&lt;br /&gt;
     1.9 Update the [[Ptest/archive]] wiki with the info of this new execution.&lt;br /&gt;
&lt;br /&gt;
== Compliance ==&lt;br /&gt;
&lt;br /&gt;
In this section 3 Test suites are executed on a NUC HW with core-image-sato-sdk-generixc86-64 image booted.&lt;br /&gt;
&lt;br /&gt;
*LSB tests&lt;br /&gt;
*POSIX tests&lt;br /&gt;
*LTP tests&lt;br /&gt;
&lt;br /&gt;
=== Test Process  ===&lt;br /&gt;
 1. Download lsb image from autobuilder( same image as in LSB automated testing for genericx86-64-lsb bsp)&lt;br /&gt;
    * we test compliance on NUC with genericx86-64-lsb, core-image-lsb-sdk&lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT&lt;br /&gt;
&lt;br /&gt;
 3. Configure the network so it be able to work externally:&lt;br /&gt;
    * edit /etc/resolv.conf and add the gateway ip_address&lt;br /&gt;
    * add the ip and netmask using &amp;quot;ifconfig&amp;quot; command&lt;br /&gt;
    * add the route using &amp;quot;route add default gw &amp;lt;ip_address&amp;gt;&amp;quot; &lt;br /&gt;
    * export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command&lt;br /&gt;
      : there is a bug and if you make these steps in another order than above, it may be possible not work&lt;br /&gt;
&lt;br /&gt;
  4. Copy &amp;quot;compliance_test.py&amp;quot; script on DUT&lt;br /&gt;
     script can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=cagurida/compliance here]&lt;br /&gt;
&lt;br /&gt;
  5. Make sure that your network connection is working&lt;br /&gt;
&lt;br /&gt;
  6. Run the script like this:&lt;br /&gt;
    * make the script executable: &amp;quot;chmod a+x compliance_local.py&amp;quot;&lt;br /&gt;
    * run in command line the following command &amp;quot;./compliance_test.py &amp;lt;milestone&amp;gt; &amp;lt;date&amp;gt;&amp;quot;&lt;br /&gt;
    * wait until &amp;quot;Configuration done. LSB script must be started from machine.&amp;quot; in command line( about 8-12 hours)&lt;br /&gt;
&lt;br /&gt;
  7. Run &amp;quot;LSB_test.sh&amp;quot; via ssh or manually and wait for it to finish( about a day)&lt;br /&gt;
&lt;br /&gt;
  8. Get the logs from DUT:&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fulllog&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.log&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fail&lt;br /&gt;
    - posix.log (can be found in: /opt/ltp/testcases/open_posix_testsuite)&lt;br /&gt;
      -  the three others are found in /opt/ltp directory, in output, temp, result folders . The logs need to be sent to [[yi.zhao@windriver.com]] specifying the v &lt;br /&gt;
         version and the type of image&lt;br /&gt;
    - in /var/opt/lsb/test/manager/results/x86.../x86....tar.gz (you can find it with auto-complete(tab) easily)&lt;br /&gt;
      -- it has like 18 Mb&lt;br /&gt;
      -- upload this file on drive and send the link to [[hongxu.jia@windriver.com]] and [[mark.hatle@windriver.com]]&lt;br /&gt;
      -- also I&#039;ll fwd an email to see how it looks&lt;br /&gt;
&lt;br /&gt;
  9. Put the tests from Testopia - Runtime test run on passed&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To Be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Add New Tests =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test Approach=&lt;br /&gt;
&lt;br /&gt;
=Test Matrix=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yocto QA Cycle&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;!-- The table can be edited with this tool : http://www.tablesgenerator.com/mediawiki_tables --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! linux-yocto&lt;br /&gt;
! Image-type&lt;br /&gt;
! AUTO&lt;br /&gt;
! MANUAL&lt;br /&gt;
! Compliance&lt;br /&gt;
! pTest&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (x86)&#039;&#039;&#039;&lt;br /&gt;
| Big Core&lt;br /&gt;
| MinwMax 32bit&lt;br /&gt;
| genericx86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| MinwMax 64bit&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NUC&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemux86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemux86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (n-x86)&#039;&#039;&#039;&lt;br /&gt;
| MIPS&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| PPC&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| ARM&lt;br /&gt;
| Beaglebone Black&lt;br /&gt;
| beaglebone&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemuarm&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuarm64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuppc&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meta-Intel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! Image-type&lt;br /&gt;
! Auto&lt;br /&gt;
! Manual&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | meta-intel&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; | Big Core&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 64bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | NUC&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | CherryHill&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Joule&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#ff0000&amp;quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | core2-32&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | meta-intel-quark 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | intel-quark&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Not Tested=&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33243</id>
		<title>BSP Test Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33243"/>
		<updated>2017-11-14T21:36:38Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Test Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About BSP  =&lt;br /&gt;
&lt;br /&gt;
A Board Support Package (BSP) is the collection of software and data that allows an operating system to run in a specific hardware. It contains the drivers, routines and information that defines how to support a particular hardware device, set of devices, or hardware platform.&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
&lt;br /&gt;
Verify different supported images generated by Yocto Project build system on main AB, manual and automated test are applied in both physical HW and emulated with qemu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Member&#039;&#039;&#039;&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border:0.05pt solid #000000;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Team&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | José Pérez Carranza&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Oscar Lopez Arandas &lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Yi Zaho&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Wind River &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types of Tests &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* Automated test on different platforms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Platforms, type of images and type of tests are showed detailed on BSP Test Matrix. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features tested&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Manual Tests&lt;br /&gt;
** Boot image &lt;br /&gt;
** Install Image &lt;br /&gt;
** Multimedia&lt;br /&gt;
** Graphical interface components &lt;br /&gt;
** System reboot and shutdown recovery and standby &lt;br /&gt;
** X server tests &lt;br /&gt;
** rpm packages &lt;br /&gt;
** File system (reading/writing)&lt;br /&gt;
** Mont / Umont &lt;br /&gt;
** Network&lt;br /&gt;
&lt;br /&gt;
All test cases can be found here &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Automated Tests &lt;br /&gt;
** buildcpio&lt;br /&gt;
** buildgalculator&lt;br /&gt;
** buildlzip&lt;br /&gt;
** connman&lt;br /&gt;
** date&lt;br /&gt;
** df&lt;br /&gt;
** dnf&lt;br /&gt;
** gcc&lt;br /&gt;
** kernelmodule&lt;br /&gt;
** ldd&lt;br /&gt;
** logrotate&lt;br /&gt;
** multilib&lt;br /&gt;
** oe_syslog&lt;br /&gt;
** pam&lt;br /&gt;
** parselogs&lt;br /&gt;
** perl&lt;br /&gt;
** ping&lt;br /&gt;
** ptest&lt;br /&gt;
** python&lt;br /&gt;
** rpm&lt;br /&gt;
** scanelf&lt;br /&gt;
** scp&lt;br /&gt;
** skeletoninit&lt;br /&gt;
** ssh&lt;br /&gt;
** systemd&lt;br /&gt;
** x32lib&lt;br /&gt;
** xorg&lt;br /&gt;
&lt;br /&gt;
full code of this automated test are on poky repo under meta/lib/oeqa/runtime/cases &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy  =&lt;br /&gt;
&lt;br /&gt;
As mentioned below there are 2 types of test Automated an Manual tests, below a description of how those test are applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Manual==&lt;br /&gt;
&lt;br /&gt;
Test cases executed fully manually on real HW and on a qemu instance, these tests are focused on user scenarios using the image and also ensuring that graphical interface and multimedia are properly working on the image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automated Tests==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test cases execute automatically used testimage suite as well as 2 special test called pTest and Compliance, these tests are written in Python using oeqa framework and check different content and packages behavior of the booted image by a series of commands executed by a ssh communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
 1. Prepare the image and device under test&lt;br /&gt;
 &lt;br /&gt;
    1.1 Download Artifacts&lt;br /&gt;
       there are 2 links available from Public AutoBuilder to download images &lt;br /&gt;
          http://autobuilder.yoctoproject.org/pub/releases/&lt;br /&gt;
          https://autobuilder.yocto.io/pub/releases/&lt;br /&gt;
     &lt;br /&gt;
       Artifacts to be downloaded are: &lt;br /&gt;
    &lt;br /&gt;
       &#039;&#039;&#039;Real HW&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.hddimg&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic.bmap&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-genericx86.*&#039;&#039;&#039;&lt;br /&gt;
       &lt;br /&gt;
       &#039;&#039;&#039;QEMU&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/qemu/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;BZIMAGE&amp;gt;.bin&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.ext4&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.qemuboot.conf&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-qemux86.*&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
    1.2 For real hardware devices:&lt;br /&gt;
       - Write the image to a bootable media (USB key, SD Card, etc.) using the dd command:&lt;br /&gt;
           &#039;&#039;&#039;$ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic of=TARGET_DEVICE&#039;&#039;&#039;&lt;br /&gt;
       - Attach the bootable device to the DUT&lt;br /&gt;
       - Turn the DUT on, and use its boot options to select the correct media for booting&lt;br /&gt;
       - Ensure the device has a network connection and a valid IP address&lt;br /&gt;
&lt;br /&gt;
 2. For Manual Test Cases:&lt;br /&gt;
   &lt;br /&gt;
    2.1 - Go to the proper Test Run assigned on the execution and start executing test cases  &lt;br /&gt;
&lt;br /&gt;
 3. For automated Test Cases:&lt;br /&gt;
    &lt;br /&gt;
    3.1 Clone poky repo $git clone git://git.yoctoproject.org/poky&amp;quot;&lt;br /&gt;
    3.2 $cd poky &lt;br /&gt;
    3.3 Checkout to the commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
    3.4 $source oe-init-build-env&lt;br /&gt;
    3.5 For real HW edit local.conf. PATH: ~/poky/build/conf, at the en of the file adding: &lt;br /&gt;
        &#039;&#039;&#039;Install / Boot the image on the DUT and check the IP&#039;&#039;&#039;&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        TEST_TARGET = &amp;quot;simpleremote&amp;quot;&lt;br /&gt;
        TEST_SERVER_IP = &amp;quot;HOST ip&amp;quot; --&amp;gt; IP of the machine being used to launch tests&lt;br /&gt;
        TEST_TARGET_IP = &amp;quot;DUT ip&amp;quot;  --&amp;gt; IP of the device under test&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    3.6 For real QEMU edit local.conf. PATH: ~/poky/build/conf, at the en of the file adding:&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    &#039;&#039;&#039;For releases before 2.3 also add&#039;&#039;&#039;&lt;br /&gt;
    TEST_SUITES = &amp;quot; auto&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Remember to add the machine to local.conf for example:&#039;&#039;&#039;&lt;br /&gt;
    if genericx86 is needed, MACHINE ?= &amp;quot;genericx86&lt;br /&gt;
    if qemux86 is needed, MACHINE ?= &amp;quot;qemux86&lt;br /&gt;
&lt;br /&gt;
 4. Prepare the environment to execute test suite &lt;br /&gt;
    &lt;br /&gt;
    4.1 $bitbake rpm busybox run-postinsts&lt;br /&gt;
    4.2 $bitbake package-index&lt;br /&gt;
    4.3 Ensure that a folder is created, otherwise create it, under&lt;br /&gt;
        tmp/deploy/images/&amp;lt;MACHINE&amp;gt;, where &amp;lt;MACHINE&amp;gt; corresponds to the variable defined on&lt;br /&gt;
        local.conf on previous steps&lt;br /&gt;
    4.4 Paste artifacts downloaded on previously created folder &lt;br /&gt;
&lt;br /&gt;
 5. Execute the test suite&lt;br /&gt;
    &lt;br /&gt;
    5.1 $bitbake &amp;lt;IMAGE_TESTED&amp;gt; -c testimage&lt;br /&gt;
       &#039;&#039;&#039;example bitbake core-image-sato-sdk -c testimage -v&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 6. Verify that all test cases PASSED if not raise bugs properly &lt;br /&gt;
&lt;br /&gt;
 7. Update results to corresponding Testopia Test Run &lt;br /&gt;
    &#039;&#039;&#039;There is a script available to upload results form the log automatically on [[Qa-tools#Testopia_Update|QA-Tools]] and follow this example [[Qa-tools#Update_a_Test_Run_by_ID|Update TR by ID]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Bug Reporting==&lt;br /&gt;
&lt;br /&gt;
For correctly report the bugs follow the already defined steps here&lt;br /&gt;
&lt;br /&gt;
= Special Tests =&lt;br /&gt;
&lt;br /&gt;
There are 2 special test that also applied as BSP Components those are:&lt;br /&gt;
  &lt;br /&gt;
== pTest ==&lt;br /&gt;
&lt;br /&gt;
For detailed information about behavior and characteristics check [[Ptest]]&lt;br /&gt;
&lt;br /&gt;
=== Test Process ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1. Download pTest image from autobuilder( you can find core-image-sato-sdk image in pTest directory)&lt;br /&gt;
    * Test are applied on NUC with genericx86-64 &lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT (using legacy boot)&lt;br /&gt;
    Configure the network so it be able to work externally:&lt;br /&gt;
    - Export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command eg&lt;br /&gt;
      $ export http_proxy=http://&amp;lt;my_proxy&amp;gt;:&amp;lt;port&amp;gt;&lt;br /&gt;
    - And check if you have internet connection, typing on terminal:&lt;br /&gt;
      $ wget www.google.com&lt;br /&gt;
&lt;br /&gt;
 3. In command line type&lt;br /&gt;
    $ ptest-runner &amp;gt; ptest.log&lt;br /&gt;
      and wait for it to finish ( about 5 hours)&lt;br /&gt;
      &#039;&#039;&#039;Note:&#039;&#039;&#039; The &amp;quot;script&amp;quot; is already placed on the distro, you just have to type &#039;&#039;&#039;ptest&#039;&#039;&#039;...TAB and the terminal should autocomplete the command.&lt;br /&gt;
      and &amp;gt; &#039;&#039;&#039;ptest.log&#039;&#039;&#039;, in order to save the test results in that file.&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process ===&lt;br /&gt;
&lt;br /&gt;
1. Generate the report of pTests as follows: &lt;br /&gt;
     1.1 Get the log from the DUT.&lt;br /&gt;
     1.2 Go to the [[Ptest/archive]] page and check the previous execution to this release.&lt;br /&gt;
     1.3 Go the the report of the execution and download the log.&lt;br /&gt;
     1.4 Use the [[Qa-tools#Ptest_Parser|ptest-parser]] script to generate the report, this script generates a file called &amp;lt;release&amp;gt;wiki.page.&lt;br /&gt;
     1.5 Create a wiki with the name &#039;&#039;&#039;Ptest &amp;lt;commit&amp;gt;_&amp;lt;release-tested&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
     1.6 Copy the content of the content of &#039;&#039;&#039;&amp;lt;release&amp;gt;wiki.page&#039;&#039;&#039; and paste it on new wiki created.&lt;br /&gt;
     1.7 Upload the log of current execution and update the recent created wiki with the link to the log.&lt;br /&gt;
     1.8 Check the packages that had regression on pass rate [[File:down_rate.png|15px]] and if there is a bug reported update the bug with comments that still present &lt;br /&gt;
         on current commit, if there is no bug created raise a new one.&lt;br /&gt;
     1.9 Update the [[Ptest/archive]] wiki with the info of this new execution.&lt;br /&gt;
&lt;br /&gt;
== Compliance ==&lt;br /&gt;
&lt;br /&gt;
In this section 3 Test suites are executed on a NUC HW with core-image-sato-sdk-generixc86-64 image booted.&lt;br /&gt;
&lt;br /&gt;
*LSB tests&lt;br /&gt;
*POSIX tests&lt;br /&gt;
*LTP tests&lt;br /&gt;
&lt;br /&gt;
=== Test Process  ===&lt;br /&gt;
 1. Download lsb image from autobuilder( same image as in LSB automated testing for genericx86-64-lsb bsp)&lt;br /&gt;
    * we test compliance on NUC with genericx86-64-lsb, core-image-lsb-sdk&lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT&lt;br /&gt;
&lt;br /&gt;
 3. Configure the network so it be able to work externally:&lt;br /&gt;
    * edit /etc/resolv.conf and add the gateway ip_address&lt;br /&gt;
    * add the ip and netmask using &amp;quot;ifconfig&amp;quot; command&lt;br /&gt;
    * add the route using &amp;quot;route add default gw &amp;lt;ip_address&amp;gt;&amp;quot; &lt;br /&gt;
    * export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command&lt;br /&gt;
      : there is a bug and if you make these steps in another order than above, it may be possible not work&lt;br /&gt;
&lt;br /&gt;
  4. Copy &amp;quot;compliance_test.py&amp;quot; script on DUT&lt;br /&gt;
     script can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=cagurida/compliance here]&lt;br /&gt;
&lt;br /&gt;
  5. Make sure that your network connection is working&lt;br /&gt;
&lt;br /&gt;
  6. Run the script like this:&lt;br /&gt;
    * make the script executable: &amp;quot;chmod a+x compliance_local.py&amp;quot;&lt;br /&gt;
    * run in command line the following command &amp;quot;./compliance_test.py &amp;lt;milestone&amp;gt; &amp;lt;date&amp;gt;&amp;quot;&lt;br /&gt;
    * wait until &amp;quot;Configuration done. LSB script must be started from machine.&amp;quot; in command line( about 8-12 hours)&lt;br /&gt;
&lt;br /&gt;
  7. Run &amp;quot;LSB_test.sh&amp;quot; via ssh or manually and wait for it to finish( about a day)&lt;br /&gt;
&lt;br /&gt;
  8. Get the logs from DUT:&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fulllog&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.log&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fail&lt;br /&gt;
    - posix.log (can be found in: /opt/ltp/testcases/open_posix_testsuite)&lt;br /&gt;
      -  the three others are found in /opt/ltp directory, in output, temp, result folders . The logs need to be sent to [[yi.zhao@windriver.com]] specifying the v &lt;br /&gt;
         version and the type of image&lt;br /&gt;
    - in /var/opt/lsb/test/manager/results/x86.../x86....tar.gz (you can find it with auto-complete(tab) easily)&lt;br /&gt;
      -- it has like 18 Mb&lt;br /&gt;
      -- upload this file on drive and send the link to [[hongxu.jia@windriver.com]] and [[mark.hatle@windriver.com]]&lt;br /&gt;
      -- also I&#039;ll fwd an email to see how it looks&lt;br /&gt;
&lt;br /&gt;
  9. Put the tests from Testopia - Runtime test run on passed&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To Be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Add New Tests =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test Approach=&lt;br /&gt;
&lt;br /&gt;
=Test Matrix=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yocto QA Cycle&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;!-- The table can be edited with this tool : http://www.tablesgenerator.com/mediawiki_tables --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! linux-yocto&lt;br /&gt;
! Image-type&lt;br /&gt;
! AUTO&lt;br /&gt;
! MANUAL&lt;br /&gt;
! Compliance&lt;br /&gt;
! pTest&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (x86)&#039;&#039;&#039;&lt;br /&gt;
| Big Core&lt;br /&gt;
| MinwMax 32bit&lt;br /&gt;
| genericx86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| MinwMax 64bit&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NUC&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemux86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemux86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (n-x86)&#039;&#039;&#039;&lt;br /&gt;
| MIPS&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| PPC&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| ARM&lt;br /&gt;
| Beaglebone Black&lt;br /&gt;
| beaglebone&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemuarm&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuarm64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuppc&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meta-Intel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! Image-type&lt;br /&gt;
! Auto&lt;br /&gt;
! Manual&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | meta-intel&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; | Big Core&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 64bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | NUC&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | CherryHill&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Joule&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#ff0000&amp;quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | core2-32&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | meta-intel-quark 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | intel-quark&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Not Tested=&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33242</id>
		<title>BSP Test Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33242"/>
		<updated>2017-11-14T21:35:42Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Test Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About BSP  =&lt;br /&gt;
&lt;br /&gt;
A Board Support Package (BSP) is the collection of software and data that allows an operating system to run in a specific hardware. It contains the drivers, routines and information that defines how to support a particular hardware device, set of devices, or hardware platform.&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
&lt;br /&gt;
Verify different supported images generated by Yocto Project build system on main AB, manual and automated test are applied in both physical HW and emulated with qemu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Member&#039;&#039;&#039;&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border:0.05pt solid #000000;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Team&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | José Pérez Carranza&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Oscar Lopez Arandas &lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Yi Zaho&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Wind River &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types of Tests &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* Automated test on different platforms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Platforms, type of images and type of tests are showed detailed on BSP Test Matrix. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features tested&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Manual Tests&lt;br /&gt;
** Boot image &lt;br /&gt;
** Install Image &lt;br /&gt;
** Multimedia&lt;br /&gt;
** Graphical interface components &lt;br /&gt;
** System reboot and shutdown recovery and standby &lt;br /&gt;
** X server tests &lt;br /&gt;
** rpm packages &lt;br /&gt;
** File system (reading/writing)&lt;br /&gt;
** Mont / Umont &lt;br /&gt;
** Network&lt;br /&gt;
&lt;br /&gt;
All test cases can be found here &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Automated Tests &lt;br /&gt;
** buildcpio&lt;br /&gt;
** buildgalculator&lt;br /&gt;
** buildlzip&lt;br /&gt;
** connman&lt;br /&gt;
** date&lt;br /&gt;
** df&lt;br /&gt;
** dnf&lt;br /&gt;
** gcc&lt;br /&gt;
** kernelmodule&lt;br /&gt;
** ldd&lt;br /&gt;
** logrotate&lt;br /&gt;
** multilib&lt;br /&gt;
** oe_syslog&lt;br /&gt;
** pam&lt;br /&gt;
** parselogs&lt;br /&gt;
** perl&lt;br /&gt;
** ping&lt;br /&gt;
** ptest&lt;br /&gt;
** python&lt;br /&gt;
** rpm&lt;br /&gt;
** scanelf&lt;br /&gt;
** scp&lt;br /&gt;
** skeletoninit&lt;br /&gt;
** ssh&lt;br /&gt;
** systemd&lt;br /&gt;
** x32lib&lt;br /&gt;
** xorg&lt;br /&gt;
&lt;br /&gt;
full code of this automated test are on poky repo under meta/lib/oeqa/runtime/cases &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy  =&lt;br /&gt;
&lt;br /&gt;
As mentioned below there are 2 types of test Automated an Manual tests, below a description of how those test are applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Manual==&lt;br /&gt;
&lt;br /&gt;
Test cases executed fully manually on real HW and on a qemu instance, these tests are focused on user scenarios using the image and also ensuring that graphical interface and multimedia are properly working on the image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automated Tests==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test cases execute automatically used testimage suite as well as 2 special test called pTest and Compliance, these tests are written in Python using oeqa framework and check different content and packages behavior of the booted image by a series of commands executed by a ssh communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
 1. Prepare the image and device under test&lt;br /&gt;
 &lt;br /&gt;
    1.1 Download Artifacts&lt;br /&gt;
       there are 2 links available from Public AutoBuilder to download images &lt;br /&gt;
          http://autobuilder.yoctoproject.org/pub/releases/&lt;br /&gt;
          https://autobuilder.yocto.io/pub/releases/&lt;br /&gt;
     &lt;br /&gt;
       Artifacts to be downloaded are: &lt;br /&gt;
    &lt;br /&gt;
       &#039;&#039;&#039;Real HW&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.hddimg&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic.bmap&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-genericx86.*&#039;&#039;&#039;&lt;br /&gt;
       &lt;br /&gt;
       &#039;&#039;&#039;QEMU&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/qemu/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;BZIMAGE&amp;gt;.bin&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.ext4&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.qemuboot.conf&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-qemux86.*&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
    1.2 For real hardware devices:&lt;br /&gt;
       - Write the image to a bootable media (USB key, SD Card, etc.) using the dd command:&lt;br /&gt;
         &#039;&#039;&#039;$ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic of=TARGET_DEVICE&#039;&#039;&#039;&lt;br /&gt;
       - Attach the bootable device to the DUT&lt;br /&gt;
       - Turn the DUT on, and use its boot options to select the correct media for booting&lt;br /&gt;
       - Ensure the device has a network connection and a valid IP address&lt;br /&gt;
&lt;br /&gt;
 2. For Manual Test Cases:&lt;br /&gt;
   &lt;br /&gt;
    2.1 - Go to the proper Test Run assigned on the execution and start executing test cases  &lt;br /&gt;
&lt;br /&gt;
 3. For automated Test Cases:&lt;br /&gt;
    &lt;br /&gt;
    3.1 Clone poky repo $git clone git://git.yoctoproject.org/poky&amp;quot;&lt;br /&gt;
    3.2 $cd poky &lt;br /&gt;
    3.3 Checkout to the commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
    3.4 $source oe-init-build-env&lt;br /&gt;
    3.5 For real HW edit local.conf. PATH: ~/poky/build/conf, at the en of the file adding: &lt;br /&gt;
        &#039;&#039;&#039;Install / Boot the image on the DUT and check the IP&#039;&#039;&#039;&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        TEST_TARGET = &amp;quot;simpleremote&amp;quot;&lt;br /&gt;
        TEST_SERVER_IP = &amp;quot;HOST ip&amp;quot; --&amp;gt; IP of the machine being used to launch tests&lt;br /&gt;
        TEST_TARGET_IP = &amp;quot;DUT ip&amp;quot;  --&amp;gt; IP of the device under test&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    3.6 For real QEMU edit local.conf. PATH: ~/poky/build/conf, at the en of the file adding:&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    &#039;&#039;&#039;For releases before 2.3 also add&#039;&#039;&#039;&lt;br /&gt;
    TEST_SUITES = &amp;quot; auto&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Remember to add the machine to local.conf for example:&#039;&#039;&#039;&lt;br /&gt;
    if genericx86 is needed, MACHINE ?= &amp;quot;genericx86&lt;br /&gt;
    if qemux86 is needed, MACHINE ?= &amp;quot;qemux86&lt;br /&gt;
&lt;br /&gt;
 4. Prepare the environment to execute test suite &lt;br /&gt;
    &lt;br /&gt;
    4.1 $bitbake rpm busybox run-postinsts&lt;br /&gt;
    4.2 $bitbake package-index&lt;br /&gt;
    4.3 Ensure that a folder is created, otherwise create it, under&lt;br /&gt;
        tmp/deploy/images/&amp;lt;MACHINE&amp;gt;, where &amp;lt;MACHINE&amp;gt; corresponds to the variable defined on&lt;br /&gt;
        local.conf on previous steps&lt;br /&gt;
    4.4 Paste artifacts downloaded on previously created folder &lt;br /&gt;
&lt;br /&gt;
 5. Execute the test suite&lt;br /&gt;
    &lt;br /&gt;
    5.1 $bitbake &amp;lt;IMAGE_TESTED&amp;gt; -c testimage&lt;br /&gt;
       &#039;&#039;&#039;example bitbake core-image-sato-sdk -c testimage -v&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 6. Verify that all test cases PASSED if not raise bugs properly &lt;br /&gt;
&lt;br /&gt;
 7. Update results to corresponding Testopia Test Run &lt;br /&gt;
    &#039;&#039;&#039;There is a script available to upload results form the log automatically on [[Qa-tools#Testopia_Update|QA-Tools]] and follow this example [[Qa-tools#Update_a_Test_Run_by_ID|Update TR by ID]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Bug Reporting==&lt;br /&gt;
&lt;br /&gt;
For correctly report the bugs follow the already defined steps here&lt;br /&gt;
&lt;br /&gt;
= Special Tests =&lt;br /&gt;
&lt;br /&gt;
There are 2 special test that also applied as BSP Components those are:&lt;br /&gt;
  &lt;br /&gt;
== pTest ==&lt;br /&gt;
&lt;br /&gt;
For detailed information about behavior and characteristics check [[Ptest]]&lt;br /&gt;
&lt;br /&gt;
=== Test Process ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1. Download pTest image from autobuilder( you can find core-image-sato-sdk image in pTest directory)&lt;br /&gt;
    * Test are applied on NUC with genericx86-64 &lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT (using legacy boot)&lt;br /&gt;
    Configure the network so it be able to work externally:&lt;br /&gt;
    - Export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command eg&lt;br /&gt;
      $ export http_proxy=http://&amp;lt;my_proxy&amp;gt;:&amp;lt;port&amp;gt;&lt;br /&gt;
    - And check if you have internet connection, typing on terminal:&lt;br /&gt;
      $ wget www.google.com&lt;br /&gt;
&lt;br /&gt;
 3. In command line type&lt;br /&gt;
    $ ptest-runner &amp;gt; ptest.log&lt;br /&gt;
      and wait for it to finish ( about 5 hours)&lt;br /&gt;
      &#039;&#039;&#039;Note:&#039;&#039;&#039; The &amp;quot;script&amp;quot; is already placed on the distro, you just have to type &#039;&#039;&#039;ptest&#039;&#039;&#039;...TAB and the terminal should autocomplete the command.&lt;br /&gt;
      and &amp;gt; &#039;&#039;&#039;ptest.log&#039;&#039;&#039;, in order to save the test results in that file.&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process ===&lt;br /&gt;
&lt;br /&gt;
1. Generate the report of pTests as follows: &lt;br /&gt;
     1.1 Get the log from the DUT.&lt;br /&gt;
     1.2 Go to the [[Ptest/archive]] page and check the previous execution to this release.&lt;br /&gt;
     1.3 Go the the report of the execution and download the log.&lt;br /&gt;
     1.4 Use the [[Qa-tools#Ptest_Parser|ptest-parser]] script to generate the report, this script generates a file called &amp;lt;release&amp;gt;wiki.page.&lt;br /&gt;
     1.5 Create a wiki with the name &#039;&#039;&#039;Ptest &amp;lt;commit&amp;gt;_&amp;lt;release-tested&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
     1.6 Copy the content of the content of &#039;&#039;&#039;&amp;lt;release&amp;gt;wiki.page&#039;&#039;&#039; and paste it on new wiki created.&lt;br /&gt;
     1.7 Upload the log of current execution and update the recent created wiki with the link to the log.&lt;br /&gt;
     1.8 Check the packages that had regression on pass rate [[File:down_rate.png|15px]] and if there is a bug reported update the bug with comments that still present &lt;br /&gt;
         on current commit, if there is no bug created raise a new one.&lt;br /&gt;
     1.9 Update the [[Ptest/archive]] wiki with the info of this new execution.&lt;br /&gt;
&lt;br /&gt;
== Compliance ==&lt;br /&gt;
&lt;br /&gt;
In this section 3 Test suites are executed on a NUC HW with core-image-sato-sdk-generixc86-64 image booted.&lt;br /&gt;
&lt;br /&gt;
*LSB tests&lt;br /&gt;
*POSIX tests&lt;br /&gt;
*LTP tests&lt;br /&gt;
&lt;br /&gt;
=== Test Process  ===&lt;br /&gt;
 1. Download lsb image from autobuilder( same image as in LSB automated testing for genericx86-64-lsb bsp)&lt;br /&gt;
    * we test compliance on NUC with genericx86-64-lsb, core-image-lsb-sdk&lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT&lt;br /&gt;
&lt;br /&gt;
 3. Configure the network so it be able to work externally:&lt;br /&gt;
    * edit /etc/resolv.conf and add the gateway ip_address&lt;br /&gt;
    * add the ip and netmask using &amp;quot;ifconfig&amp;quot; command&lt;br /&gt;
    * add the route using &amp;quot;route add default gw &amp;lt;ip_address&amp;gt;&amp;quot; &lt;br /&gt;
    * export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command&lt;br /&gt;
      : there is a bug and if you make these steps in another order than above, it may be possible not work&lt;br /&gt;
&lt;br /&gt;
  4. Copy &amp;quot;compliance_test.py&amp;quot; script on DUT&lt;br /&gt;
     script can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=cagurida/compliance here]&lt;br /&gt;
&lt;br /&gt;
  5. Make sure that your network connection is working&lt;br /&gt;
&lt;br /&gt;
  6. Run the script like this:&lt;br /&gt;
    * make the script executable: &amp;quot;chmod a+x compliance_local.py&amp;quot;&lt;br /&gt;
    * run in command line the following command &amp;quot;./compliance_test.py &amp;lt;milestone&amp;gt; &amp;lt;date&amp;gt;&amp;quot;&lt;br /&gt;
    * wait until &amp;quot;Configuration done. LSB script must be started from machine.&amp;quot; in command line( about 8-12 hours)&lt;br /&gt;
&lt;br /&gt;
  7. Run &amp;quot;LSB_test.sh&amp;quot; via ssh or manually and wait for it to finish( about a day)&lt;br /&gt;
&lt;br /&gt;
  8. Get the logs from DUT:&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fulllog&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.log&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fail&lt;br /&gt;
    - posix.log (can be found in: /opt/ltp/testcases/open_posix_testsuite)&lt;br /&gt;
      -  the three others are found in /opt/ltp directory, in output, temp, result folders . The logs need to be sent to [[yi.zhao@windriver.com]] specifying the v &lt;br /&gt;
         version and the type of image&lt;br /&gt;
    - in /var/opt/lsb/test/manager/results/x86.../x86....tar.gz (you can find it with auto-complete(tab) easily)&lt;br /&gt;
      -- it has like 18 Mb&lt;br /&gt;
      -- upload this file on drive and send the link to [[hongxu.jia@windriver.com]] and [[mark.hatle@windriver.com]]&lt;br /&gt;
      -- also I&#039;ll fwd an email to see how it looks&lt;br /&gt;
&lt;br /&gt;
  9. Put the tests from Testopia - Runtime test run on passed&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To Be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Add New Tests =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test Approach=&lt;br /&gt;
&lt;br /&gt;
=Test Matrix=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yocto QA Cycle&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;!-- The table can be edited with this tool : http://www.tablesgenerator.com/mediawiki_tables --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! linux-yocto&lt;br /&gt;
! Image-type&lt;br /&gt;
! AUTO&lt;br /&gt;
! MANUAL&lt;br /&gt;
! Compliance&lt;br /&gt;
! pTest&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (x86)&#039;&#039;&#039;&lt;br /&gt;
| Big Core&lt;br /&gt;
| MinwMax 32bit&lt;br /&gt;
| genericx86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| MinwMax 64bit&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NUC&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemux86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemux86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (n-x86)&#039;&#039;&#039;&lt;br /&gt;
| MIPS&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| PPC&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| ARM&lt;br /&gt;
| Beaglebone Black&lt;br /&gt;
| beaglebone&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemuarm&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuarm64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuppc&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meta-Intel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! Image-type&lt;br /&gt;
! Auto&lt;br /&gt;
! Manual&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | meta-intel&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; | Big Core&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 64bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | NUC&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | CherryHill&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Joule&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#ff0000&amp;quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | core2-32&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | meta-intel-quark 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | intel-quark&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Not Tested=&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33241</id>
		<title>BSP Test Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33241"/>
		<updated>2017-11-14T21:35:08Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Test Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About BSP  =&lt;br /&gt;
&lt;br /&gt;
A Board Support Package (BSP) is the collection of software and data that allows an operating system to run in a specific hardware. It contains the drivers, routines and information that defines how to support a particular hardware device, set of devices, or hardware platform.&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
&lt;br /&gt;
Verify different supported images generated by Yocto Project build system on main AB, manual and automated test are applied in both physical HW and emulated with qemu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Member&#039;&#039;&#039;&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border:0.05pt solid #000000;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Team&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | José Pérez Carranza&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Oscar Lopez Arandas &lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Yi Zaho&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Wind River &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types of Tests &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* Automated test on different platforms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Platforms, type of images and type of tests are showed detailed on BSP Test Matrix. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features tested&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Manual Tests&lt;br /&gt;
** Boot image &lt;br /&gt;
** Install Image &lt;br /&gt;
** Multimedia&lt;br /&gt;
** Graphical interface components &lt;br /&gt;
** System reboot and shutdown recovery and standby &lt;br /&gt;
** X server tests &lt;br /&gt;
** rpm packages &lt;br /&gt;
** File system (reading/writing)&lt;br /&gt;
** Mont / Umont &lt;br /&gt;
** Network&lt;br /&gt;
&lt;br /&gt;
All test cases can be found here &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Automated Tests &lt;br /&gt;
** buildcpio&lt;br /&gt;
** buildgalculator&lt;br /&gt;
** buildlzip&lt;br /&gt;
** connman&lt;br /&gt;
** date&lt;br /&gt;
** df&lt;br /&gt;
** dnf&lt;br /&gt;
** gcc&lt;br /&gt;
** kernelmodule&lt;br /&gt;
** ldd&lt;br /&gt;
** logrotate&lt;br /&gt;
** multilib&lt;br /&gt;
** oe_syslog&lt;br /&gt;
** pam&lt;br /&gt;
** parselogs&lt;br /&gt;
** perl&lt;br /&gt;
** ping&lt;br /&gt;
** ptest&lt;br /&gt;
** python&lt;br /&gt;
** rpm&lt;br /&gt;
** scanelf&lt;br /&gt;
** scp&lt;br /&gt;
** skeletoninit&lt;br /&gt;
** ssh&lt;br /&gt;
** systemd&lt;br /&gt;
** x32lib&lt;br /&gt;
** xorg&lt;br /&gt;
&lt;br /&gt;
full code of this automated test are on poky repo under meta/lib/oeqa/runtime/cases &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy  =&lt;br /&gt;
&lt;br /&gt;
As mentioned below there are 2 types of test Automated an Manual tests, below a description of how those test are applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Manual==&lt;br /&gt;
&lt;br /&gt;
Test cases executed fully manually on real HW and on a qemu instance, these tests are focused on user scenarios using the image and also ensuring that graphical interface and multimedia are properly working on the image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automated Tests==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test cases execute automatically used testimage suite as well as 2 special test called pTest and Compliance, these tests are written in Python using oeqa framework and check different content and packages behavior of the booted image by a series of commands executed by a ssh communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
 1. Prepare the image and device under test&lt;br /&gt;
 &lt;br /&gt;
    1.1 Download Artifacts&lt;br /&gt;
       there are 2 links available from Public AutoBuilder to download images &lt;br /&gt;
          http://autobuilder.yoctoproject.org/pub/releases/&lt;br /&gt;
          https://autobuilder.yocto.io/pub/releases/&lt;br /&gt;
     &lt;br /&gt;
       Artifacts to be downloaded are: &lt;br /&gt;
    &lt;br /&gt;
       &#039;&#039;&#039;Real HW&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.hddimg&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic.bmap&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-genericx86.*&#039;&#039;&#039;&lt;br /&gt;
       &lt;br /&gt;
       &#039;&#039;&#039;QEMU&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/qemu/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;BZIMAGE&amp;gt;.bin&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.ext4&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.qemuboot.conf&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-qemux86.*&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
    1.2 For real hardware devices:&lt;br /&gt;
       - Write the image to a bootable media (USB key, SD Card, etc.) using the dd command:&lt;br /&gt;
          &#039;&#039;&#039;$ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic of=TARGET_DEVICE&#039;&#039;&#039;&lt;br /&gt;
       - Attach the bootable device to the DUT&lt;br /&gt;
       - Turn the DUT on, and use its boot options to select the correct media for booting&lt;br /&gt;
       - Ensure the device has a network connection and a valid IP address&lt;br /&gt;
&lt;br /&gt;
 2. For Manual Test Cases:&lt;br /&gt;
   &lt;br /&gt;
    2.1 - Go to the proper Test Run assigned on the execution and start executing test cases  &lt;br /&gt;
&lt;br /&gt;
 3. For automated Test Cases:&lt;br /&gt;
    &lt;br /&gt;
    3.1 Clone poky repo $git clone git://git.yoctoproject.org/poky&amp;quot;&lt;br /&gt;
    3.2 $cd poky &lt;br /&gt;
    3.3 Checkout to the commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
    3.4 $source oe-init-build-env&lt;br /&gt;
    3.5 For real HW edit local.conf. PATH: ~/poky/build/conf, at the en of the file adding: &lt;br /&gt;
        &#039;&#039;&#039;Install / Boot the image on the DUT and check the IP&#039;&#039;&#039;&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        TEST_TARGET = &amp;quot;simpleremote&amp;quot;&lt;br /&gt;
        TEST_SERVER_IP = &amp;quot;HOST ip&amp;quot; --&amp;gt; IP of the machine being used to launch tests&lt;br /&gt;
        TEST_TARGET_IP = &amp;quot;DUT ip&amp;quot;  --&amp;gt; IP of the device under test&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    3.6 For real QEMU edit local.conf. PATH: ~/poky/build/conf, at the en of the file adding:&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    &#039;&#039;&#039;For releases before 2.3 also add&#039;&#039;&#039;&lt;br /&gt;
    TEST_SUITES = &amp;quot; auto&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Remember to add the machine to local.conf for example:&#039;&#039;&#039;&lt;br /&gt;
    if genericx86 is needed, MACHINE ?= &amp;quot;genericx86&lt;br /&gt;
    if qemux86 is needed, MACHINE ?= &amp;quot;qemux86&lt;br /&gt;
&lt;br /&gt;
 4. Prepare the environment to execute test suite &lt;br /&gt;
    &lt;br /&gt;
    4.1 $bitbake rpm busybox run-postinsts&lt;br /&gt;
    4.2 $bitbake package-index&lt;br /&gt;
    4.3 Ensure that a folder is created, otherwise create it, under&lt;br /&gt;
        tmp/deploy/images/&amp;lt;MACHINE&amp;gt;, where &amp;lt;MACHINE&amp;gt; corresponds to the variable defined on&lt;br /&gt;
        local.conf on previous steps&lt;br /&gt;
    4.4 Paste artifacts downloaded on previously created folder &lt;br /&gt;
&lt;br /&gt;
 5. Execute the test suite&lt;br /&gt;
    &lt;br /&gt;
    5.1 $bitbake &amp;lt;IMAGE_TESTED&amp;gt; -c testimage&lt;br /&gt;
       &#039;&#039;&#039;example bitbake core-image-sato-sdk -c testimage -v&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 6. Verify that all test cases PASSED if not raise bugs properly &lt;br /&gt;
&lt;br /&gt;
 7. Update results to corresponding Testopia Test Run &lt;br /&gt;
    &#039;&#039;&#039;There is a script available to upload results form the log automatically on [[Qa-tools#Testopia_Update|QA-Tools]] and follow this example [[Qa-tools#Update_a_Test_Run_by_ID|Update TR by ID]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Bug Reporting==&lt;br /&gt;
&lt;br /&gt;
For correctly report the bugs follow the already defined steps here&lt;br /&gt;
&lt;br /&gt;
= Special Tests =&lt;br /&gt;
&lt;br /&gt;
There are 2 special test that also applied as BSP Components those are:&lt;br /&gt;
  &lt;br /&gt;
== pTest ==&lt;br /&gt;
&lt;br /&gt;
For detailed information about behavior and characteristics check [[Ptest]]&lt;br /&gt;
&lt;br /&gt;
=== Test Process ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1. Download pTest image from autobuilder( you can find core-image-sato-sdk image in pTest directory)&lt;br /&gt;
    * Test are applied on NUC with genericx86-64 &lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT (using legacy boot)&lt;br /&gt;
    Configure the network so it be able to work externally:&lt;br /&gt;
    - Export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command eg&lt;br /&gt;
      $ export http_proxy=http://&amp;lt;my_proxy&amp;gt;:&amp;lt;port&amp;gt;&lt;br /&gt;
    - And check if you have internet connection, typing on terminal:&lt;br /&gt;
      $ wget www.google.com&lt;br /&gt;
&lt;br /&gt;
 3. In command line type&lt;br /&gt;
    $ ptest-runner &amp;gt; ptest.log&lt;br /&gt;
      and wait for it to finish ( about 5 hours)&lt;br /&gt;
      &#039;&#039;&#039;Note:&#039;&#039;&#039; The &amp;quot;script&amp;quot; is already placed on the distro, you just have to type &#039;&#039;&#039;ptest&#039;&#039;&#039;...TAB and the terminal should autocomplete the command.&lt;br /&gt;
      and &amp;gt; &#039;&#039;&#039;ptest.log&#039;&#039;&#039;, in order to save the test results in that file.&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process ===&lt;br /&gt;
&lt;br /&gt;
1. Generate the report of pTests as follows: &lt;br /&gt;
     1.1 Get the log from the DUT.&lt;br /&gt;
     1.2 Go to the [[Ptest/archive]] page and check the previous execution to this release.&lt;br /&gt;
     1.3 Go the the report of the execution and download the log.&lt;br /&gt;
     1.4 Use the [[Qa-tools#Ptest_Parser|ptest-parser]] script to generate the report, this script generates a file called &amp;lt;release&amp;gt;wiki.page.&lt;br /&gt;
     1.5 Create a wiki with the name &#039;&#039;&#039;Ptest &amp;lt;commit&amp;gt;_&amp;lt;release-tested&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
     1.6 Copy the content of the content of &#039;&#039;&#039;&amp;lt;release&amp;gt;wiki.page&#039;&#039;&#039; and paste it on new wiki created.&lt;br /&gt;
     1.7 Upload the log of current execution and update the recent created wiki with the link to the log.&lt;br /&gt;
     1.8 Check the packages that had regression on pass rate [[File:down_rate.png|15px]] and if there is a bug reported update the bug with comments that still present &lt;br /&gt;
         on current commit, if there is no bug created raise a new one.&lt;br /&gt;
     1.9 Update the [[Ptest/archive]] wiki with the info of this new execution.&lt;br /&gt;
&lt;br /&gt;
== Compliance ==&lt;br /&gt;
&lt;br /&gt;
In this section 3 Test suites are executed on a NUC HW with core-image-sato-sdk-generixc86-64 image booted.&lt;br /&gt;
&lt;br /&gt;
*LSB tests&lt;br /&gt;
*POSIX tests&lt;br /&gt;
*LTP tests&lt;br /&gt;
&lt;br /&gt;
=== Test Process  ===&lt;br /&gt;
 1. Download lsb image from autobuilder( same image as in LSB automated testing for genericx86-64-lsb bsp)&lt;br /&gt;
    * we test compliance on NUC with genericx86-64-lsb, core-image-lsb-sdk&lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT&lt;br /&gt;
&lt;br /&gt;
 3. Configure the network so it be able to work externally:&lt;br /&gt;
    * edit /etc/resolv.conf and add the gateway ip_address&lt;br /&gt;
    * add the ip and netmask using &amp;quot;ifconfig&amp;quot; command&lt;br /&gt;
    * add the route using &amp;quot;route add default gw &amp;lt;ip_address&amp;gt;&amp;quot; &lt;br /&gt;
    * export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command&lt;br /&gt;
      : there is a bug and if you make these steps in another order than above, it may be possible not work&lt;br /&gt;
&lt;br /&gt;
  4. Copy &amp;quot;compliance_test.py&amp;quot; script on DUT&lt;br /&gt;
     script can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=cagurida/compliance here]&lt;br /&gt;
&lt;br /&gt;
  5. Make sure that your network connection is working&lt;br /&gt;
&lt;br /&gt;
  6. Run the script like this:&lt;br /&gt;
    * make the script executable: &amp;quot;chmod a+x compliance_local.py&amp;quot;&lt;br /&gt;
    * run in command line the following command &amp;quot;./compliance_test.py &amp;lt;milestone&amp;gt; &amp;lt;date&amp;gt;&amp;quot;&lt;br /&gt;
    * wait until &amp;quot;Configuration done. LSB script must be started from machine.&amp;quot; in command line( about 8-12 hours)&lt;br /&gt;
&lt;br /&gt;
  7. Run &amp;quot;LSB_test.sh&amp;quot; via ssh or manually and wait for it to finish( about a day)&lt;br /&gt;
&lt;br /&gt;
  8. Get the logs from DUT:&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fulllog&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.log&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fail&lt;br /&gt;
    - posix.log (can be found in: /opt/ltp/testcases/open_posix_testsuite)&lt;br /&gt;
      -  the three others are found in /opt/ltp directory, in output, temp, result folders . The logs need to be sent to [[yi.zhao@windriver.com]] specifying the v &lt;br /&gt;
         version and the type of image&lt;br /&gt;
    - in /var/opt/lsb/test/manager/results/x86.../x86....tar.gz (you can find it with auto-complete(tab) easily)&lt;br /&gt;
      -- it has like 18 Mb&lt;br /&gt;
      -- upload this file on drive and send the link to [[hongxu.jia@windriver.com]] and [[mark.hatle@windriver.com]]&lt;br /&gt;
      -- also I&#039;ll fwd an email to see how it looks&lt;br /&gt;
&lt;br /&gt;
  9. Put the tests from Testopia - Runtime test run on passed&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To Be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Add New Tests =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test Approach=&lt;br /&gt;
&lt;br /&gt;
=Test Matrix=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yocto QA Cycle&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;!-- The table can be edited with this tool : http://www.tablesgenerator.com/mediawiki_tables --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! linux-yocto&lt;br /&gt;
! Image-type&lt;br /&gt;
! AUTO&lt;br /&gt;
! MANUAL&lt;br /&gt;
! Compliance&lt;br /&gt;
! pTest&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (x86)&#039;&#039;&#039;&lt;br /&gt;
| Big Core&lt;br /&gt;
| MinwMax 32bit&lt;br /&gt;
| genericx86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| MinwMax 64bit&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NUC&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemux86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemux86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (n-x86)&#039;&#039;&#039;&lt;br /&gt;
| MIPS&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| PPC&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| ARM&lt;br /&gt;
| Beaglebone Black&lt;br /&gt;
| beaglebone&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemuarm&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuarm64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuppc&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meta-Intel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! Image-type&lt;br /&gt;
! Auto&lt;br /&gt;
! Manual&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | meta-intel&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; | Big Core&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 64bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | NUC&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | CherryHill&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Joule&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#ff0000&amp;quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | core2-32&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | meta-intel-quark 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | intel-quark&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Not Tested=&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33237</id>
		<title>BSP Test Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33237"/>
		<updated>2017-11-14T20:41:55Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Test Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About BSP  =&lt;br /&gt;
&lt;br /&gt;
A Board Support Package (BSP) is the collection of software and data that allows an operating system to run in a specific hardware. It contains the drivers, routines and information that defines how to support a particular hardware device, set of devices, or hardware platform.&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
&lt;br /&gt;
Verify different supported images generated by Yocto Project build system on main AB, manual and automated test are applied in both physical HW and emulated with qemu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Member&#039;&#039;&#039;&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border:0.05pt solid #000000;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Team&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | José Pérez Carranza&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Oscar Lopez Arandas &lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Yi Zaho&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Wind River &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types of Tests &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* Automated test on different platforms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Platforms, type of images and type of tests are showed detailed on BSP Test Matrix. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features tested&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Manual Tests&lt;br /&gt;
** Boot image &lt;br /&gt;
** Install Image &lt;br /&gt;
** Multimedia&lt;br /&gt;
** Graphical interface components &lt;br /&gt;
** System reboot and shutdown recovery and standby &lt;br /&gt;
** X server tests &lt;br /&gt;
** rpm packages &lt;br /&gt;
** File system (reading/writing)&lt;br /&gt;
** Mont / Umont &lt;br /&gt;
** Network&lt;br /&gt;
&lt;br /&gt;
All test cases can be found here &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Automated Tests &lt;br /&gt;
** buildcpio&lt;br /&gt;
** buildgalculator&lt;br /&gt;
** buildlzip&lt;br /&gt;
** connman&lt;br /&gt;
** date&lt;br /&gt;
** df&lt;br /&gt;
** dnf&lt;br /&gt;
** gcc&lt;br /&gt;
** kernelmodule&lt;br /&gt;
** ldd&lt;br /&gt;
** logrotate&lt;br /&gt;
** multilib&lt;br /&gt;
** oe_syslog&lt;br /&gt;
** pam&lt;br /&gt;
** parselogs&lt;br /&gt;
** perl&lt;br /&gt;
** ping&lt;br /&gt;
** ptest&lt;br /&gt;
** python&lt;br /&gt;
** rpm&lt;br /&gt;
** scanelf&lt;br /&gt;
** scp&lt;br /&gt;
** skeletoninit&lt;br /&gt;
** ssh&lt;br /&gt;
** systemd&lt;br /&gt;
** x32lib&lt;br /&gt;
** xorg&lt;br /&gt;
&lt;br /&gt;
full code of this automated test are on poky repo under meta/lib/oeqa/runtime/cases &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy  =&lt;br /&gt;
&lt;br /&gt;
As mentioned below there are 2 types of test Automated an Manual tests, below a description of how those test are applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Manual==&lt;br /&gt;
&lt;br /&gt;
Test cases executed fully manually on real HW and on a qemu instance, these tests are focused on user scenarios using the image and also ensuring that graphical interface and multimedia are properly working on the image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automated Tests==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test cases execute automatically used testimage suite as well as 2 special test called pTest and Compliance, these tests are written in Python using oeqa framework and check different content and packages behavior of the booted image by a series of commands executed by a ssh communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
 1. Prepare the image and device under test&lt;br /&gt;
 &lt;br /&gt;
    1.1 Download Artifacts&lt;br /&gt;
       there are 2 links available from Public AutoBuilder to download images &lt;br /&gt;
          http://autobuilder.yoctoproject.org/pub/releases/&lt;br /&gt;
          https://autobuilder.yocto.io/pub/releases/&lt;br /&gt;
     &lt;br /&gt;
       Artifacts to be downloaded are: &lt;br /&gt;
    &lt;br /&gt;
       &#039;&#039;&#039;Real HW&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.hddimg&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic.bmap&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-genericx86.*&#039;&#039;&#039;&lt;br /&gt;
       &lt;br /&gt;
       &#039;&#039;&#039;QEMU&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/qemu/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;BZIMAGE&amp;gt;.bin&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.ext4&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.qemuboot.conf&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-qemux86.*&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
    1.2 For real hardware devices:&lt;br /&gt;
       - Write the image to a bootable media (USB key, SD Card, etc.) using the dd command:&lt;br /&gt;
          &#039;&#039;&#039;$ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic of=TARGET_DEVICE&#039;&#039;&#039;&lt;br /&gt;
       - Attach the bootable device to the DUT, turn the DUT on, and use its boot options to select the correct media for booting.&lt;br /&gt;
       - Runtime test cases are send to the DUT using SSH, so ensure the device has a network connection and a valid IP address.&lt;br /&gt;
&lt;br /&gt;
 2. For Manual Test Cases:&lt;br /&gt;
   &lt;br /&gt;
    2.1 - Go to the proper Test Run assigned on the execution and start executing test cases  &lt;br /&gt;
&lt;br /&gt;
 3. For automated Test Cases:&lt;br /&gt;
    &lt;br /&gt;
    3.1 Clone poky repo $git clone git://git.yoctoproject.org/poky&amp;quot;&lt;br /&gt;
    3.2 $cd poky &lt;br /&gt;
    3.3 Checkout to the commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
    3.4 $source oe-init-build-env&lt;br /&gt;
    3.5 For real HW edit local.conf. PATH: ~/poky/build/conf, at the en of the file adding: &lt;br /&gt;
        &#039;&#039;&#039;Install / Boot the image on the DUT and check the IP&#039;&#039;&#039;&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        TEST_TARGET = &amp;quot;simpleremote&amp;quot;&lt;br /&gt;
        TEST_SERVER_IP = &amp;quot;HOST ip&amp;quot; --&amp;gt; IP of the machine being used to launch tests&lt;br /&gt;
        TEST_TARGET_IP = &amp;quot;DUT ip&amp;quot;  --&amp;gt; IP of the device under test&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    3.6 For real QEMU edit local.conf. PATH: ~/poky/build/conf, at the en of the file adding:&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    &#039;&#039;&#039;For releases before 2.3 also add&#039;&#039;&#039;&lt;br /&gt;
    TEST_SUITES = &amp;quot; auto&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Remember to add the machine to local.conf for example:&#039;&#039;&#039;&lt;br /&gt;
    if genericx86 is needed, MACHINE ?= &amp;quot;genericx86&lt;br /&gt;
    if qemux86 is needed, MACHINE ?= &amp;quot;qemux86&lt;br /&gt;
&lt;br /&gt;
 4. Prepare the environment to execute test suite &lt;br /&gt;
    &lt;br /&gt;
    4.1 $bitbake rpm busybox run-postinsts&lt;br /&gt;
    4.2 $bitbake package-index&lt;br /&gt;
    4.3 Ensure that a folder is created, otherwise create it, under&lt;br /&gt;
        tmp/deploy/images/&amp;lt;MACHINE&amp;gt;, where &amp;lt;MACHINE&amp;gt; corresponds to the variable defined on&lt;br /&gt;
        local.conf on previous steps&lt;br /&gt;
    4.4 Paste artifacts downloaded on previously created folder &lt;br /&gt;
&lt;br /&gt;
 5. Execute the test suite&lt;br /&gt;
    &lt;br /&gt;
    5.1 $bitbake &amp;lt;IMAGE_TESTED&amp;gt; -c testimage&lt;br /&gt;
       &#039;&#039;&#039;example bitbake core-image-sato-sdk -c testimage -v&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 6. Verify that all test cases PASSED if not raise bugs properly &lt;br /&gt;
&lt;br /&gt;
 7. Update results to corresponding Testopia Test Run &lt;br /&gt;
    &#039;&#039;&#039;There is a script available to upload results form the log automatically on [[Qa-tools#Testopia_Update|QA-Tools]] and follow this example [[Qa-tools#Update_a_Test_Run_by_ID|Update TR by ID]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Bug Reporting==&lt;br /&gt;
&lt;br /&gt;
For correctly report the bugs follow the already defined steps here&lt;br /&gt;
&lt;br /&gt;
= Special Tests =&lt;br /&gt;
&lt;br /&gt;
There are 2 special test that also applied as BSP Components those are:&lt;br /&gt;
  &lt;br /&gt;
== pTest ==&lt;br /&gt;
&lt;br /&gt;
For detailed information about behavior and characteristics check [[Ptest]]&lt;br /&gt;
&lt;br /&gt;
=== Test Process ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1. Download pTest image from autobuilder( you can find core-image-sato-sdk image in pTest directory)&lt;br /&gt;
    * Test are applied on NUC with genericx86-64 &lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT (using legacy boot)&lt;br /&gt;
    Configure the network so it be able to work externally:&lt;br /&gt;
    - Export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command eg&lt;br /&gt;
      $ export http_proxy=http://&amp;lt;my_proxy&amp;gt;:&amp;lt;port&amp;gt;&lt;br /&gt;
    - And check if you have internet connection, typing on terminal:&lt;br /&gt;
      $ wget www.google.com&lt;br /&gt;
&lt;br /&gt;
 3. In command line type&lt;br /&gt;
    $ ptest-runner &amp;gt; ptest.log&lt;br /&gt;
      and wait for it to finish ( about 5 hours)&lt;br /&gt;
      &#039;&#039;&#039;Note:&#039;&#039;&#039; The &amp;quot;script&amp;quot; is already placed on the distro, you just have to type &#039;&#039;&#039;ptest&#039;&#039;&#039;...TAB and the terminal should autocomplete the command.&lt;br /&gt;
      and &amp;gt; &#039;&#039;&#039;ptest.log&#039;&#039;&#039;, in order to save the test results in that file.&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process ===&lt;br /&gt;
&lt;br /&gt;
1. Generate the report of pTests as follows: &lt;br /&gt;
     1.1 Get the log from the DUT.&lt;br /&gt;
     1.2 Go to the [[Ptest/archive]] page and check the previous execution to this release.&lt;br /&gt;
     1.3 Go the the report of the execution and download the log.&lt;br /&gt;
     1.4 Use the [[Qa-tools#Ptest_Parser|ptest-parser]] script to generate the report, this script generates a file called &amp;lt;release&amp;gt;wiki.page.&lt;br /&gt;
     1.5 Create a wiki with the name &#039;&#039;&#039;Ptest &amp;lt;commit&amp;gt;_&amp;lt;release-tested&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
     1.6 Copy the content of the content of &#039;&#039;&#039;&amp;lt;release&amp;gt;wiki.page&#039;&#039;&#039; and paste it on new wiki created.&lt;br /&gt;
     1.7 Upload the log of current execution and update the recent created wiki with the link to the log.&lt;br /&gt;
     1.8 Check the packages that had regression on pass rate [[File:down_rate.png|15px]] and if there is a bug reported update the bug with comments that still present &lt;br /&gt;
         on current commit, if there is no bug created raise a new one.&lt;br /&gt;
     1.9 Update the [[Ptest/archive]] wiki with the info of this new execution.&lt;br /&gt;
&lt;br /&gt;
== Compliance ==&lt;br /&gt;
&lt;br /&gt;
In this section 3 Test suites are executed on a NUC HW with core-image-sato-sdk-generixc86-64 image booted.&lt;br /&gt;
&lt;br /&gt;
*LSB tests&lt;br /&gt;
*POSIX tests&lt;br /&gt;
*LTP tests&lt;br /&gt;
&lt;br /&gt;
=== Test Process  ===&lt;br /&gt;
 1. Download lsb image from autobuilder( same image as in LSB automated testing for genericx86-64-lsb bsp)&lt;br /&gt;
    * we test compliance on NUC with genericx86-64-lsb, core-image-lsb-sdk&lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT&lt;br /&gt;
&lt;br /&gt;
 3. Configure the network so it be able to work externally:&lt;br /&gt;
    * edit /etc/resolv.conf and add the gateway ip_address&lt;br /&gt;
    * add the ip and netmask using &amp;quot;ifconfig&amp;quot; command&lt;br /&gt;
    * add the route using &amp;quot;route add default gw &amp;lt;ip_address&amp;gt;&amp;quot; &lt;br /&gt;
    * export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command&lt;br /&gt;
      : there is a bug and if you make these steps in another order than above, it may be possible not work&lt;br /&gt;
&lt;br /&gt;
  4. Copy &amp;quot;compliance_test.py&amp;quot; script on DUT&lt;br /&gt;
     script can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=cagurida/compliance here]&lt;br /&gt;
&lt;br /&gt;
  5. Make sure that your network connection is working&lt;br /&gt;
&lt;br /&gt;
  6. Run the script like this:&lt;br /&gt;
    * make the script executable: &amp;quot;chmod a+x compliance_local.py&amp;quot;&lt;br /&gt;
    * run in command line the following command &amp;quot;./compliance_test.py &amp;lt;milestone&amp;gt; &amp;lt;date&amp;gt;&amp;quot;&lt;br /&gt;
    * wait until &amp;quot;Configuration done. LSB script must be started from machine.&amp;quot; in command line( about 8-12 hours)&lt;br /&gt;
&lt;br /&gt;
  7. Run &amp;quot;LSB_test.sh&amp;quot; via ssh or manually and wait for it to finish( about a day)&lt;br /&gt;
&lt;br /&gt;
  8. Get the logs from DUT:&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fulllog&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.log&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fail&lt;br /&gt;
    - posix.log (can be found in: /opt/ltp/testcases/open_posix_testsuite)&lt;br /&gt;
      -  the three others are found in /opt/ltp directory, in output, temp, result folders . The logs need to be sent to [[yi.zhao@windriver.com]] specifying the v &lt;br /&gt;
         version and the type of image&lt;br /&gt;
    - in /var/opt/lsb/test/manager/results/x86.../x86....tar.gz (you can find it with auto-complete(tab) easily)&lt;br /&gt;
      -- it has like 18 Mb&lt;br /&gt;
      -- upload this file on drive and send the link to [[hongxu.jia@windriver.com]] and [[mark.hatle@windriver.com]]&lt;br /&gt;
      -- also I&#039;ll fwd an email to see how it looks&lt;br /&gt;
&lt;br /&gt;
  9. Put the tests from Testopia - Runtime test run on passed&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To Be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Add New Tests =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test Approach=&lt;br /&gt;
&lt;br /&gt;
=Test Matrix=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yocto QA Cycle&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;!-- The table can be edited with this tool : http://www.tablesgenerator.com/mediawiki_tables --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! linux-yocto&lt;br /&gt;
! Image-type&lt;br /&gt;
! AUTO&lt;br /&gt;
! MANUAL&lt;br /&gt;
! Compliance&lt;br /&gt;
! pTest&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (x86)&#039;&#039;&#039;&lt;br /&gt;
| Big Core&lt;br /&gt;
| MinwMax 32bit&lt;br /&gt;
| genericx86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| MinwMax 64bit&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NUC&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemux86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemux86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (n-x86)&#039;&#039;&#039;&lt;br /&gt;
| MIPS&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| PPC&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| ARM&lt;br /&gt;
| Beaglebone Black&lt;br /&gt;
| beaglebone&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemuarm&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuarm64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuppc&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meta-Intel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! Image-type&lt;br /&gt;
! Auto&lt;br /&gt;
! Manual&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | meta-intel&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; | Big Core&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 64bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | NUC&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | CherryHill&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Joule&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#ff0000&amp;quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | core2-32&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | meta-intel-quark 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | intel-quark&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Not Tested=&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33127</id>
		<title>BSP Test Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33127"/>
		<updated>2017-11-10T23:04:16Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Test Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About BSP  =&lt;br /&gt;
&lt;br /&gt;
A Board Support Package (BSP) is the collection of software and data that allows an operating system to run in a specific hardware. It contains the drivers, routines and information that defines how to support a particular hardware device, set of devices, or hardware platform.&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
&lt;br /&gt;
Verify different supported images generated by Yocto Project build system on main AB, manual and automated test are applied in both physical HW and emulated with qemu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Member&#039;&#039;&#039;&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border:0.05pt solid #000000;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Team&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | José Pérez Carranza&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Oscar Lopez Arandas &lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Yi Zaho&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Wind River &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types of Tests &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* Automated test on different platforms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Platforms, type of images and type of tests are showed detailed on BSP Test Matrix. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features tested&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Manual Tests&lt;br /&gt;
** Boot image &lt;br /&gt;
** Install Image &lt;br /&gt;
** Multimedia&lt;br /&gt;
** Graphical interface components &lt;br /&gt;
** System reboot and shutdown recovery and standby &lt;br /&gt;
** X server tests &lt;br /&gt;
** rpm packages &lt;br /&gt;
** File system (reading/writing)&lt;br /&gt;
** Mont / Umont &lt;br /&gt;
** Network&lt;br /&gt;
&lt;br /&gt;
All test cases can be found here &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Automated Tests &lt;br /&gt;
** buildcpio&lt;br /&gt;
** buildgalculator&lt;br /&gt;
** buildlzip&lt;br /&gt;
** connman&lt;br /&gt;
** date&lt;br /&gt;
** df&lt;br /&gt;
** dnf&lt;br /&gt;
** gcc&lt;br /&gt;
** kernelmodule&lt;br /&gt;
** ldd&lt;br /&gt;
** logrotate&lt;br /&gt;
** multilib&lt;br /&gt;
** oe_syslog&lt;br /&gt;
** pam&lt;br /&gt;
** parselogs&lt;br /&gt;
** perl&lt;br /&gt;
** ping&lt;br /&gt;
** ptest&lt;br /&gt;
** python&lt;br /&gt;
** rpm&lt;br /&gt;
** scanelf&lt;br /&gt;
** scp&lt;br /&gt;
** skeletoninit&lt;br /&gt;
** ssh&lt;br /&gt;
** systemd&lt;br /&gt;
** x32lib&lt;br /&gt;
** xorg&lt;br /&gt;
&lt;br /&gt;
full code of this automated test are on poky repo under meta/lib/oeqa/runtime/cases &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy  =&lt;br /&gt;
&lt;br /&gt;
As mentioned below there are 2 types of test Automated an Manual tests, below a description of how those test are applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Manual==&lt;br /&gt;
&lt;br /&gt;
Test cases executed fully manually on real HW and on a qemu instance, these tests are focused on user scenarios using the image and also ensuring that graphical interface and multimedia are properly working on the image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automated Tests==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test cases execute automatically used testimage suite as well as 2 special test called pTest and Compliance, these tests are written in Python using oeqa framework and check different content and packages behavior of the booted image by a series of commands executed by a ssh communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
 1. Prepare the image and device under test&lt;br /&gt;
 &lt;br /&gt;
    1.1 Download Artifacts&lt;br /&gt;
       there are 2 links available from Public AutoBuilder to download images &lt;br /&gt;
          http://autobuilder.yoctoproject.org/pub/releases/&lt;br /&gt;
          https://autobuilder.yocto.io/pub/releases/&lt;br /&gt;
     &lt;br /&gt;
       Artifacts to be downloaded are: &lt;br /&gt;
    &lt;br /&gt;
       &#039;&#039;&#039;Real HW&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.hhddimg&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic.bmap&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-genericx86.*&#039;&#039;&#039;&lt;br /&gt;
       &lt;br /&gt;
       &#039;&#039;&#039;QEMU&#039;&#039;&#039;&lt;br /&gt;
       under folder machines/qemu/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
       - &amp;lt;BZIMAGE&amp;gt;.bin&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.ext4&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.qemuboot.conf&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
       - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
       &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-qemux86.*&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
    1.2 For real hardware devices:&lt;br /&gt;
       - Write the image to a bootable media (USB key, SD Card, etc.) using the dd command:&lt;br /&gt;
          &#039;&#039;&#039;$ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic of=TARGET_DEVICE&#039;&#039;&#039;&lt;br /&gt;
       - Attach the bootable device to the DUT, turn the DUT on, and use its boot options to select the correct media for booting.&lt;br /&gt;
       - Runtime test cases are send to the DUT using SSH, so ensure the device has a network connection and a valid IP address.&lt;br /&gt;
&lt;br /&gt;
 2. For Manual Test Cases:&lt;br /&gt;
   &lt;br /&gt;
    2.1 - Go to the proper Test Run assigned on the execution and start executing test cases  &lt;br /&gt;
&lt;br /&gt;
 3. For automated Test Cases:&lt;br /&gt;
    &lt;br /&gt;
    3.1 Clone poky repo $git clone git://git.yoctoproject.org/poky&amp;quot;&lt;br /&gt;
    3.2 $cd poky &lt;br /&gt;
    3.3 Checkout to the commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
    3.4 $source oe-init-build-env&lt;br /&gt;
    3.5 For real HW edit local.conf. PATH: ~/poky/build/conf, at the en of the file adding: &lt;br /&gt;
        &#039;&#039;&#039;Install / Boot the image on the DUT and check the IP&#039;&#039;&#039;&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        TEST_TARGET = &amp;quot;simpleremote&amp;quot;&lt;br /&gt;
        TEST_SERVER_IP = &amp;quot;HOST ip&amp;quot; --&amp;gt; IP of the machine being used to launch tests&lt;br /&gt;
        TEST_TARGET_IP = &amp;quot;DUT ip&amp;quot;  --&amp;gt; IP of the device under test&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    3.6 For real QEMU edit local.conf. PATH: ~/poky/build/conf, at the en of the file adding:&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    &#039;&#039;&#039;For releases before 2.3 also add&#039;&#039;&#039;&lt;br /&gt;
    TEST_SUITES = &amp;quot; auto&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Remember to add the machine to local.conf for example:&#039;&#039;&#039;&lt;br /&gt;
    if genericx86 is needed, MACHINE ?= &amp;quot;genericx86&lt;br /&gt;
    if qemux86 is needed, MACHINE ?= &amp;quot;qemux86&lt;br /&gt;
&lt;br /&gt;
 4. Prepare the environment to execute test suite &lt;br /&gt;
    &lt;br /&gt;
    4.1 $bitbake rpm busybox run-postinsts&lt;br /&gt;
    4.2 $bitbake package-index&lt;br /&gt;
    4.3 Ensure that a folder is created, otherwise create it, under&lt;br /&gt;
        tmp/deploy/images/&amp;lt;MACHINE&amp;gt;, where &amp;lt;MACHINE&amp;gt; corresponds to the variable defined on&lt;br /&gt;
        local.conf on previous steps&lt;br /&gt;
    4.4 Paste artifacts downloaded on previously created folder &lt;br /&gt;
&lt;br /&gt;
 5. Execute the test suite&lt;br /&gt;
    &lt;br /&gt;
    5.1 $bitbake &amp;lt;IMAGE_TESTED&amp;gt; -c testimage&lt;br /&gt;
       &#039;&#039;&#039;example bitbake core-image-sato-sdk -c testimage -v&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 6. Verify that all test cases PASSED if not raise bugs properly &lt;br /&gt;
&lt;br /&gt;
 7. Update results to corresponding Testopia Test Run &lt;br /&gt;
    &#039;&#039;&#039;There is a script available to upload results form the log automatically on [[Qa-tools#Testopia_Update|QA-Tools]] and follow this example [[Qa-tools#Update_a_Test_Run_by_ID|Update TR by ID]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Bug Reporting==&lt;br /&gt;
&lt;br /&gt;
For correctly report the bugs follow the already defined steps here&lt;br /&gt;
&lt;br /&gt;
= Special Tests =&lt;br /&gt;
&lt;br /&gt;
There are 2 special test that also applied as BSP Components those are:&lt;br /&gt;
  &lt;br /&gt;
== pTest ==&lt;br /&gt;
&lt;br /&gt;
For detailed information about behavior and characteristics check [[Ptest]]&lt;br /&gt;
&lt;br /&gt;
=== Test Process ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1. Download pTest image from autobuilder( you can find core-image-sato-sdk image in pTest directory)&lt;br /&gt;
    * Test are applied on NUC with genericx86-64 &lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT (using legacy boot)&lt;br /&gt;
    Configure the network so it be able to work externally:&lt;br /&gt;
    - Export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command eg&lt;br /&gt;
      $ export http_proxy=http://&amp;lt;my_proxy&amp;gt;:&amp;lt;port&amp;gt;&lt;br /&gt;
    - And check if you have internet connection, typing on terminal:&lt;br /&gt;
      $ wget www.google.com&lt;br /&gt;
&lt;br /&gt;
 3. In command line type&lt;br /&gt;
    $ ptest-runner &amp;gt; ptest.log&lt;br /&gt;
      and wait for it to finish ( about 5 hours)&lt;br /&gt;
      &#039;&#039;&#039;Note:&#039;&#039;&#039; The &amp;quot;script&amp;quot; is already placed on the distro, you just have to type &#039;&#039;&#039;ptest&#039;&#039;&#039;...TAB and the terminal should autocomplete the command.&lt;br /&gt;
      and &amp;gt; &#039;&#039;&#039;ptest.log&#039;&#039;&#039;, in order to save the test results in that file.&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process ===&lt;br /&gt;
&lt;br /&gt;
1. Generate the report of pTests as follows: &lt;br /&gt;
     1.1 Get the log from the DUT.&lt;br /&gt;
     1.2 Go to the [[Ptest/archive]] page and check the previous execution to this release.&lt;br /&gt;
     1.3 Go the the report of the execution and download the log.&lt;br /&gt;
     1.4 Use the [[Qa-tools#Ptest_Parser|ptest-parser]] script to generate the report, this script generates a file called &amp;lt;release&amp;gt;wiki.page.&lt;br /&gt;
     1.5 Create a wiki with the name &#039;&#039;&#039;Ptest &amp;lt;commit&amp;gt;_&amp;lt;release-tested&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
     1.6 Copy the content of the content of &#039;&#039;&#039;&amp;lt;release&amp;gt;wiki.page&#039;&#039;&#039; and paste it on new wiki created.&lt;br /&gt;
     1.7 Upload the log of current execution and update the recent created wiki with the link to the log.&lt;br /&gt;
     1.8 Check the packages that had regression on pass rate [[File:down_rate.png|15px]] and if there is a bug reported update the bug with comments that still present &lt;br /&gt;
         on current commit, if there is no bug created raise a new one.&lt;br /&gt;
     1.9 Update the [[Ptest/archive]] wiki with the info of this new execution.&lt;br /&gt;
&lt;br /&gt;
== Compliance ==&lt;br /&gt;
&lt;br /&gt;
In this section 3 Test suites are executed on a NUC HW with core-image-sato-sdk-generixc86-64 image booted.&lt;br /&gt;
&lt;br /&gt;
*LSB tests&lt;br /&gt;
*POSIX tests&lt;br /&gt;
*LTP tests&lt;br /&gt;
&lt;br /&gt;
=== Test Process  ===&lt;br /&gt;
 1. Download lsb image from autobuilder( same image as in LSB automated testing for genericx86-64-lsb bsp)&lt;br /&gt;
    * we test compliance on NUC with genericx86-64-lsb, core-image-lsb-sdk&lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT&lt;br /&gt;
&lt;br /&gt;
 3. Configure the network so it be able to work externally:&lt;br /&gt;
    * edit /etc/resolv.conf and add the gateway ip_address&lt;br /&gt;
    * add the ip and netmask using &amp;quot;ifconfig&amp;quot; command&lt;br /&gt;
    * add the route using &amp;quot;route add default gw &amp;lt;ip_address&amp;gt;&amp;quot; &lt;br /&gt;
    * export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command&lt;br /&gt;
      : there is a bug and if you make these steps in another order than above, it may be possible not work&lt;br /&gt;
&lt;br /&gt;
  4. Copy &amp;quot;compliance_test.py&amp;quot; script on DUT&lt;br /&gt;
     script can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=cagurida/compliance here]&lt;br /&gt;
&lt;br /&gt;
  5. Make sure that your network connection is working&lt;br /&gt;
&lt;br /&gt;
  6. Run the script like this:&lt;br /&gt;
    * make the script executable: &amp;quot;chmod a+x compliance_local.py&amp;quot;&lt;br /&gt;
    * run in command line the following command &amp;quot;./compliance_test.py &amp;lt;milestone&amp;gt; &amp;lt;date&amp;gt;&amp;quot;&lt;br /&gt;
    * wait until &amp;quot;Configuration done. LSB script must be started from machine.&amp;quot; in command line( about 8-12 hours)&lt;br /&gt;
&lt;br /&gt;
  7. Run &amp;quot;LSB_test.sh&amp;quot; via ssh or manually and wait for it to finish( about a day)&lt;br /&gt;
&lt;br /&gt;
  8. Get the logs from DUT:&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fulllog&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.log&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fail&lt;br /&gt;
    - posix.log (can be found in: /opt/ltp/testcases/open_posix_testsuite)&lt;br /&gt;
      -  the three others are found in /opt/ltp directory, in output, temp, result folders . The logs need to be sent to [[yi.zhao@windriver.com]] specifying the v &lt;br /&gt;
         version and the type of image&lt;br /&gt;
    - in /var/opt/lsb/test/manager/results/x86.../x86....tar.gz (you can find it with auto-complete(tab) easily)&lt;br /&gt;
      -- it has like 18 Mb&lt;br /&gt;
      -- upload this file on drive and send the link to [[hongxu.jia@windriver.com]] and [[mark.hatle@windriver.com]]&lt;br /&gt;
      -- also I&#039;ll fwd an email to see how it looks&lt;br /&gt;
&lt;br /&gt;
  9. Put the tests from Testopia - Runtime test run on passed&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To Be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Add New Tests =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test Approach=&lt;br /&gt;
&lt;br /&gt;
=Test Matrix=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yocto QA Cycle&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;!-- The table can be edited with this tool : http://www.tablesgenerator.com/mediawiki_tables --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! linux-yocto&lt;br /&gt;
! Image-type&lt;br /&gt;
! AUTO&lt;br /&gt;
! MANUAL&lt;br /&gt;
! Compliance&lt;br /&gt;
! pTest&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (x86)&#039;&#039;&#039;&lt;br /&gt;
| Big Core&lt;br /&gt;
| MinwMax 32bit&lt;br /&gt;
| genericx86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| MinwMax 64bit&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NUC&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemux86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemux86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (n-x86)&#039;&#039;&#039;&lt;br /&gt;
| MIPS&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| PPC&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| ARM&lt;br /&gt;
| Beaglebone Black&lt;br /&gt;
| beaglebone&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemuarm&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuarm64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuppc&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meta-Intel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! Image-type&lt;br /&gt;
! Auto&lt;br /&gt;
! Manual&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | meta-intel&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; | Big Core&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 64bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | NUC&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | CherryHill&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Joule&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#ff0000&amp;quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | core2-32&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | meta-intel-quark 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | intel-quark&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Not Tested=&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33118</id>
		<title>BSP Test Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=33118"/>
		<updated>2017-11-10T17:43:37Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* About BSP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About BSP  =&lt;br /&gt;
&lt;br /&gt;
A Board Support Package (BSP) is the collection of software and data that allows an operating system to run in a specific hardware. It contains the drivers, routines and information that defines how to support a particular hardware device, set of devices, or hardware platform.&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
&lt;br /&gt;
Verify different supported images generated by Yocto Project build system on main AB, manual and automated test are applied in both physical HW and emulated with qemu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Member&#039;&#039;&#039;&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border:0.05pt solid #000000;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Team&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | José Pérez Carranza&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Oscar Lopez Arandas &lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Yi Zaho&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Wind River &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types of Tests &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* Automated test on different platforms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Platforms, type of images and type of tests are showed detailed on BSP Test Matrix. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features tested&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Manual Tests&lt;br /&gt;
** Boot image &lt;br /&gt;
** Install Image &lt;br /&gt;
** Multimedia&lt;br /&gt;
** Graphical interface components &lt;br /&gt;
** System reboot and shutdown recovery and standby &lt;br /&gt;
** X server tests &lt;br /&gt;
** rpm packages &lt;br /&gt;
** File system (reading/writing)&lt;br /&gt;
** Mont / Umont &lt;br /&gt;
** Network&lt;br /&gt;
&lt;br /&gt;
All test cases can be found here &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Automated Tests &lt;br /&gt;
** buildcpio&lt;br /&gt;
** buildgalculator&lt;br /&gt;
** buildlzip&lt;br /&gt;
** connman&lt;br /&gt;
** date&lt;br /&gt;
** df&lt;br /&gt;
** dnf&lt;br /&gt;
** gcc&lt;br /&gt;
** kernelmodule&lt;br /&gt;
** ldd&lt;br /&gt;
** logrotate&lt;br /&gt;
** multilib&lt;br /&gt;
** oe_syslog&lt;br /&gt;
** pam&lt;br /&gt;
** parselogs&lt;br /&gt;
** perl&lt;br /&gt;
** ping&lt;br /&gt;
** ptest&lt;br /&gt;
** python&lt;br /&gt;
** rpm&lt;br /&gt;
** scanelf&lt;br /&gt;
** scp&lt;br /&gt;
** skeletoninit&lt;br /&gt;
** ssh&lt;br /&gt;
** systemd&lt;br /&gt;
** x32lib&lt;br /&gt;
** xorg&lt;br /&gt;
&lt;br /&gt;
full code of this automated test are on poky repo under meta/lib/oeqa/runtime/cases &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy  =&lt;br /&gt;
&lt;br /&gt;
As mentioned below there are 2 types of test Automated an Manual tests, below a description of how those test are applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Manual==&lt;br /&gt;
&lt;br /&gt;
Test cases executed fully manually on real HW and on a qemu instance, these tests are focused on user scenarios using the image and also ensuring that graphical interface and multimedia are properly working on the image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automated Tests==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test cases execute automatically used testimage suite as well as 2 special test called pTest and Compliance, these tests are written in Python using oeqa framework and check different content and packages behavior of the booted image by a series of commands executed by a ssh communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
 1. Download Artifacts &lt;br /&gt;
    there are 2 links available from Public AutoBuilder to download images &lt;br /&gt;
       http://autobuilder.yoctoproject.org/pub/releases/&lt;br /&gt;
       https://autobuilder.yocto.io/pub/releases/&lt;br /&gt;
     &lt;br /&gt;
    Artifacts to be downloaded are: &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Real HW&#039;&#039;&#039;&lt;br /&gt;
    under folder machines/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.hhddimg&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic.bmap&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
    &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-genericx86.*&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;QEMU&#039;&#039;&#039;&lt;br /&gt;
    under folder machines/qemu/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
    - &amp;lt;BZIMAGE&amp;gt;.bin&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.ext4&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.qemuboot.conf&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
    &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-qemux86.*&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 2. For Manual Test Cases:&lt;br /&gt;
   &lt;br /&gt;
   2.1 - Go to the proper Test Run assigned on the execution and start executing test cases  &lt;br /&gt;
&lt;br /&gt;
 3. For automated Test Cases&lt;br /&gt;
    &lt;br /&gt;
    3.1 Clone poky repo $git clone git://git.yoctoproject.org/poky&amp;quot;&lt;br /&gt;
    3.2 $cd poky &lt;br /&gt;
    3.3 Checkout to the commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
    3.4 $source oe-init-build-env&lt;br /&gt;
    3.5 For real HW edit local.conf. PATH: ~/poky/build/conf, at the en of the file adding: &lt;br /&gt;
        &#039;&#039;&#039;Install / Boot the image on the DUT and check the IP&#039;&#039;&#039;&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        TEST_TARGET = &amp;quot;simpleremote&amp;quot;&lt;br /&gt;
        TEST_SERVER_IP = &amp;quot;HOST ip&amp;quot; --&amp;gt; IP of the machine being used to launch tests&lt;br /&gt;
        TEST_TARGET_IP = &amp;quot;DUT ip&amp;quot;  --&amp;gt; IP of the device under test&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    3.6 For real QEMU edit local.conf. PATH: ~/poky/build/conf, at the en of the file adding:&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    &#039;&#039;&#039;For releases before 2.3 also add&#039;&#039;&#039;&lt;br /&gt;
    TEST_SUITES = &amp;quot; auto&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Remember to add the machine to local.conf for example:&#039;&#039;&#039;&lt;br /&gt;
    if genericx86 is needed, MACHINE ?= &amp;quot;genericx86&lt;br /&gt;
    if qemux86 is needed, MACHINE ?= &amp;quot;qemux86&lt;br /&gt;
&lt;br /&gt;
 4. Prepare the environment to execute test suite &lt;br /&gt;
    &lt;br /&gt;
    4.1 $bitbake rpm busybox run-postinsts&lt;br /&gt;
    4.2 $bitbake package-index&lt;br /&gt;
    4.3 Ensure that a folder is created, otherwise create it, under&lt;br /&gt;
        tmp/deploy/images/&amp;lt;MACHINE&amp;gt;, where &amp;lt;MACHINE&amp;gt; corresponds to the variable defined on&lt;br /&gt;
        local.conf on previous steps&lt;br /&gt;
    4.4 Paste artifacts downloaded on previously created folder &lt;br /&gt;
&lt;br /&gt;
 5. Execute the test suite&lt;br /&gt;
    &lt;br /&gt;
    5.1 $bitbake &amp;lt;IMAGE_TESTED&amp;gt; -c testimage&lt;br /&gt;
       &#039;&#039;&#039;example bitbake core-image-sato-sdk -c testimage -v&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 6. Verify that all test cases PASSED if not raise bugs properly &lt;br /&gt;
&lt;br /&gt;
 7. Update results to corresponding Testopia Test Run &lt;br /&gt;
    &#039;&#039;&#039;There is a script available to upload results form the log automatically on [[Qa-tools#Testopia_Update|QA-Tools]] and follow this example [[Qa-tools#Update_a_Test_Run_by_ID|Update TR by ID]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Bug Reporting==&lt;br /&gt;
&lt;br /&gt;
For correctly report the bugs follow the already defined steps here&lt;br /&gt;
&lt;br /&gt;
= Special Tests =&lt;br /&gt;
&lt;br /&gt;
There are 2 special test that also applied as BSP Components those are:&lt;br /&gt;
  &lt;br /&gt;
== pTest ==&lt;br /&gt;
&lt;br /&gt;
For detailed information about behavior and characteristics check [[Ptest]]&lt;br /&gt;
&lt;br /&gt;
=== Test Process ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1. Download pTest image from autobuilder( you can find core-image-sato-sdk image in pTest directory)&lt;br /&gt;
    * Test are applied on NUC with genericx86-64 &lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT (using legacy boot)&lt;br /&gt;
    Configure the network so it be able to work externally:&lt;br /&gt;
    - Export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command eg&lt;br /&gt;
      $ export http_proxy=http://&amp;lt;my_proxy&amp;gt;:&amp;lt;port&amp;gt;&lt;br /&gt;
    - And check if you have internet connection, typing on terminal:&lt;br /&gt;
      $ wget www.google.com&lt;br /&gt;
&lt;br /&gt;
 3. In command line type&lt;br /&gt;
    $ ptest-runner &amp;gt; ptest.log&lt;br /&gt;
      and wait for it to finish ( about 5 hours)&lt;br /&gt;
      &#039;&#039;&#039;Note:&#039;&#039;&#039; The &amp;quot;script&amp;quot; is already placed on the distro, you just have to type &#039;&#039;&#039;ptest&#039;&#039;&#039;...TAB and the terminal should autocomplete the command.&lt;br /&gt;
      and &amp;gt; &#039;&#039;&#039;ptest.log&#039;&#039;&#039;, in order to save the test results in that file.&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process ===&lt;br /&gt;
&lt;br /&gt;
1. Generate the report of pTests as follows: &lt;br /&gt;
     1.1 Get the log from the DUT.&lt;br /&gt;
     1.2 Go to the [[Ptest/archive]] page and check the previous execution to this release.&lt;br /&gt;
     1.3 Go the the report of the execution and download the log.&lt;br /&gt;
     1.4 Use the [[Qa-tools#Ptest_Parser|ptest-parser]] script to generate the report, this script generates a file called &amp;lt;release&amp;gt;wiki.page.&lt;br /&gt;
     1.5 Create a wiki with the name &#039;&#039;&#039;Ptest &amp;lt;commit&amp;gt;_&amp;lt;release-tested&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
     1.6 Copy the content of the content of &#039;&#039;&#039;&amp;lt;release&amp;gt;wiki.page&#039;&#039;&#039; and paste it on new wiki created.&lt;br /&gt;
     1.7 Upload the log of current execution and update the recent created wiki with the link to the log.&lt;br /&gt;
     1.8 Check the packages that had regression on pass rate [[File:down_rate.png|15px]] and if there is a bug reported update the bug with comments that still present &lt;br /&gt;
         on current commit, if there is no bug created raise a new one.&lt;br /&gt;
     1.9 Update the [[Ptest/archive]] wiki with the info of this new execution.&lt;br /&gt;
&lt;br /&gt;
== Compliance ==&lt;br /&gt;
&lt;br /&gt;
In this section 3 Test suites are executed on a NUC HW with core-image-sato-sdk-generixc86-64 image booted.&lt;br /&gt;
&lt;br /&gt;
*LSB tests&lt;br /&gt;
*POSIX tests&lt;br /&gt;
*LTP tests&lt;br /&gt;
&lt;br /&gt;
=== Test Process  ===&lt;br /&gt;
 1. Download lsb image from autobuilder( same image as in LSB automated testing for genericx86-64-lsb bsp)&lt;br /&gt;
    * we test compliance on NUC with genericx86-64-lsb, core-image-lsb-sdk&lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT&lt;br /&gt;
&lt;br /&gt;
 3. Configure the network so it be able to work externally:&lt;br /&gt;
    * edit /etc/resolv.conf and add the gateway ip_address&lt;br /&gt;
    * add the ip and netmask using &amp;quot;ifconfig&amp;quot; command&lt;br /&gt;
    * add the route using &amp;quot;route add default gw &amp;lt;ip_address&amp;gt;&amp;quot; &lt;br /&gt;
    * export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command&lt;br /&gt;
      : there is a bug and if you make these steps in another order than above, it may be possible not work&lt;br /&gt;
&lt;br /&gt;
  4. Copy &amp;quot;compliance_test.py&amp;quot; script on DUT&lt;br /&gt;
     script can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=cagurida/compliance here]&lt;br /&gt;
&lt;br /&gt;
  5. Make sure that your network connection is working&lt;br /&gt;
&lt;br /&gt;
  6. Run the script like this:&lt;br /&gt;
    * make the script executable: &amp;quot;chmod a+x compliance_local.py&amp;quot;&lt;br /&gt;
    * run in command line the following command &amp;quot;./compliance_test.py &amp;lt;milestone&amp;gt; &amp;lt;date&amp;gt;&amp;quot;&lt;br /&gt;
    * wait until &amp;quot;Configuration done. LSB script must be started from machine.&amp;quot; in command line( about 8-12 hours)&lt;br /&gt;
&lt;br /&gt;
  7. Run &amp;quot;LSB_test.sh&amp;quot; via ssh or manually and wait for it to finish( about a day)&lt;br /&gt;
&lt;br /&gt;
  8. Get the logs from DUT:&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fulllog&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.log&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fail&lt;br /&gt;
    - posix.log (can be found in: /opt/ltp/testcases/open_posix_testsuite)&lt;br /&gt;
      -  the three others are found in /opt/ltp directory, in output, temp, result folders . The logs need to be sent to [[yi.zhao@windriver.com]] specifying the v &lt;br /&gt;
         version and the type of image&lt;br /&gt;
    - in /var/opt/lsb/test/manager/results/x86.../x86....tar.gz (you can find it with auto-complete(tab) easily)&lt;br /&gt;
      -- it has like 18 Mb&lt;br /&gt;
      -- upload this file on drive and send the link to [[hongxu.jia@windriver.com]] and [[mark.hatle@windriver.com]]&lt;br /&gt;
      -- also I&#039;ll fwd an email to see how it looks&lt;br /&gt;
&lt;br /&gt;
  9. Put the tests from Testopia - Runtime test run on passed&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To Be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Add New Tests =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test Approach=&lt;br /&gt;
&lt;br /&gt;
=Test Matrix=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yocto QA Cycle&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;!-- The table can be edited with this tool : http://www.tablesgenerator.com/mediawiki_tables --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! linux-yocto&lt;br /&gt;
! Image-type&lt;br /&gt;
! AUTO&lt;br /&gt;
! MANUAL&lt;br /&gt;
! Compliance&lt;br /&gt;
! pTest&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (x86)&#039;&#039;&#039;&lt;br /&gt;
| Big Core&lt;br /&gt;
| MinwMax 32bit&lt;br /&gt;
| genericx86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| MinwMax 64bit&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NUC&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemux86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemux86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (n-x86)&#039;&#039;&#039;&lt;br /&gt;
| MIPS&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| PPC&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| ARM&lt;br /&gt;
| Beaglebone Black&lt;br /&gt;
| beaglebone&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemuarm&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuarm64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuppc&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meta-Intel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! Image-type&lt;br /&gt;
! Auto&lt;br /&gt;
! Manual&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | meta-intel&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; | Big Core&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 64bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | NUC&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | CherryHill&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Joule&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#ff0000&amp;quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | core2-32&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | meta-intel-quark 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | intel-quark&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Not Tested=&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32913</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32913"/>
		<updated>2017-11-06T21:35:39Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Test execution Cycle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is the test plan for kernel development features in Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==About Kernel Development==&lt;br /&gt;
&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using kernel tools, and shows you how to use the metadata required to work with the kernel. &lt;br /&gt;
For more information you can review the [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development manual].&lt;br /&gt;
&lt;br /&gt;
==Objectives==&lt;br /&gt;
Verify all kernel development components are fully functional.&lt;br /&gt;
&lt;br /&gt;
==Team members==&lt;br /&gt;
QA team members involved in Kernel Development testing:&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez]&lt;br /&gt;
&lt;br /&gt;
==Scope==&lt;br /&gt;
&lt;br /&gt;
===Types of Tests===&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* No automated tests at the moment&lt;br /&gt;
&lt;br /&gt;
===Features Tested===&lt;br /&gt;
: 1. linux-yocto-custom&lt;br /&gt;
:: 1.1 local source&lt;br /&gt;
:: 1.2 local source with parallel meta&lt;br /&gt;
:: 1.3 local source with recipe-space meta&lt;br /&gt;
: 2. External Source&lt;br /&gt;
: 3. defconfig&lt;br /&gt;
: 4. defconfig + fragments&lt;br /&gt;
: 5. linux-yocto meta data + local fragments (WIP)&lt;br /&gt;
: 6. building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
The complete set of test cases are documented on the [[Kernel Development Test Cases]] wiki. They are also listed on the master Kernel test plan in Testopia, that can be reached following this [https://bugzilla.yoctoproject.org/tr_show_run.cgi?run_id=7435 link].&lt;br /&gt;
&lt;br /&gt;
==Test Strategy==&lt;br /&gt;
There are several test approaches for kernel development, such as:&lt;br /&gt;
* Perform test cases agreed upon development during periodic full pass test cycles, according to the schedule.&lt;br /&gt;
* Write new test cases based on developer requests or new features added, as required.&lt;br /&gt;
* Maintain current test cases and update them according to changes.&lt;br /&gt;
* Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
===Test automation===&lt;br /&gt;
Tests will be gradually automated, after determining the feasibility to do so following discussions with the development team.&lt;br /&gt;
&lt;br /&gt;
===Sanity testing===&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following discussions with the development team&lt;br /&gt;
&lt;br /&gt;
===Test Process===&lt;br /&gt;
&lt;br /&gt;
: 1. Follow the steps as indicated on the [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
: 2. Verify that all test cases pass. If not, raise bugs properly.&lt;br /&gt;
: 3. Update results to corresponding Testopia test run.&lt;br /&gt;
&lt;br /&gt;
===Submitting Bugs===&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different than other Yocto Project bugs and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
Use cases are documented in the corresponding section for each test case on [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
&lt;br /&gt;
===HW Requirements===&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
===Software Requirements===&lt;br /&gt;
* Poky&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
===Environment Requirements===&lt;br /&gt;
*YP 2.3 Release:&lt;br /&gt;
*Ubuntu-14.04&lt;br /&gt;
*Ubuntu-14.10&lt;br /&gt;
*Ubuntu-15.04&lt;br /&gt;
*Fedora-21&lt;br /&gt;
*CentOS-6.*&lt;br /&gt;
*CentOS-7.*&lt;br /&gt;
*Debian-7.*&lt;br /&gt;
*Debian-8.*&lt;br /&gt;
*openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
==Schedule==&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
===Test execution Cycle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| TBD&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Dependencies==&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest layer&lt;br /&gt;
&lt;br /&gt;
==Risk Assumptions==&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration files in order to achieve a correct execution.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
* bitbake&lt;br /&gt;
* yocto-layer&lt;br /&gt;
* bitbake-layers&lt;br /&gt;
* any available text editor&lt;br /&gt;
&lt;br /&gt;
==Release Criteria/ Exit Criteria==&lt;br /&gt;
* All test cases pass.&lt;br /&gt;
* No blocking issues are found.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32664</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32664"/>
		<updated>2017-10-25T17:42:42Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Features Tested */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is the test plan for kernel development features in Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==About Kernel Development==&lt;br /&gt;
&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using kernel tools, and shows you how to use the metadata required to work with the kernel. &lt;br /&gt;
For more information you can review the [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development manual].&lt;br /&gt;
&lt;br /&gt;
==Objectives==&lt;br /&gt;
Verify all kernel development components are fully functional.&lt;br /&gt;
&lt;br /&gt;
==Team members==&lt;br /&gt;
QA team members involved in Kernel Development testing:&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez]&lt;br /&gt;
&lt;br /&gt;
==Scope==&lt;br /&gt;
&lt;br /&gt;
===Types of Tests===&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* No automated tests at the moment&lt;br /&gt;
&lt;br /&gt;
===Features Tested===&lt;br /&gt;
: 1. linux-yocto-custom&lt;br /&gt;
:: 1.1 local source&lt;br /&gt;
:: 1.2 local source with parallel meta&lt;br /&gt;
:: 1.3 local source with recipe-space meta&lt;br /&gt;
: 2. External Source&lt;br /&gt;
: 3. defconfig&lt;br /&gt;
: 4. defconfig + fragments&lt;br /&gt;
: 5. linux-yocto meta data + local fragments (WIP)&lt;br /&gt;
: 6. building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
The complete set of test cases are documented on the [[Kernel Development Test Cases]] wiki. They are also listed on the master Kernel test plan in Testopia, that can be reached following this [https://bugzilla.yoctoproject.org/tr_show_run.cgi?run_id=7435 link].&lt;br /&gt;
&lt;br /&gt;
==Test Strategy==&lt;br /&gt;
There are several test approaches for kernel development, such as:&lt;br /&gt;
* Perform test cases agreed upon development during periodic full pass test cycles, according to the schedule.&lt;br /&gt;
* Write new test cases based on developer requests or new features added, as required.&lt;br /&gt;
* Maintain current test cases and update them according to changes.&lt;br /&gt;
* Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
===Test automation===&lt;br /&gt;
Tests will be gradually automated, after determining the feasibility to do so following discussions with the development team.&lt;br /&gt;
&lt;br /&gt;
===Sanity testing===&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following discussions with the development team&lt;br /&gt;
&lt;br /&gt;
===Test Process===&lt;br /&gt;
&lt;br /&gt;
: 1. Follow the steps as indicated on the [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
: 2. Verify that all test cases pass. If not, raise bugs properly.&lt;br /&gt;
: 3. Update results to corresponding Testopia test run.&lt;br /&gt;
&lt;br /&gt;
===Submitting Bugs===&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different than other Yocto Project bugs and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
Use cases are documented in the corresponding section for each test case on [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
&lt;br /&gt;
===HW Requirements===&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
===Software Requirements===&lt;br /&gt;
* Poky&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
===Environment Requirements===&lt;br /&gt;
*YP 2.3 Release:&lt;br /&gt;
*Ubuntu-14.04&lt;br /&gt;
*Ubuntu-14.10&lt;br /&gt;
*Ubuntu-15.04&lt;br /&gt;
*Fedora-21&lt;br /&gt;
*CentOS-6.*&lt;br /&gt;
*CentOS-7.*&lt;br /&gt;
*Debian-7.*&lt;br /&gt;
*Debian-8.*&lt;br /&gt;
*openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
==Schedule==&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
===Test execution Cycle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Dependencies==&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest layer&lt;br /&gt;
&lt;br /&gt;
==Risk Assumptions==&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration files in order to achieve a correct execution.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
* bitbake&lt;br /&gt;
* yocto-layer&lt;br /&gt;
* bitbake-layers&lt;br /&gt;
* any available text editor&lt;br /&gt;
&lt;br /&gt;
==Release Criteria/ Exit Criteria==&lt;br /&gt;
* All test cases pass.&lt;br /&gt;
* No blocking issues are found.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32663</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32663"/>
		<updated>2017-10-25T17:41:50Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Document Conventions==&lt;br /&gt;
:1. In command and configuration snippets that exist on the rest of the document, words or short phrases that appear in uppercase letters and enclosed on square brackets (for example, [VERSION]) are placeholders that need to be manually replaced by their correct value, depending on the context.&lt;br /&gt;
: 2. In command snippets, the dollar symbol and subsequent space at the beginning of the line indicates the command line prompt. This two characters should not be used when entering the command.&lt;br /&gt;
: 3. Other characters should be left as they appear on command or configuration sentences.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
:: To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 6. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep PREFERRED_PROVIDER_virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables are set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Unset the git proxy environment variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Set the git proxy environment variable to its previous value, or close and reopen the terminal.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using QEMU:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the QEMU terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the QEMU terminal.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32662</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32662"/>
		<updated>2017-10-25T17:41:04Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Expected Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Document Conventions==&lt;br /&gt;
:1. In command and configuration snippets that exist on the rest of the document, words or short phrases that appear in uppercase letters and enclosed on square brackets (for example, [VERSION]) are placeholders that need to be manually replaced by their correct value, depending on the context.&lt;br /&gt;
: 2. In command snippets, the dollar symbol and subsequent space at the beginning of the line indicates the command line prompt. This two characters should not be used when entering the command.&lt;br /&gt;
: 3. Other characters should be left as they appear on command or configuration sentences.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
:: To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 6. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep PREFERRED_PROVIDER_virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables are set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Unset the git proxy environment variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Set the git proxy environment variable to its previous value, or close and reopen the terminal.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using qemu:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the QEMU terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the QEMU terminal.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32661</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32661"/>
		<updated>2017-10-25T17:39:14Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Expected Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Document Conventions==&lt;br /&gt;
:1. In command and configuration snippets that exist on the rest of the document, words or short phrases that appear in uppercase letters and enclosed on square brackets (for example, [VERSION]) are placeholders that need to be manually replaced by their correct value, depending on the context.&lt;br /&gt;
: 2. In command snippets, the dollar symbol and subsequent space at the beginning of the line indicates the command line prompt. This two characters should not be used when entering the command.&lt;br /&gt;
: 3. Other characters should be left as they appear on command or configuration sentences.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
:: To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 6. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep PREFERRED_PROVIDER_virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables are set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Unset the git proxy environment variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Set the git proxy environment variable to its previous value, or close and reopen the terminal.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using qemu:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the qemu terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the qemu terminal.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32660</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32660"/>
		<updated>2017-10-25T17:28:20Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is the test plan for kernel development features in Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==About Kernel Development==&lt;br /&gt;
&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using kernel tools, and shows you how to use the metadata required to work with the kernel. &lt;br /&gt;
For more information you can review the [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development manual].&lt;br /&gt;
&lt;br /&gt;
==Objectives==&lt;br /&gt;
Verify all kernel development components are fully functional.&lt;br /&gt;
&lt;br /&gt;
==Team members==&lt;br /&gt;
QA team members involved in Kernel Development testing:&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez]&lt;br /&gt;
&lt;br /&gt;
==Scope==&lt;br /&gt;
&lt;br /&gt;
===Types of Tests===&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* No automated tests at the moment&lt;br /&gt;
&lt;br /&gt;
===Features Tested===&lt;br /&gt;
: 1. linux-yocto-custom&lt;br /&gt;
:: 1.1 local source&lt;br /&gt;
:: 1.2 local source with parallel meta&lt;br /&gt;
:: 1.3 local source with recipe-space meta&lt;br /&gt;
: 2. External Source&lt;br /&gt;
: 3. defconfig&lt;br /&gt;
: 4. defconfig + fragments&lt;br /&gt;
: 5. linux-yocto meta data + local fragments (WIP)&lt;br /&gt;
: 6. building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
The complete set of test cases are documented on the [[Kernel Development Test Cases]] wiki. They are also listed on the master Kernel test plan in Testopia, that can be reached following this [https://bugzilla.yoctoproject.org/tr_show_plan.cgi?plan_id=94 link].&lt;br /&gt;
&lt;br /&gt;
==Test Strategy==&lt;br /&gt;
There are several test approaches for kernel development, such as:&lt;br /&gt;
* Perform test cases agreed upon development during periodic full pass test cycles, according to the schedule.&lt;br /&gt;
* Write new test cases based on developer requests or new features added, as required.&lt;br /&gt;
* Maintain current test cases and update them according to changes.&lt;br /&gt;
* Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
===Test automation===&lt;br /&gt;
Tests will be gradually automated, after determining the feasibility to do so following discussions with the development team.&lt;br /&gt;
&lt;br /&gt;
===Sanity testing===&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following discussions with the development team&lt;br /&gt;
&lt;br /&gt;
===Test Process===&lt;br /&gt;
&lt;br /&gt;
: 1. Follow the steps as indicated on the [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
: 2. Verify that all test cases pass. If not, raise bugs properly.&lt;br /&gt;
: 3. Update results to corresponding Testopia test run.&lt;br /&gt;
&lt;br /&gt;
===Submitting Bugs===&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different than other Yocto Project bugs and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
Use cases are documented in the corresponding section for each test case on [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
&lt;br /&gt;
===HW Requirements===&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
===Software Requirements===&lt;br /&gt;
* Poky&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
===Environment Requirements===&lt;br /&gt;
*YP 2.3 Release:&lt;br /&gt;
*Ubuntu-14.04&lt;br /&gt;
*Ubuntu-14.10&lt;br /&gt;
*Ubuntu-15.04&lt;br /&gt;
*Fedora-21&lt;br /&gt;
*CentOS-6.*&lt;br /&gt;
*CentOS-7.*&lt;br /&gt;
*Debian-7.*&lt;br /&gt;
*Debian-8.*&lt;br /&gt;
*openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
==Schedule==&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
===Test execution Cycle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Dependencies==&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest layer&lt;br /&gt;
&lt;br /&gt;
==Risk Assumptions==&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration files in order to achieve a correct execution.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
* bitbake&lt;br /&gt;
* yocto-layer&lt;br /&gt;
* bitbake-layers&lt;br /&gt;
* any available text editor&lt;br /&gt;
&lt;br /&gt;
==Release Criteria/ Exit Criteria==&lt;br /&gt;
* All test cases pass.&lt;br /&gt;
* No blocking issues are found.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=32659</id>
		<title>BSP Test Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BSP_Test_Plan&amp;diff=32659"/>
		<updated>2017-10-25T17:25:56Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About BSP  =&lt;br /&gt;
&lt;br /&gt;
A Board Support Package (BSP) is a collection of information that defines how to support a particular hardware device, set of devices, or hardware platform.&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
&lt;br /&gt;
Verify different supported images generated by Yocto Project build system on main AB, manual and automated test are applied in both physical HW and emulated with qemu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Member&#039;&#039;&#039;&lt;br /&gt;
| align=center style=&amp;quot;background-color:#0000cc;border:0.05pt solid #000000;padding:0.0382in;color:#ffffff;&amp;quot; | &#039;&#039;&#039;Team&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | José Pérez Carranza&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Oscar Lopez Arandas &lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Intel &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;margin:auto;width:6.925in;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;&amp;quot; | Yi Zaho&lt;br /&gt;
| style=&amp;quot;border:0.05pt solid #000000;padding:0.0382in;&amp;quot; | Wind River &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types of Tests &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* Automated test on different platforms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Platforms, type of images and type of tests are showed detailed on BSP Test Matrix. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features tested&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Manual Tests&lt;br /&gt;
** Boot image &lt;br /&gt;
** Install Image &lt;br /&gt;
** Multimedia&lt;br /&gt;
** Graphical interface components &lt;br /&gt;
** System reboot and shutdown recovery and standby &lt;br /&gt;
** X server tests &lt;br /&gt;
** rpm packages &lt;br /&gt;
** File system (reading/writing)&lt;br /&gt;
** Mont / Umont &lt;br /&gt;
** Network&lt;br /&gt;
&lt;br /&gt;
All test cases can be found here &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Automated Tests &lt;br /&gt;
** buildcpio&lt;br /&gt;
** buildgalculator&lt;br /&gt;
** buildlzip&lt;br /&gt;
** connman&lt;br /&gt;
** date&lt;br /&gt;
** df&lt;br /&gt;
** dnf&lt;br /&gt;
** gcc&lt;br /&gt;
** kernelmodule&lt;br /&gt;
** ldd&lt;br /&gt;
** logrotate&lt;br /&gt;
** multilib&lt;br /&gt;
** oe_syslog&lt;br /&gt;
** pam&lt;br /&gt;
** parselogs&lt;br /&gt;
** perl&lt;br /&gt;
** ping&lt;br /&gt;
** ptest&lt;br /&gt;
** python&lt;br /&gt;
** rpm&lt;br /&gt;
** scanelf&lt;br /&gt;
** scp&lt;br /&gt;
** skeletoninit&lt;br /&gt;
** ssh&lt;br /&gt;
** systemd&lt;br /&gt;
** x32lib&lt;br /&gt;
** xorg&lt;br /&gt;
&lt;br /&gt;
full code of this automated test are on poky repo under meta/lib/oeqa/runtime/cases &amp;lt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy  =&lt;br /&gt;
&lt;br /&gt;
As mentioned below there are 2 types of test Automated an Manual tests, below a description of how those test are applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Manual==&lt;br /&gt;
&lt;br /&gt;
Test cases executed fully manually on real HW and on a qemu instance, these tests are focused on user scenarios using the image and also ensuring that graphical interface and multimedia are properly working on the image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automated Tests==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test cases execute automatically used testimage suite as well as 2 special test called pTest and Compliance, these tests are written in Python using oeqa framework and check different content and packages behavior of the booted image by a series of commands executed by a ssh communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
 1. Download Artifacts &lt;br /&gt;
    there are 2 links available from Public AutoBuilder to download images &lt;br /&gt;
       http://autobuilder.yoctoproject.org/pub/releases/&lt;br /&gt;
       https://autobuilder.yocto.io/pub/releases/&lt;br /&gt;
     &lt;br /&gt;
    Artifacts to be downloaded are: &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Real HW&#039;&#039;&#039;&lt;br /&gt;
    under folder machines/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.hhddimg&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.wic.bmap&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
    &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-genericx86.*&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;QEMU&#039;&#039;&#039;&lt;br /&gt;
    under folder machines/qemu/&amp;lt;MACHINE_UNDER_TEST&amp;gt;&lt;br /&gt;
    - &amp;lt;BZIMAGE&amp;gt;.bin&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.ext4&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.qemuboot.conf&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.manifest&lt;br /&gt;
    - &amp;lt;IMAGE_TO_BE_TESTED&amp;gt;.testdata.json&lt;br /&gt;
    &#039;&#039;&#039;example of &amp;lt;IMAGE_TO_BE_TESTED&amp;gt; name core-image-sato-sdk-qemux86.*&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 2. For Manual Test Cases:&lt;br /&gt;
   &lt;br /&gt;
   2.1 - Go to the proper Test Run assigned on the execution and start executing test cases  &lt;br /&gt;
&lt;br /&gt;
 3. For automated Test Cases&lt;br /&gt;
    &lt;br /&gt;
    3.1 Clone poky repo $git clone git://git.yoctoproject.org/poky&amp;quot;&lt;br /&gt;
    3.2 $cd poky &lt;br /&gt;
    3.3 Checkout to the commit specified on the release information $git checkout &amp;lt;commit-id&amp;gt;&lt;br /&gt;
    3.4 $source oe-init-build-env&lt;br /&gt;
    3.5 For real HW edit local.conf. PATH: ~/poky/build/conf, at the en of the file adding: &lt;br /&gt;
        &#039;&#039;&#039;Install / Boot the image on the DUT and check the IP&#039;&#039;&#039;&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        TEST_TARGET = &amp;quot;simpleremote&amp;quot;&lt;br /&gt;
        TEST_SERVER_IP = &amp;quot;HOST ip&amp;quot; --&amp;gt; IP of the machine being used to launch tests&lt;br /&gt;
        TEST_TARGET_IP = &amp;quot;DUT ip&amp;quot;  --&amp;gt; IP of the device under test&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    3.6 For real QEMU edit local.conf. PATH: ~/poky/build/conf, at the en of the file adding:&lt;br /&gt;
        INHERIT += &amp;quot;testimage&amp;quot;&lt;br /&gt;
        if image is LSB &lt;br /&gt;
        DISTRO ?= &amp;quot;poky-lsb&amp;quot;&lt;br /&gt;
    &#039;&#039;&#039;For releases before 2.3 also add&#039;&#039;&#039;&lt;br /&gt;
    TEST_SUITES = &amp;quot; auto&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
    &#039;&#039;&#039;Remember to add the machine to local.conf for example:&#039;&#039;&#039;&lt;br /&gt;
    if genericx86 is needed, MACHINE ?= &amp;quot;genericx86&lt;br /&gt;
    if qemux86 is needed, MACHINE ?= &amp;quot;qemux86&lt;br /&gt;
&lt;br /&gt;
 4. Prepare the environment to execute test suite &lt;br /&gt;
    &lt;br /&gt;
    4.1 $bitbake rpm busybox run-postinsts&lt;br /&gt;
    4.2 $bitbake package-index&lt;br /&gt;
    4.3 Ensure that a folder is created, otherwise create it, under&lt;br /&gt;
        tmp/deploy/images/&amp;lt;MACHINE&amp;gt;, where &amp;lt;MACHINE&amp;gt; corresponds to the variable defined on&lt;br /&gt;
        local.conf on previous steps&lt;br /&gt;
    4.4 Paste artifacts downloaded on previously created folder &lt;br /&gt;
&lt;br /&gt;
 5. Execute the test suite&lt;br /&gt;
    &lt;br /&gt;
    5.1 $bitbake &amp;lt;IMAGE_TESTED&amp;gt; -c testimage&lt;br /&gt;
       &#039;&#039;&#039;example bitbake core-image-sato-sdk -c testimage -v&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 6. Verify that all test cases PASSED if not raise bugs properly &lt;br /&gt;
&lt;br /&gt;
 7. Update results to corresponding Testopia Test Run &lt;br /&gt;
    &#039;&#039;&#039;There is a script available to upload results form the log automatically on [[Qa-tools#Testopia_Update|QA-Tools]] and follow this example [[Qa-tools#Update_a_Test_Run_by_ID|Update TR by ID]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Bug Reporting==&lt;br /&gt;
&lt;br /&gt;
For correctly report the bugs follow the already defined steps here&lt;br /&gt;
&lt;br /&gt;
= Special Tests =&lt;br /&gt;
&lt;br /&gt;
There are 2 special test that also applied as BSP Components those are:&lt;br /&gt;
  &lt;br /&gt;
== pTest ==&lt;br /&gt;
&lt;br /&gt;
For detailed information about behavior and characteristics check [[Ptest]]&lt;br /&gt;
&lt;br /&gt;
=== Test Process ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1. Download pTest image from autobuilder( you can find core-image-sato-sdk image in pTest directory)&lt;br /&gt;
    * Test are applied on NUC with genericx86-64 &lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT (using legacy boot)&lt;br /&gt;
    Configure the network so it be able to work externally:&lt;br /&gt;
    - Export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command eg&lt;br /&gt;
      $ export http_proxy=http://&amp;lt;my_proxy&amp;gt;:&amp;lt;port&amp;gt;&lt;br /&gt;
    - And check if you have internet connection, typing on terminal:&lt;br /&gt;
      $ wget www.google.com&lt;br /&gt;
&lt;br /&gt;
 3. In command line type&lt;br /&gt;
    $ ptest-runner &amp;gt; ptest.log&lt;br /&gt;
      and wait for it to finish ( about 5 hours)&lt;br /&gt;
      &#039;&#039;&#039;Note:&#039;&#039;&#039; The &amp;quot;script&amp;quot; is already placed on the distro, you just have to type &#039;&#039;&#039;ptest&#039;&#039;&#039;...TAB and the terminal should autocomplete the command.&lt;br /&gt;
      and &amp;gt; &#039;&#039;&#039;ptest.log&#039;&#039;&#039;, in order to save the test results in that file.&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process ===&lt;br /&gt;
&lt;br /&gt;
1. Generate the report of pTests as follows: &lt;br /&gt;
     1.1 Get the log from the DUT.&lt;br /&gt;
     1.2 Go to the [[Ptest/archive]] page and check the previous execution to this release.&lt;br /&gt;
     1.3 Go the the report of the execution and download the log.&lt;br /&gt;
     1.4 Use the [[Qa-tools#Ptest_Parser|ptest-parser]] script to generate the report, this script generates a file called &amp;lt;release&amp;gt;wiki.page.&lt;br /&gt;
     1.5 Create a wiki with the name &#039;&#039;&#039;Ptest &amp;lt;commit&amp;gt;_&amp;lt;release-tested&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
     1.6 Copy the content of the content of &#039;&#039;&#039;&amp;lt;release&amp;gt;wiki.page&#039;&#039;&#039; and paste it on new wiki created.&lt;br /&gt;
     1.7 Upload the log of current execution and update the recent created wiki with the link to the log.&lt;br /&gt;
     1.8 Check the packages that had regression on pass rate [[File:down_rate.png|15px]] and if there is a bug reported update the bug with comments that still present &lt;br /&gt;
         on current commit, if there is no bug created raise a new one.&lt;br /&gt;
     1.9 Update the [[Ptest/archive]] wiki with the info of this new execution.&lt;br /&gt;
&lt;br /&gt;
== Compliance ==&lt;br /&gt;
&lt;br /&gt;
In this section 3 Test suites are executed on a NUC HW with core-image-sato-sdk-generixc86-64 image booted.&lt;br /&gt;
&lt;br /&gt;
*LSB tests&lt;br /&gt;
*POSIX tests&lt;br /&gt;
*LTP tests&lt;br /&gt;
&lt;br /&gt;
=== Test Process  ===&lt;br /&gt;
 1. Download lsb image from autobuilder( same image as in LSB automated testing for genericx86-64-lsb bsp)&lt;br /&gt;
    * we test compliance on NUC with genericx86-64-lsb, core-image-lsb-sdk&lt;br /&gt;
&lt;br /&gt;
 2. Install the image on DUT&lt;br /&gt;
&lt;br /&gt;
 3. Configure the network so it be able to work externally:&lt;br /&gt;
    * edit /etc/resolv.conf and add the gateway ip_address&lt;br /&gt;
    * add the ip and netmask using &amp;quot;ifconfig&amp;quot; command&lt;br /&gt;
    * add the route using &amp;quot;route add default gw &amp;lt;ip_address&amp;gt;&amp;quot; &lt;br /&gt;
    * export the proxy using &amp;quot;export http_proxy=&amp;lt;add your proxy link&amp;gt;&amp;quot; command&lt;br /&gt;
      : there is a bug and if you make these steps in another order than above, it may be possible not work&lt;br /&gt;
&lt;br /&gt;
  4. Copy &amp;quot;compliance_test.py&amp;quot; script on DUT&lt;br /&gt;
&lt;br /&gt;
  5. Make sure that your network connection is working&lt;br /&gt;
&lt;br /&gt;
  6. Run the script like this:&lt;br /&gt;
    * make the script executable: &amp;quot;chmod a+x compliance_local.py&amp;quot;&lt;br /&gt;
    * run in command line the following command &amp;quot;./compliance_test.py &amp;lt;milestone&amp;gt; &amp;lt;date&amp;gt;&amp;quot;&lt;br /&gt;
    * wait until &amp;quot;Configuration done. LSB script must be started from machine.&amp;quot; in command line( about 8-12 hours)&lt;br /&gt;
&lt;br /&gt;
  7. Run &amp;quot;LSB_test.sh&amp;quot; via ssh or manually and wait for it to finish( about a day)&lt;br /&gt;
&lt;br /&gt;
  8. Get the logs from DUT:&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fulllog&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.log&lt;br /&gt;
    - result-&amp;lt;milestone&amp;gt;-data.fail&lt;br /&gt;
    - posix.log (can be found in: /opt/ltp/testcases/open_posix_testsuite)&lt;br /&gt;
      -  the three others are found in /opt/ltp directory, in output, temp, result folders . The logs need to be sent to [[yi.zhao@windriver.com]] specifying the v &lt;br /&gt;
         version and the type of image&lt;br /&gt;
    - in /var/opt/lsb/test/manager/results/x86.../x86....tar.gz (you can find it with auto-complete(tab) easily)&lt;br /&gt;
      -- it has like 18 Mb&lt;br /&gt;
      -- upload this file on drive and send the link to [[hongxu.jia@windriver.com]] and [[mark.hatle@windriver.com]]&lt;br /&gt;
      -- also I&#039;ll fwd an email to see how it looks&lt;br /&gt;
&lt;br /&gt;
  9. Put the tests from Testopia - Runtime test run on passed&lt;br /&gt;
&lt;br /&gt;
=== Reporting Process  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To Be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Add New Tests =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;To be Updated&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test Approach=&lt;br /&gt;
&lt;br /&gt;
=Test Matrix=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yocto QA Cycle&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;!-- The table can be edited with this tool : http://www.tablesgenerator.com/mediawiki_tables --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! linux-yocto&lt;br /&gt;
! Image-type&lt;br /&gt;
! AUTO&lt;br /&gt;
! MANUAL&lt;br /&gt;
! Compliance&lt;br /&gt;
! pTest&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (x86)&#039;&#039;&#039;&lt;br /&gt;
| Big Core&lt;br /&gt;
| MinwMax 32bit&lt;br /&gt;
| genericx86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| MinwMax 64bit&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NUC&lt;br /&gt;
| genericx86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| genericx86-64-wic&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemux86&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemux86-64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;generic BSPs (n-x86)&#039;&#039;&#039;&lt;br /&gt;
| MIPS&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| EdgeRouter&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| PPC&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| MPC8315e-rdb&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| ARM&lt;br /&gt;
| Beaglebone Black&lt;br /&gt;
| beaglebone&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| VM&lt;br /&gt;
| QEMU&lt;br /&gt;
| qemuarm&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuarm64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemuppc&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| qemumips64&lt;br /&gt;
| 4.x&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4,x-ltsi&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meta-Intel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Release&lt;br /&gt;
! CPU Class&lt;br /&gt;
! HW Platform&lt;br /&gt;
! BSP Name&lt;br /&gt;
! Image-type&lt;br /&gt;
! Auto&lt;br /&gt;
! Manual&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | meta-intel&lt;br /&gt;
| rowspan=&amp;quot;18&amp;quot; | Big Core&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 64bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | NUC&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | CherryHill&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Joule&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | corei7-64&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#ff0000&amp;quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | MinnowMax 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | core2-32&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | meta-intel-quark 32bit&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | intel-quark&lt;br /&gt;
| core-image-sato-sdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-lsb-sdk&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk WIC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;background:#00ff00&amp;quot;&amp;gt; Y &amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Not Tested=&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32658</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32658"/>
		<updated>2017-10-25T17:22:35Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Test Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is the test plan for kernel development features in Yocto Project.&lt;br /&gt;
&lt;br /&gt;
= About Kernel Development =&lt;br /&gt;
&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using kernel tools, and shows you how to use the metadata required to work with the kernel. &lt;br /&gt;
For more information you can review the [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development manual].&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
Verify all kernel development components are fully functional.&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
QA team members involved in Kernel Development testing:&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez]&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
== Types of Tests ==&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* No automated tests at the moment&lt;br /&gt;
&lt;br /&gt;
== Features Tested ==&lt;br /&gt;
: 1. linux-yocto-custom&lt;br /&gt;
:: 1.1 local source&lt;br /&gt;
:: 1.2 local source with parallel meta&lt;br /&gt;
:: 1.3 local source with recipe-space meta&lt;br /&gt;
: 2. External Source&lt;br /&gt;
: 3. defconfig&lt;br /&gt;
: 4. defconfig + fragments&lt;br /&gt;
: 5. linux-yocto meta data + local fragments (WIP)&lt;br /&gt;
: 6. building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
The complete set of test cases are documented on the [[Kernel Development Test Cases]] wiki. They are also listed on the master Kernel test plan in Testopia, that can be reached following this [https://bugzilla.yoctoproject.org/tr_show_plan.cgi?plan_id=94 link].&lt;br /&gt;
&lt;br /&gt;
= Test Strategy =&lt;br /&gt;
There are several test approaches for kernel development, such as:&lt;br /&gt;
* Perform test cases agreed upon development during periodic full pass test cycles, according to the schedule.&lt;br /&gt;
* Write new test cases based on developer requests or new features added, as required.&lt;br /&gt;
* Maintain current test cases and update them according to changes.&lt;br /&gt;
* Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
== Test automation ==&lt;br /&gt;
Tests will be gradually automated, after determining the feasibility to do so following discussions with the development team.&lt;br /&gt;
&lt;br /&gt;
== Sanity testing ==&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following discussions with the development team&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
: 1. Follow the steps as indicated on the [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
: 2. Verify that all test cases pass. If not, raise bugs properly.&lt;br /&gt;
: 3. Update results to corresponding Testopia test run.&lt;br /&gt;
&lt;br /&gt;
== Submitting Bugs ==&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different than other Yocto Project bugs and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
Use cases are documented in the corresponding section for each test case on [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
&lt;br /&gt;
==HW Requirements==&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==Software Requirements==&lt;br /&gt;
* Poky&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
==Environment Requirements==&lt;br /&gt;
*YP 2.3 Release:&lt;br /&gt;
*Ubuntu-14.04&lt;br /&gt;
*Ubuntu-14.10&lt;br /&gt;
*Ubuntu-15.04&lt;br /&gt;
*Fedora-21&lt;br /&gt;
*CentOS-6.*&lt;br /&gt;
*CentOS-7.*&lt;br /&gt;
*Debian-7.*&lt;br /&gt;
*Debian-8.*&lt;br /&gt;
*openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
==Test execution Cycle==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Dependencies=&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest layer&lt;br /&gt;
&lt;br /&gt;
=Risk Assumptions=&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration files in order to achieve a correct execution.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
* bitbake&lt;br /&gt;
* yocto-layer&lt;br /&gt;
* bitbake-layers&lt;br /&gt;
* any available text editor&lt;br /&gt;
&lt;br /&gt;
= Release Criteria/ Exit Criteria =&lt;br /&gt;
* All test cases pass.&lt;br /&gt;
* No blocking issues are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
THIS IS THE OLD TESTING PLAN &lt;br /&gt;
&lt;br /&gt;
= Test Areas =&lt;br /&gt;
eSDK consists of two big components, as follows:&lt;br /&gt;
&lt;br /&gt;
== Backend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*  [[REST_API_Contracts | REST API]]  verification – create Django tests to detect API calls returning incomplete (fields having null values) or wrong data for a certain set of entries from each table - our goal is to have 90% data collected. The tests can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=andreeap/eSDK-tests&amp;amp;id=7cfd179be5db2a5530d60093fd09d0240138c2fa here];&lt;br /&gt;
*  Calculation of the data collection rate - the ratio between the number of the variables having null values ​​and the total number of variables collected (the data collection rate does not include wrong values); Run: ./fail_rate.py path_to_eSDK.sqlite_file. Output: table_name field_name value_that_never_changes and for each table a percentage: (the number of occurences of all the fields that never change their values)/(total number of entries for that table);&lt;br /&gt;
*  Verify that all links in the simple UI are available;&lt;br /&gt;
*  Verify the quality of the data collected through the simple UI;&lt;br /&gt;
*  Verify the quality of the data collected by verifying most of the values from the database by connecting directly to the database - our immediate goal is to have 90% correct data collected;&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ====&lt;br /&gt;
*  Verify the easy usage of eSDK ([https://wiki.yoctoproject.org/wiki/WebHob#Installation_and_Running easy to install and start/stop the eSDK server])&lt;br /&gt;
&lt;br /&gt;
== Frontend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*   Manual testing in the first stage;&lt;br /&gt;
*   Automate testing using  [http://www.seleniumhq.org/ Selenium], in the second stage;&lt;br /&gt;
&lt;br /&gt;
==== Compatibility tests ====&lt;br /&gt;
*   Verify the behavior of the GUI on different browsers and operating systems; TBD&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ==== &lt;br /&gt;
*   Verify if the GUI design is as described here: http://yoctoproject.org/webhob;&lt;br /&gt;
*   Friendly graphical user interface;&lt;br /&gt;
&lt;br /&gt;
==== Performance tests ====&lt;br /&gt;
*   Stress testing (e.g. display appropriate error messages when the system is under stress);&lt;br /&gt;
&lt;br /&gt;
= Test Cycle =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| || || colspan=&amp;quot;3&amp;quot; | Test execution cycle&lt;br /&gt;
|-&lt;br /&gt;
| || || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Build type || Weekly  || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Release || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[#Test Areas]] || [[#Backend]] || Yes || Yes || Yes &lt;br /&gt;
|-&lt;br /&gt;
| [[#Frontend]]  || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Target machine || qemuarm || || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemumips|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemuppc|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86|| Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86-64  ||  ||  || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Target image|| core-image-minimal|| Yes || || &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk|| || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built weekly and released through the distribution team.&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Functionality test on most areas with minimum sets of tests;&lt;br /&gt;
** Regression test with high probability to find bugs.&lt;br /&gt;
&lt;br /&gt;
== Full Pass Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built as candidates for milestone or final release;&lt;br /&gt;
** Passed [[#Weekly Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Ensure functionality of eSDK component.&lt;br /&gt;
&lt;br /&gt;
== Release Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Release candidates that pass [[#Full Pass Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** All scheduled features are covered, or rescheduled;&lt;br /&gt;
** All relevant bugs are fixed and verified.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32657</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32657"/>
		<updated>2017-10-25T16:44:44Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Features Tested */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is the test plan for kernel development features in Yocto Project.&lt;br /&gt;
&lt;br /&gt;
= About Kernel Development =&lt;br /&gt;
&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using kernel tools, and shows you how to use the metadata required to work with the kernel. &lt;br /&gt;
For more information you can review the [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development manual].&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
Verify all kernel development components are fully functional.&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
QA team members involved in Kernel Development testing:&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez]&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
== Types of Tests ==&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* No automated tests at the moment&lt;br /&gt;
&lt;br /&gt;
== Features Tested ==&lt;br /&gt;
: 1. linux-yocto-custom&lt;br /&gt;
:: 1.1 local source&lt;br /&gt;
:: 1.2 local source with parallel meta&lt;br /&gt;
:: 1.3 local source with recipe-space meta&lt;br /&gt;
: 2. External Source&lt;br /&gt;
: 3. defconfig&lt;br /&gt;
: 4. defconfig + fragments&lt;br /&gt;
: 5. linux-yocto meta data + local fragments (WIP)&lt;br /&gt;
: 6. building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
The complete set of test cases are documented on the [[Kernel Development Test Cases]] wiki. They are also listed on the master Kernel test plan in Testopia, that can be reached following this [https://bugzilla.yoctoproject.org/tr_show_plan.cgi?plan_id=94 link].&lt;br /&gt;
&lt;br /&gt;
= Test Strategy =&lt;br /&gt;
There are several test approaches for kernel development, such as:&lt;br /&gt;
* Perform test cases agreed upon development during periodic full pass test cycles, according to the schedule.&lt;br /&gt;
* Write new test cases based on developer requests or new features added, as required.&lt;br /&gt;
* Maintain current test cases and update them according to changes.&lt;br /&gt;
* Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
== Test automation ==&lt;br /&gt;
Tests will be gradually automated, after determining the feasibility to do so following discussions with the development team.&lt;br /&gt;
&lt;br /&gt;
== Sanity testing ==&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following discussions with the development team&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
: 1. Follow the steps as indicated on the [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
: 2. Verify that all test cases pass. If not, raise bugs properly.&lt;br /&gt;
: 3. Update results to corresponding Testopia Test Run.&lt;br /&gt;
&lt;br /&gt;
== Submitting Bugs ==&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different than other Yocto Project bugs and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
Use cases are documented in the corresponding section for each test case on [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
&lt;br /&gt;
==HW Requirements==&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==Software Requirements==&lt;br /&gt;
* Poky&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
==Environment Requirements==&lt;br /&gt;
*YP 2.3 Release:&lt;br /&gt;
*Ubuntu-14.04&lt;br /&gt;
*Ubuntu-14.10&lt;br /&gt;
*Ubuntu-15.04&lt;br /&gt;
*Fedora-21&lt;br /&gt;
*CentOS-6.*&lt;br /&gt;
*CentOS-7.*&lt;br /&gt;
*Debian-7.*&lt;br /&gt;
*Debian-8.*&lt;br /&gt;
*openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
==Test execution Cycle==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Dependencies=&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest layer&lt;br /&gt;
&lt;br /&gt;
=Risk Assumptions=&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration files in order to achieve a correct execution.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
* bitbake&lt;br /&gt;
* yocto-layer&lt;br /&gt;
* bitbake-layers&lt;br /&gt;
* any available text editor&lt;br /&gt;
&lt;br /&gt;
= Release Criteria/ Exit Criteria =&lt;br /&gt;
* All test cases pass.&lt;br /&gt;
* No blocking issues are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
THIS IS THE OLD TESTING PLAN &lt;br /&gt;
&lt;br /&gt;
= Test Areas =&lt;br /&gt;
eSDK consists of two big components, as follows:&lt;br /&gt;
&lt;br /&gt;
== Backend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*  [[REST_API_Contracts | REST API]]  verification – create Django tests to detect API calls returning incomplete (fields having null values) or wrong data for a certain set of entries from each table - our goal is to have 90% data collected. The tests can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=andreeap/eSDK-tests&amp;amp;id=7cfd179be5db2a5530d60093fd09d0240138c2fa here];&lt;br /&gt;
*  Calculation of the data collection rate - the ratio between the number of the variables having null values ​​and the total number of variables collected (the data collection rate does not include wrong values); Run: ./fail_rate.py path_to_eSDK.sqlite_file. Output: table_name field_name value_that_never_changes and for each table a percentage: (the number of occurences of all the fields that never change their values)/(total number of entries for that table);&lt;br /&gt;
*  Verify that all links in the simple UI are available;&lt;br /&gt;
*  Verify the quality of the data collected through the simple UI;&lt;br /&gt;
*  Verify the quality of the data collected by verifying most of the values from the database by connecting directly to the database - our immediate goal is to have 90% correct data collected;&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ====&lt;br /&gt;
*  Verify the easy usage of eSDK ([https://wiki.yoctoproject.org/wiki/WebHob#Installation_and_Running easy to install and start/stop the eSDK server])&lt;br /&gt;
&lt;br /&gt;
== Frontend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*   Manual testing in the first stage;&lt;br /&gt;
*   Automate testing using  [http://www.seleniumhq.org/ Selenium], in the second stage;&lt;br /&gt;
&lt;br /&gt;
==== Compatibility tests ====&lt;br /&gt;
*   Verify the behavior of the GUI on different browsers and operating systems; TBD&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ==== &lt;br /&gt;
*   Verify if the GUI design is as described here: http://yoctoproject.org/webhob;&lt;br /&gt;
*   Friendly graphical user interface;&lt;br /&gt;
&lt;br /&gt;
==== Performance tests ====&lt;br /&gt;
*   Stress testing (e.g. display appropriate error messages when the system is under stress);&lt;br /&gt;
&lt;br /&gt;
= Test Cycle =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| || || colspan=&amp;quot;3&amp;quot; | Test execution cycle&lt;br /&gt;
|-&lt;br /&gt;
| || || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Build type || Weekly  || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Release || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[#Test Areas]] || [[#Backend]] || Yes || Yes || Yes &lt;br /&gt;
|-&lt;br /&gt;
| [[#Frontend]]  || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Target machine || qemuarm || || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemumips|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemuppc|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86|| Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86-64  ||  ||  || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Target image|| core-image-minimal|| Yes || || &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk|| || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built weekly and released through the distribution team.&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Functionality test on most areas with minimum sets of tests;&lt;br /&gt;
** Regression test with high probability to find bugs.&lt;br /&gt;
&lt;br /&gt;
== Full Pass Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built as candidates for milestone or final release;&lt;br /&gt;
** Passed [[#Weekly Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Ensure functionality of eSDK component.&lt;br /&gt;
&lt;br /&gt;
== Release Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Release candidates that pass [[#Full Pass Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** All scheduled features are covered, or rescheduled;&lt;br /&gt;
** All relevant bugs are fixed and verified.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32656</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32656"/>
		<updated>2017-10-25T16:26:34Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is the test plan for kernel development features in Yocto Project.&lt;br /&gt;
&lt;br /&gt;
= About Kernel Development =&lt;br /&gt;
&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using kernel tools, and shows you how to use the metadata required to work with the kernel. &lt;br /&gt;
For more information you can review the [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development manual].&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
Verify all kernel development components are fully functional.&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
QA team members involved in Kernel Development testing:&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez]&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
== Types of Tests ==&lt;br /&gt;
&lt;br /&gt;
* Manual tests on different platforms&lt;br /&gt;
* No automated tests at the moment&lt;br /&gt;
&lt;br /&gt;
== Features Tested ==&lt;br /&gt;
: 1. linux-yocto-custom&lt;br /&gt;
:: 1.1 local source&lt;br /&gt;
:: 1.2 local source with parallel meta&lt;br /&gt;
:: 1.3 local source with recipe-space meta&lt;br /&gt;
: 2. External Source&lt;br /&gt;
: 3. defconfig&lt;br /&gt;
: 4. defconfig + fragments&lt;br /&gt;
: 5. linux-yocto meta data + local fragments&lt;br /&gt;
: 6. building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
The complete set of test cases are documented on the [[Kernel Development Test Cases]] wiki. They are also listed on the master Kernel test plan in Testopia, that can be reached following this [https://bugzilla.yoctoproject.org/tr_show_plan.cgi?plan_id=94 link].&lt;br /&gt;
&lt;br /&gt;
= Test Strategy =&lt;br /&gt;
There are several test approaches for kernel development, such as:&lt;br /&gt;
* Perform test cases agreed upon development during periodic full pass test cycles, according to the schedule.&lt;br /&gt;
* Write new test cases based on developer requests or new features added, as required.&lt;br /&gt;
* Maintain current test cases and update them according to changes.&lt;br /&gt;
* Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
== Test automation ==&lt;br /&gt;
Tests will be gradually automated, after determining the feasibility to do so following discussions with the development team.&lt;br /&gt;
&lt;br /&gt;
== Sanity testing ==&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following discussions with the development team&lt;br /&gt;
&lt;br /&gt;
==Test Process==&lt;br /&gt;
&lt;br /&gt;
: 1. Follow the steps as indicated on the [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
: 2. Verify that all test cases pass. If not, raise bugs properly.&lt;br /&gt;
: 3. Update results to corresponding Testopia Test Run.&lt;br /&gt;
&lt;br /&gt;
== Submitting Bugs ==&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different than other Yocto Project bugs and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
Use cases are documented in the corresponding section for each test case on [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
&lt;br /&gt;
==HW Requirements==&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==Software Requirements==&lt;br /&gt;
* Poky&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
==Environment Requirements==&lt;br /&gt;
*YP 2.3 Release:&lt;br /&gt;
*Ubuntu-14.04&lt;br /&gt;
*Ubuntu-14.10&lt;br /&gt;
*Ubuntu-15.04&lt;br /&gt;
*Fedora-21&lt;br /&gt;
*CentOS-6.*&lt;br /&gt;
*CentOS-7.*&lt;br /&gt;
*Debian-7.*&lt;br /&gt;
*Debian-8.*&lt;br /&gt;
*openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
==Test execution Cycle==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Dependencies=&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest layer&lt;br /&gt;
&lt;br /&gt;
=Risk Assumptions=&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration files in order to achieve a correct execution.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
* bitbake&lt;br /&gt;
* yocto-layer&lt;br /&gt;
* bitbake-layers&lt;br /&gt;
* any available text editor&lt;br /&gt;
&lt;br /&gt;
= Release Criteria/ Exit Criteria =&lt;br /&gt;
* All test cases pass.&lt;br /&gt;
* No blocking issues are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
THIS IS THE OLD TESTING PLAN &lt;br /&gt;
&lt;br /&gt;
= Test Areas =&lt;br /&gt;
eSDK consists of two big components, as follows:&lt;br /&gt;
&lt;br /&gt;
== Backend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*  [[REST_API_Contracts | REST API]]  verification – create Django tests to detect API calls returning incomplete (fields having null values) or wrong data for a certain set of entries from each table - our goal is to have 90% data collected. The tests can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=andreeap/eSDK-tests&amp;amp;id=7cfd179be5db2a5530d60093fd09d0240138c2fa here];&lt;br /&gt;
*  Calculation of the data collection rate - the ratio between the number of the variables having null values ​​and the total number of variables collected (the data collection rate does not include wrong values); Run: ./fail_rate.py path_to_eSDK.sqlite_file. Output: table_name field_name value_that_never_changes and for each table a percentage: (the number of occurences of all the fields that never change their values)/(total number of entries for that table);&lt;br /&gt;
*  Verify that all links in the simple UI are available;&lt;br /&gt;
*  Verify the quality of the data collected through the simple UI;&lt;br /&gt;
*  Verify the quality of the data collected by verifying most of the values from the database by connecting directly to the database - our immediate goal is to have 90% correct data collected;&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ====&lt;br /&gt;
*  Verify the easy usage of eSDK ([https://wiki.yoctoproject.org/wiki/WebHob#Installation_and_Running easy to install and start/stop the eSDK server])&lt;br /&gt;
&lt;br /&gt;
== Frontend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*   Manual testing in the first stage;&lt;br /&gt;
*   Automate testing using  [http://www.seleniumhq.org/ Selenium], in the second stage;&lt;br /&gt;
&lt;br /&gt;
==== Compatibility tests ====&lt;br /&gt;
*   Verify the behavior of the GUI on different browsers and operating systems; TBD&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ==== &lt;br /&gt;
*   Verify if the GUI design is as described here: http://yoctoproject.org/webhob;&lt;br /&gt;
*   Friendly graphical user interface;&lt;br /&gt;
&lt;br /&gt;
==== Performance tests ====&lt;br /&gt;
*   Stress testing (e.g. display appropriate error messages when the system is under stress);&lt;br /&gt;
&lt;br /&gt;
= Test Cycle =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| || || colspan=&amp;quot;3&amp;quot; | Test execution cycle&lt;br /&gt;
|-&lt;br /&gt;
| || || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Build type || Weekly  || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Release || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[#Test Areas]] || [[#Backend]] || Yes || Yes || Yes &lt;br /&gt;
|-&lt;br /&gt;
| [[#Frontend]]  || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Target machine || qemuarm || || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemumips|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemuppc|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86|| Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86-64  ||  ||  || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Target image|| core-image-minimal|| Yes || || &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk|| || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built weekly and released through the distribution team.&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Functionality test on most areas with minimum sets of tests;&lt;br /&gt;
** Regression test with high probability to find bugs.&lt;br /&gt;
&lt;br /&gt;
== Full Pass Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built as candidates for milestone or final release;&lt;br /&gt;
** Passed [[#Weekly Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Ensure functionality of eSDK component.&lt;br /&gt;
&lt;br /&gt;
== Release Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Release candidates that pass [[#Full Pass Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** All scheduled features are covered, or rescheduled;&lt;br /&gt;
** All relevant bugs are fixed and verified.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32634</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32634"/>
		<updated>2017-10-24T20:29:09Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* QA Team involved in Kernel Development testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Kernel Development QA]]&lt;br /&gt;
This article is the test plan for kernel development features in Yocto Project.&lt;br /&gt;
&lt;br /&gt;
= About Kernel Development =&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using kernel tools, and shows you how to use the metadata required to work with the kernel. &lt;br /&gt;
For more information you can review the [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development manual].&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
Verify all kernel development components are fully functional.&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
QA team members involved in Kernel Development testing:&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez]&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
* linux-yocto-custom&lt;br /&gt;
* local source&lt;br /&gt;
* local source with parallel meta&lt;br /&gt;
* local source with recipe-space meta&lt;br /&gt;
* External source&lt;br /&gt;
* defconfig&lt;br /&gt;
* defconfig + fragments&lt;br /&gt;
* linux-yocto meta data + local fragments&lt;br /&gt;
* building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
= Test Strategy =&lt;br /&gt;
There are several test approaches for kernel development, such as:&lt;br /&gt;
* Perform test cases agreed upon development during periodic full pass test cycles, according to the schedule.&lt;br /&gt;
* Write new test cases based on developer requests or new features added, as required.&lt;br /&gt;
* Maintain current test cases and update them according to changes.&lt;br /&gt;
* Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
== Test automation ==&lt;br /&gt;
Tests will be gradually automated whenever it may be possible.&lt;br /&gt;
== Test Approach ==&lt;br /&gt;
&lt;br /&gt;
=== Sanity testing ===&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following DEV discussions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maintaining the test cases ==&lt;br /&gt;
== Submitting Bugs ==&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
Use cases are documented in the corresponding section for each test case on [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
&lt;br /&gt;
==HW Requirements==&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==Software Requirements==&lt;br /&gt;
* Poky&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
==Environment Requirements==&lt;br /&gt;
*YP 2.3 Release:&lt;br /&gt;
*Ubuntu-14.04&lt;br /&gt;
*Ubuntu-14.10&lt;br /&gt;
*Ubuntu-15.04&lt;br /&gt;
*Fedora-21&lt;br /&gt;
*CentOS-6.*&lt;br /&gt;
*CentOS-7.*&lt;br /&gt;
*Debian-7.*&lt;br /&gt;
*Debian-8.*&lt;br /&gt;
*openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
&amp;lt;b&amp;gt; Features to be Tested &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: 1. linux-yocto-custom&lt;br /&gt;
:: 1.1 local source&lt;br /&gt;
:: 1.2 local source with parallel meta&lt;br /&gt;
:: 1.3 local source with recipe-space meta&lt;br /&gt;
: 2. External Source&lt;br /&gt;
: 3. Defconfig&lt;br /&gt;
: 4.Defconfig + Fragments&lt;br /&gt;
: 5.building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
The complete set of test cases are documented on the [[Kernel Development Test Cases]] wiki. They are also listed on the master Kernel test plan in Testopia, that can be reached following this [https://bugzilla.yoctoproject.org/tr_show_plan.cgi?plan_id=94 link].&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
==Test execution Cycle==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Dependencies=&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest layer&lt;br /&gt;
&lt;br /&gt;
=Risk Assumptions=&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration files in order to achieve a correct execution.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
* bitbake&lt;br /&gt;
* yocto-layer&lt;br /&gt;
* bitbake-layers&lt;br /&gt;
* any available text editor&lt;br /&gt;
&lt;br /&gt;
= Release Criteria/ Exit Criteria =&lt;br /&gt;
* All test cases pass.&lt;br /&gt;
* No blocking issues are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
THIS IS THE OLD TESTING PLAN &lt;br /&gt;
&lt;br /&gt;
= Test Areas =&lt;br /&gt;
eSDK consists of two big components, as follows:&lt;br /&gt;
&lt;br /&gt;
== Backend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*  [[REST_API_Contracts | REST API]]  verification – create Django tests to detect API calls returning incomplete (fields having null values) or wrong data for a certain set of entries from each table - our goal is to have 90% data collected. The tests can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=andreeap/eSDK-tests&amp;amp;id=7cfd179be5db2a5530d60093fd09d0240138c2fa here];&lt;br /&gt;
*  Calculation of the data collection rate - the ratio between the number of the variables having null values ​​and the total number of variables collected (the data collection rate does not include wrong values); Run: ./fail_rate.py path_to_eSDK.sqlite_file. Output: table_name field_name value_that_never_changes and for each table a percentage: (the number of occurences of all the fields that never change their values)/(total number of entries for that table);&lt;br /&gt;
*  Verify that all links in the simple UI are available;&lt;br /&gt;
*  Verify the quality of the data collected through the simple UI;&lt;br /&gt;
*  Verify the quality of the data collected by verifying most of the values from the database by connecting directly to the database - our immediate goal is to have 90% correct data collected;&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ====&lt;br /&gt;
*  Verify the easy usage of eSDK ([https://wiki.yoctoproject.org/wiki/WebHob#Installation_and_Running easy to install and start/stop the eSDK server])&lt;br /&gt;
&lt;br /&gt;
== Frontend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*   Manual testing in the first stage;&lt;br /&gt;
*   Automate testing using  [http://www.seleniumhq.org/ Selenium], in the second stage;&lt;br /&gt;
&lt;br /&gt;
==== Compatibility tests ====&lt;br /&gt;
*   Verify the behavior of the GUI on different browsers and operating systems; TBD&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ==== &lt;br /&gt;
*   Verify if the GUI design is as described here: http://yoctoproject.org/webhob;&lt;br /&gt;
*   Friendly graphical user interface;&lt;br /&gt;
&lt;br /&gt;
==== Performance tests ====&lt;br /&gt;
*   Stress testing (e.g. display appropriate error messages when the system is under stress);&lt;br /&gt;
&lt;br /&gt;
= Test Cycle =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| || || colspan=&amp;quot;3&amp;quot; | Test execution cycle&lt;br /&gt;
|-&lt;br /&gt;
| || || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Build type || Weekly  || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Release || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[#Test Areas]] || [[#Backend]] || Yes || Yes || Yes &lt;br /&gt;
|-&lt;br /&gt;
| [[#Frontend]]  || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Target machine || qemuarm || || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemumips|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemuppc|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86|| Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86-64  ||  ||  || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Target image|| core-image-minimal|| Yes || || &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk|| || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built weekly and released through the distribution team.&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Functionality test on most areas with minimum sets of tests;&lt;br /&gt;
** Regression test with high probability to find bugs.&lt;br /&gt;
&lt;br /&gt;
== Full Pass Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built as candidates for milestone or final release;&lt;br /&gt;
** Passed [[#Weekly Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Ensure functionality of eSDK component.&lt;br /&gt;
&lt;br /&gt;
== Release Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Release candidates that pass [[#Full Pass Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** All scheduled features are covered, or rescheduled;&lt;br /&gt;
** All relevant bugs are fixed and verified.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32611</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32611"/>
		<updated>2017-10-24T16:57:58Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Document Conventions==&lt;br /&gt;
:1. In command and configuration snippets that exist on the rest of the document, words or short phrases that appear in uppercase letters and enclosed on square brackets (for example, [VERSION]) are placeholders that need to be manually replaced by their correct value, depending on the context.&lt;br /&gt;
: 2. In command snippets, the dollar symbol and subsequent space at the beginning of the line indicates the command line prompt. This two characters should not be used when entering the command.&lt;br /&gt;
: 3. Other characters should be left as they appear on command or configuration sentences.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
:: To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 6. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep PREFERRED_PROVIDER_virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables are set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. The fragment should be added properly.&lt;br /&gt;
: 3. Compilation process should be performed successfully.&lt;br /&gt;
: 4. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Unset the git proxy environment variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Set the git proxy environment variable to its previous value, or close and reopen the terminal.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using qemu:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the qemu terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the qemu terminal.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html&lt;br /&gt;
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html&lt;br /&gt;
Compendium of Yocto Project manuals, including the two above:&lt;br /&gt;
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32484</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32484"/>
		<updated>2017-10-19T22:25:38Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
:: To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 6. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep PREFERRED_PROVIDER_virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables are set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. The fragment should be added properly.&lt;br /&gt;
: 3. Compilation process should be performed successfully.&lt;br /&gt;
: 4. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Unset the git proxy environment variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Set the git proxy environment variable to its previous value, or close and reopen the terminal.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using qemu:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the qemu terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the qemu terminal.&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32466</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32466"/>
		<updated>2017-10-19T01:37:46Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Prerequisites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
:: To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 6. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep PREFERRED_PROVIDER_virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables are set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. The fragment should be added properly.&lt;br /&gt;
: 3. Compilation process should be performed successfully.&lt;br /&gt;
: 4. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Unset the git proxy environment variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Set the git proxy environment variable to its previous value, or close and reopen the terminal.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using qemu:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the qemu terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the qemu terminal.&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32465</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32465"/>
		<updated>2017-10-19T01:13:58Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Remarks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
:: To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 6. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep PREFERRED_PROVIDER_virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables are set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. The fragment should be added properly.&lt;br /&gt;
: 3. Compilation process should be performed successfully.&lt;br /&gt;
: 4. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all –verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Unset the git proxy environment variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Set the git proxy environment variable to its previous value, or close and reopen the terminal.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using qemu:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the qemu terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the qemu terminal.&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32464</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32464"/>
		<updated>2017-10-19T01:13:08Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
:: To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 6. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep PREFERRED_PROVIDER_virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables are set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. The fragment should be added properly.&lt;br /&gt;
: 3. Compilation process should be performed successfully.&lt;br /&gt;
: 4. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the WIMAX feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all –verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Unset the git proxy environment variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Set the git proxy environment variable to its previous value, or close and reopen the terminal.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the EXT2_FS feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using qemu:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the qemu terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the qemu terminal.&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32457</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32457"/>
		<updated>2017-10-17T23:03:22Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Prerequisites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
:: To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 6. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout yocto-[VERSION]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep PREFERRED_PROVIDER_virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables are set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. The fragment should be added properly.&lt;br /&gt;
: 3. Compilation process should be performed successfully.&lt;br /&gt;
: 4. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all –verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Unset the git proxy environment variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Set the git proxy environment variable to its previous value, or close and reopen the terminal.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using qemu:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the qemu terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the qemu terminal.&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32439</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32439"/>
		<updated>2017-10-17T00:43:28Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Dependencies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Kernel Development QA]]&lt;br /&gt;
This article is the test plan for kernel development features in Yocto Project.&lt;br /&gt;
&lt;br /&gt;
= About Kernel Development =&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using kernel tools, and shows you how to use the metadata required to work with the kernel. &lt;br /&gt;
For more information you can review the [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development manual].&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
Verify all kernel development components are fully functional.&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
==QA Team involved in Kernel Development testing==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez ]&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
* linux-yocto-custom&lt;br /&gt;
* local source&lt;br /&gt;
* local source with parallel meta&lt;br /&gt;
* local source with recipe-space meta&lt;br /&gt;
* External source&lt;br /&gt;
* defconfig&lt;br /&gt;
* defconfig + fragments&lt;br /&gt;
* linux-yocto meta data + local fragments&lt;br /&gt;
* building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
= Test Strategy =&lt;br /&gt;
There are several test approaches for kernel development, such as:&lt;br /&gt;
* Perform test cases agreed upon development during periodic full pass test cycles, according to the schedule.&lt;br /&gt;
* Write new test cases based on developer requests or new features added, as required.&lt;br /&gt;
* Maintain current test cases and update them according to changes.&lt;br /&gt;
* Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
== Test automation ==&lt;br /&gt;
Tests will be gradually automated whenever it may be possible.&lt;br /&gt;
== Test Approach ==&lt;br /&gt;
&lt;br /&gt;
=== Sanity testing ===&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following DEV discussions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maintaining the test cases ==&lt;br /&gt;
== Submitting Bugs ==&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
Use cases are documented in the corresponding section for each test case on [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
&lt;br /&gt;
==HW Requirements==&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==Software Requirements==&lt;br /&gt;
* Poky&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
==Environment Requirements==&lt;br /&gt;
*YP 2.3 Release:&lt;br /&gt;
*Ubuntu-14.04&lt;br /&gt;
*Ubuntu-14.10&lt;br /&gt;
*Ubuntu-15.04&lt;br /&gt;
*Fedora-21&lt;br /&gt;
*CentOS-6.*&lt;br /&gt;
*CentOS-7.*&lt;br /&gt;
*Debian-7.*&lt;br /&gt;
*Debian-8.*&lt;br /&gt;
*openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
&amp;lt;b&amp;gt; Features to be Tested &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: 1. linux-yocto-custom&lt;br /&gt;
:: 1.1 local source&lt;br /&gt;
:: 1.2 local source with parallel meta&lt;br /&gt;
:: 1.3 local source with recipe-space meta&lt;br /&gt;
: 2. External Source&lt;br /&gt;
: 3. Defconfig&lt;br /&gt;
: 4.Defconfig + Fragments&lt;br /&gt;
: 5.building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
The complete set of test cases are documented on the [[Kernel Development Test Cases]] wiki. They are also listed on the master Kernel test plan in Testopia, that can be reached following this [https://bugzilla.yoctoproject.org/tr_show_plan.cgi?plan_id=94 link].&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
==Test execution Cycle==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Dependencies=&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest layer&lt;br /&gt;
&lt;br /&gt;
=Risk Assumptions=&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration files in order to achieve a correct execution.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
* bitbake&lt;br /&gt;
* yocto-layer&lt;br /&gt;
* bitbake-layers&lt;br /&gt;
* any available text editor&lt;br /&gt;
&lt;br /&gt;
= Release Criteria/ Exit Criteria =&lt;br /&gt;
* All test cases pass.&lt;br /&gt;
* No blocking issues are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
THIS IS THE OLD TESTING PLAN &lt;br /&gt;
&lt;br /&gt;
= Test Areas =&lt;br /&gt;
eSDK consists of two big components, as follows:&lt;br /&gt;
&lt;br /&gt;
== Backend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*  [[REST_API_Contracts | REST API]]  verification – create Django tests to detect API calls returning incomplete (fields having null values) or wrong data for a certain set of entries from each table - our goal is to have 90% data collected. The tests can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=andreeap/eSDK-tests&amp;amp;id=7cfd179be5db2a5530d60093fd09d0240138c2fa here];&lt;br /&gt;
*  Calculation of the data collection rate - the ratio between the number of the variables having null values ​​and the total number of variables collected (the data collection rate does not include wrong values); Run: ./fail_rate.py path_to_eSDK.sqlite_file. Output: table_name field_name value_that_never_changes and for each table a percentage: (the number of occurences of all the fields that never change their values)/(total number of entries for that table);&lt;br /&gt;
*  Verify that all links in the simple UI are available;&lt;br /&gt;
*  Verify the quality of the data collected through the simple UI;&lt;br /&gt;
*  Verify the quality of the data collected by verifying most of the values from the database by connecting directly to the database - our immediate goal is to have 90% correct data collected;&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ====&lt;br /&gt;
*  Verify the easy usage of eSDK ([https://wiki.yoctoproject.org/wiki/WebHob#Installation_and_Running easy to install and start/stop the eSDK server])&lt;br /&gt;
&lt;br /&gt;
== Frontend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*   Manual testing in the first stage;&lt;br /&gt;
*   Automate testing using  [http://www.seleniumhq.org/ Selenium], in the second stage;&lt;br /&gt;
&lt;br /&gt;
==== Compatibility tests ====&lt;br /&gt;
*   Verify the behavior of the GUI on different browsers and operating systems; TBD&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ==== &lt;br /&gt;
*   Verify if the GUI design is as described here: http://yoctoproject.org/webhob;&lt;br /&gt;
*   Friendly graphical user interface;&lt;br /&gt;
&lt;br /&gt;
==== Performance tests ====&lt;br /&gt;
*   Stress testing (e.g. display appropriate error messages when the system is under stress);&lt;br /&gt;
&lt;br /&gt;
= Test Cycle =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| || || colspan=&amp;quot;3&amp;quot; | Test execution cycle&lt;br /&gt;
|-&lt;br /&gt;
| || || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Build type || Weekly  || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Release || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[#Test Areas]] || [[#Backend]] || Yes || Yes || Yes &lt;br /&gt;
|-&lt;br /&gt;
| [[#Frontend]]  || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Target machine || qemuarm || || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemumips|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemuppc|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86|| Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86-64  ||  ||  || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Target image|| core-image-minimal|| Yes || || &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk|| || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built weekly and released through the distribution team.&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Functionality test on most areas with minimum sets of tests;&lt;br /&gt;
** Regression test with high probability to find bugs.&lt;br /&gt;
&lt;br /&gt;
== Full Pass Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built as candidates for milestone or final release;&lt;br /&gt;
** Passed [[#Weekly Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Ensure functionality of eSDK component.&lt;br /&gt;
&lt;br /&gt;
== Release Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Release candidates that pass [[#Full Pass Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** All scheduled features are covered, or rescheduled;&lt;br /&gt;
** All relevant bugs are fixed and verified.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32438</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32438"/>
		<updated>2017-10-17T00:42:48Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Kernel Development QA]]&lt;br /&gt;
This article is the test plan for kernel development features in Yocto Project.&lt;br /&gt;
&lt;br /&gt;
= About Kernel Development =&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using kernel tools, and shows you how to use the metadata required to work with the kernel. &lt;br /&gt;
For more information you can review the [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development manual].&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
Verify all kernel development components are fully functional.&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
==QA Team involved in Kernel Development testing==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez ]&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
* linux-yocto-custom&lt;br /&gt;
* local source&lt;br /&gt;
* local source with parallel meta&lt;br /&gt;
* local source with recipe-space meta&lt;br /&gt;
* External source&lt;br /&gt;
* defconfig&lt;br /&gt;
* defconfig + fragments&lt;br /&gt;
* linux-yocto meta data + local fragments&lt;br /&gt;
* building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
= Test Strategy =&lt;br /&gt;
There are several test approaches for kernel development, such as:&lt;br /&gt;
* Perform test cases agreed upon development during periodic full pass test cycles, according to the schedule.&lt;br /&gt;
* Write new test cases based on developer requests or new features added, as required.&lt;br /&gt;
* Maintain current test cases and update them according to changes.&lt;br /&gt;
* Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
== Test automation ==&lt;br /&gt;
Tests will be gradually automated whenever it may be possible.&lt;br /&gt;
== Test Approach ==&lt;br /&gt;
&lt;br /&gt;
=== Sanity testing ===&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following DEV discussions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maintaining the test cases ==&lt;br /&gt;
== Submitting Bugs ==&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
Use cases are documented in the corresponding section for each test case on [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
&lt;br /&gt;
==HW Requirements==&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==Software Requirements==&lt;br /&gt;
* Poky&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
==Environment Requirements==&lt;br /&gt;
*YP 2.3 Release:&lt;br /&gt;
*Ubuntu-14.04&lt;br /&gt;
*Ubuntu-14.10&lt;br /&gt;
*Ubuntu-15.04&lt;br /&gt;
*Fedora-21&lt;br /&gt;
*CentOS-6.*&lt;br /&gt;
*CentOS-7.*&lt;br /&gt;
*Debian-7.*&lt;br /&gt;
*Debian-8.*&lt;br /&gt;
*openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
&amp;lt;b&amp;gt; Features to be Tested &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: 1. linux-yocto-custom&lt;br /&gt;
:: 1.1 local source&lt;br /&gt;
:: 1.2 local source with parallel meta&lt;br /&gt;
:: 1.3 local source with recipe-space meta&lt;br /&gt;
: 2. External Source&lt;br /&gt;
: 3. Defconfig&lt;br /&gt;
: 4.Defconfig + Fragments&lt;br /&gt;
: 5.building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
The complete set of test cases are documented on the [[Kernel Development Test Cases]] wiki. They are also listed on the master Kernel test plan in Testopia, that can be reached following this [https://bugzilla.yoctoproject.org/tr_show_plan.cgi?plan_id=94 link].&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
==Test execution Cycle==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Dependencies=&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest recipe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Risk Assumptions=&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration files in order to achieve a correct execution.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
* bitbake&lt;br /&gt;
* yocto-layer&lt;br /&gt;
* bitbake-layers&lt;br /&gt;
* any available text editor&lt;br /&gt;
&lt;br /&gt;
= Release Criteria/ Exit Criteria =&lt;br /&gt;
* All test cases pass.&lt;br /&gt;
* No blocking issues are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
THIS IS THE OLD TESTING PLAN &lt;br /&gt;
&lt;br /&gt;
= Test Areas =&lt;br /&gt;
eSDK consists of two big components, as follows:&lt;br /&gt;
&lt;br /&gt;
== Backend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*  [[REST_API_Contracts | REST API]]  verification – create Django tests to detect API calls returning incomplete (fields having null values) or wrong data for a certain set of entries from each table - our goal is to have 90% data collected. The tests can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=andreeap/eSDK-tests&amp;amp;id=7cfd179be5db2a5530d60093fd09d0240138c2fa here];&lt;br /&gt;
*  Calculation of the data collection rate - the ratio between the number of the variables having null values ​​and the total number of variables collected (the data collection rate does not include wrong values); Run: ./fail_rate.py path_to_eSDK.sqlite_file. Output: table_name field_name value_that_never_changes and for each table a percentage: (the number of occurences of all the fields that never change their values)/(total number of entries for that table);&lt;br /&gt;
*  Verify that all links in the simple UI are available;&lt;br /&gt;
*  Verify the quality of the data collected through the simple UI;&lt;br /&gt;
*  Verify the quality of the data collected by verifying most of the values from the database by connecting directly to the database - our immediate goal is to have 90% correct data collected;&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ====&lt;br /&gt;
*  Verify the easy usage of eSDK ([https://wiki.yoctoproject.org/wiki/WebHob#Installation_and_Running easy to install and start/stop the eSDK server])&lt;br /&gt;
&lt;br /&gt;
== Frontend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*   Manual testing in the first stage;&lt;br /&gt;
*   Automate testing using  [http://www.seleniumhq.org/ Selenium], in the second stage;&lt;br /&gt;
&lt;br /&gt;
==== Compatibility tests ====&lt;br /&gt;
*   Verify the behavior of the GUI on different browsers and operating systems; TBD&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ==== &lt;br /&gt;
*   Verify if the GUI design is as described here: http://yoctoproject.org/webhob;&lt;br /&gt;
*   Friendly graphical user interface;&lt;br /&gt;
&lt;br /&gt;
==== Performance tests ====&lt;br /&gt;
*   Stress testing (e.g. display appropriate error messages when the system is under stress);&lt;br /&gt;
&lt;br /&gt;
= Test Cycle =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| || || colspan=&amp;quot;3&amp;quot; | Test execution cycle&lt;br /&gt;
|-&lt;br /&gt;
| || || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Build type || Weekly  || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Release || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[#Test Areas]] || [[#Backend]] || Yes || Yes || Yes &lt;br /&gt;
|-&lt;br /&gt;
| [[#Frontend]]  || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Target machine || qemuarm || || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemumips|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemuppc|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86|| Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86-64  ||  ||  || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Target image|| core-image-minimal|| Yes || || &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk|| || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built weekly and released through the distribution team.&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Functionality test on most areas with minimum sets of tests;&lt;br /&gt;
** Regression test with high probability to find bugs.&lt;br /&gt;
&lt;br /&gt;
== Full Pass Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built as candidates for milestone or final release;&lt;br /&gt;
** Passed [[#Weekly Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Ensure functionality of eSDK component.&lt;br /&gt;
&lt;br /&gt;
== Release Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Release candidates that pass [[#Full Pass Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** All scheduled features are covered, or rescheduled;&lt;br /&gt;
** All relevant bugs are fixed and verified.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32437</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32437"/>
		<updated>2017-10-17T00:42:28Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Release Criteria/ Exit Criteria */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Kernel Development QA]]&lt;br /&gt;
This article is the test plan for kernel development features in Yocto Project.&lt;br /&gt;
&lt;br /&gt;
= About Kernel Development =&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using kernel tools, and shows you how to use the metadata required to work with the kernel. &lt;br /&gt;
For more information you can review the [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development manual].&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
Verify all kernel development components are fully functional.&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
==QA Team involved in Kernel Development testing==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez ]&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
* linux-yocto-custom&lt;br /&gt;
* local source&lt;br /&gt;
* local source with parallel meta&lt;br /&gt;
* local source with recipe-space meta&lt;br /&gt;
* External source&lt;br /&gt;
* defconfig&lt;br /&gt;
* defconfig + fragments&lt;br /&gt;
* linux-yocto meta data + local fragments&lt;br /&gt;
* building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
= Test Strategy =&lt;br /&gt;
There are several test approaches for kernel development, such as:&lt;br /&gt;
* Perform test cases agreed upon development during periodic full pass test cycles, according to the schedule.&lt;br /&gt;
* Write new test cases based on developer requests or new features added, as required.&lt;br /&gt;
* Maintain current test cases and update them according to changes.&lt;br /&gt;
* Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
== Test automation ==&lt;br /&gt;
Tests will be gradually automated whenever it may be possible.&lt;br /&gt;
== Test Approach ==&lt;br /&gt;
&lt;br /&gt;
=== Sanity testing ===&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following DEV discussions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maintaining the test cases ==&lt;br /&gt;
== Submitting Bugs ==&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
Use cases are documented in the corresponding section for each test case on [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
&lt;br /&gt;
==HW Requirements==&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==Software Requirements==&lt;br /&gt;
* Poky&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
==Environment Requirements==&lt;br /&gt;
*YP 2.3 Release:&lt;br /&gt;
*Ubuntu-14.04&lt;br /&gt;
*Ubuntu-14.10&lt;br /&gt;
*Ubuntu-15.04&lt;br /&gt;
*Fedora-21&lt;br /&gt;
*CentOS-6.*&lt;br /&gt;
*CentOS-7.*&lt;br /&gt;
*Debian-7.*&lt;br /&gt;
*Debian-8.*&lt;br /&gt;
*openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
&amp;lt;b&amp;gt; Features to be Tested &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: 1. linux-yocto-custom&lt;br /&gt;
:: 1.1 local source&lt;br /&gt;
:: 1.2 local source with parallel meta&lt;br /&gt;
:: 1.3 local source with recipe-space meta&lt;br /&gt;
: 2. External Source&lt;br /&gt;
: 3. Defconfig&lt;br /&gt;
: 4.Defconfig + Fragments&lt;br /&gt;
: 5.building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
The complete set of test cases are documented on the [[Kernel Development Test Cases]] wiki. They are also listed on the master Kernel test plan in Testopia, that can be reached following this [https://bugzilla.yoctoproject.org/tr_show_plan.cgi?plan_id=94 link].&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
==Test execution Cycle==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Dependencies=&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest recipe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Risk Assumptions=&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration files in order to achieve a correct execution.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
* bitbake&lt;br /&gt;
* yocto-layer&lt;br /&gt;
* bitbake-layers&lt;br /&gt;
* Any available text editor&lt;br /&gt;
&lt;br /&gt;
= Release Criteria/ Exit Criteria =&lt;br /&gt;
* All test cases pass.&lt;br /&gt;
* No blocking issues are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
THIS IS THE OLD TESTING PLAN &lt;br /&gt;
&lt;br /&gt;
= Test Areas =&lt;br /&gt;
eSDK consists of two big components, as follows:&lt;br /&gt;
&lt;br /&gt;
== Backend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*  [[REST_API_Contracts | REST API]]  verification – create Django tests to detect API calls returning incomplete (fields having null values) or wrong data for a certain set of entries from each table - our goal is to have 90% data collected. The tests can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=andreeap/eSDK-tests&amp;amp;id=7cfd179be5db2a5530d60093fd09d0240138c2fa here];&lt;br /&gt;
*  Calculation of the data collection rate - the ratio between the number of the variables having null values ​​and the total number of variables collected (the data collection rate does not include wrong values); Run: ./fail_rate.py path_to_eSDK.sqlite_file. Output: table_name field_name value_that_never_changes and for each table a percentage: (the number of occurences of all the fields that never change their values)/(total number of entries for that table);&lt;br /&gt;
*  Verify that all links in the simple UI are available;&lt;br /&gt;
*  Verify the quality of the data collected through the simple UI;&lt;br /&gt;
*  Verify the quality of the data collected by verifying most of the values from the database by connecting directly to the database - our immediate goal is to have 90% correct data collected;&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ====&lt;br /&gt;
*  Verify the easy usage of eSDK ([https://wiki.yoctoproject.org/wiki/WebHob#Installation_and_Running easy to install and start/stop the eSDK server])&lt;br /&gt;
&lt;br /&gt;
== Frontend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*   Manual testing in the first stage;&lt;br /&gt;
*   Automate testing using  [http://www.seleniumhq.org/ Selenium], in the second stage;&lt;br /&gt;
&lt;br /&gt;
==== Compatibility tests ====&lt;br /&gt;
*   Verify the behavior of the GUI on different browsers and operating systems; TBD&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ==== &lt;br /&gt;
*   Verify if the GUI design is as described here: http://yoctoproject.org/webhob;&lt;br /&gt;
*   Friendly graphical user interface;&lt;br /&gt;
&lt;br /&gt;
==== Performance tests ====&lt;br /&gt;
*   Stress testing (e.g. display appropriate error messages when the system is under stress);&lt;br /&gt;
&lt;br /&gt;
= Test Cycle =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| || || colspan=&amp;quot;3&amp;quot; | Test execution cycle&lt;br /&gt;
|-&lt;br /&gt;
| || || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Build type || Weekly  || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Release || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[#Test Areas]] || [[#Backend]] || Yes || Yes || Yes &lt;br /&gt;
|-&lt;br /&gt;
| [[#Frontend]]  || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Target machine || qemuarm || || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemumips|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemuppc|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86|| Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86-64  ||  ||  || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Target image|| core-image-minimal|| Yes || || &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk|| || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built weekly and released through the distribution team.&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Functionality test on most areas with minimum sets of tests;&lt;br /&gt;
** Regression test with high probability to find bugs.&lt;br /&gt;
&lt;br /&gt;
== Full Pass Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built as candidates for milestone or final release;&lt;br /&gt;
** Passed [[#Weekly Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Ensure functionality of eSDK component.&lt;br /&gt;
&lt;br /&gt;
== Release Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Release candidates that pass [[#Full Pass Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** All scheduled features are covered, or rescheduled;&lt;br /&gt;
** All relevant bugs are fixed and verified.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32436</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32436"/>
		<updated>2017-10-17T00:40:37Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Kernel Development QA]]&lt;br /&gt;
This article is the test plan for kernel development features in Yocto Project.&lt;br /&gt;
&lt;br /&gt;
= About Kernel Development =&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using kernel tools, and shows you how to use the metadata required to work with the kernel. &lt;br /&gt;
For more information you can review the [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development manual].&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
Verify all kernel development components are fully functional.&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
==QA Team involved in Kernel Development testing==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez ]&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
* linux-yocto-custom&lt;br /&gt;
* local source&lt;br /&gt;
* local source with parallel meta&lt;br /&gt;
* local source with recipe-space meta&lt;br /&gt;
* External source&lt;br /&gt;
* defconfig&lt;br /&gt;
* defconfig + fragments&lt;br /&gt;
* linux-yocto meta data + local fragments&lt;br /&gt;
* building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
= Test Strategy =&lt;br /&gt;
There are several test approaches for kernel development, such as:&lt;br /&gt;
* Perform test cases agreed upon development during periodic full pass test cycles, according to the schedule.&lt;br /&gt;
* Write new test cases based on developer requests or new features added, as required.&lt;br /&gt;
* Maintain current test cases and update them according to changes.&lt;br /&gt;
* Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
== Test automation ==&lt;br /&gt;
Tests will be gradually automated whenever it may be possible.&lt;br /&gt;
== Test Approach ==&lt;br /&gt;
&lt;br /&gt;
=== Sanity testing ===&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following DEV discussions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maintaining the test cases ==&lt;br /&gt;
== Submitting Bugs ==&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
Use cases are documented in the corresponding section for each test case on [[Kernel Development Test Cases]] wiki.&lt;br /&gt;
&lt;br /&gt;
==HW Requirements==&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==Software Requirements==&lt;br /&gt;
* Poky&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
==Environment Requirements==&lt;br /&gt;
*YP 2.3 Release:&lt;br /&gt;
*Ubuntu-14.04&lt;br /&gt;
*Ubuntu-14.10&lt;br /&gt;
*Ubuntu-15.04&lt;br /&gt;
*Fedora-21&lt;br /&gt;
*CentOS-6.*&lt;br /&gt;
*CentOS-7.*&lt;br /&gt;
*Debian-7.*&lt;br /&gt;
*Debian-8.*&lt;br /&gt;
*openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
&amp;lt;b&amp;gt; Features to be Tested &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: 1. linux-yocto-custom&lt;br /&gt;
:: 1.1 local source&lt;br /&gt;
:: 1.2 local source with parallel meta&lt;br /&gt;
:: 1.3 local source with recipe-space meta&lt;br /&gt;
: 2. External Source&lt;br /&gt;
: 3. Defconfig&lt;br /&gt;
: 4.Defconfig + Fragments&lt;br /&gt;
: 5.building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
The complete set of test cases are documented on the [[Kernel Development Test Cases]] wiki. They are also listed on the master Kernel test plan in Testopia, that can be reached following this [https://bugzilla.yoctoproject.org/tr_show_plan.cgi?plan_id=94 link].&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
==Test execution Cycle==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Dependencies=&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest recipe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Risk Assumptions=&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration files in order to achieve a correct execution.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
* bitbake&lt;br /&gt;
* yocto-layer&lt;br /&gt;
* bitbake-layers&lt;br /&gt;
* Any available text editor&lt;br /&gt;
&lt;br /&gt;
= Release Criteria/ Exit Criteria =&lt;br /&gt;
All test cases pass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
THIS IS THE OLD TESTING PLAN &lt;br /&gt;
&lt;br /&gt;
= Test Areas =&lt;br /&gt;
eSDK consists of two big components, as follows:&lt;br /&gt;
&lt;br /&gt;
== Backend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*  [[REST_API_Contracts | REST API]]  verification – create Django tests to detect API calls returning incomplete (fields having null values) or wrong data for a certain set of entries from each table - our goal is to have 90% data collected. The tests can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=andreeap/eSDK-tests&amp;amp;id=7cfd179be5db2a5530d60093fd09d0240138c2fa here];&lt;br /&gt;
*  Calculation of the data collection rate - the ratio between the number of the variables having null values ​​and the total number of variables collected (the data collection rate does not include wrong values); Run: ./fail_rate.py path_to_eSDK.sqlite_file. Output: table_name field_name value_that_never_changes and for each table a percentage: (the number of occurences of all the fields that never change their values)/(total number of entries for that table);&lt;br /&gt;
*  Verify that all links in the simple UI are available;&lt;br /&gt;
*  Verify the quality of the data collected through the simple UI;&lt;br /&gt;
*  Verify the quality of the data collected by verifying most of the values from the database by connecting directly to the database - our immediate goal is to have 90% correct data collected;&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ====&lt;br /&gt;
*  Verify the easy usage of eSDK ([https://wiki.yoctoproject.org/wiki/WebHob#Installation_and_Running easy to install and start/stop the eSDK server])&lt;br /&gt;
&lt;br /&gt;
== Frontend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*   Manual testing in the first stage;&lt;br /&gt;
*   Automate testing using  [http://www.seleniumhq.org/ Selenium], in the second stage;&lt;br /&gt;
&lt;br /&gt;
==== Compatibility tests ====&lt;br /&gt;
*   Verify the behavior of the GUI on different browsers and operating systems; TBD&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ==== &lt;br /&gt;
*   Verify if the GUI design is as described here: http://yoctoproject.org/webhob;&lt;br /&gt;
*   Friendly graphical user interface;&lt;br /&gt;
&lt;br /&gt;
==== Performance tests ====&lt;br /&gt;
*   Stress testing (e.g. display appropriate error messages when the system is under stress);&lt;br /&gt;
&lt;br /&gt;
= Test Cycle =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| || || colspan=&amp;quot;3&amp;quot; | Test execution cycle&lt;br /&gt;
|-&lt;br /&gt;
| || || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Build type || Weekly  || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Release || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[#Test Areas]] || [[#Backend]] || Yes || Yes || Yes &lt;br /&gt;
|-&lt;br /&gt;
| [[#Frontend]]  || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Target machine || qemuarm || || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemumips|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemuppc|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86|| Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86-64  ||  ||  || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Target image|| core-image-minimal|| Yes || || &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk|| || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built weekly and released through the distribution team.&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Functionality test on most areas with minimum sets of tests;&lt;br /&gt;
** Regression test with high probability to find bugs.&lt;br /&gt;
&lt;br /&gt;
== Full Pass Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built as candidates for milestone or final release;&lt;br /&gt;
** Passed [[#Weekly Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Ensure functionality of eSDK component.&lt;br /&gt;
&lt;br /&gt;
== Release Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Release candidates that pass [[#Full Pass Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** All scheduled features are covered, or rescheduled;&lt;br /&gt;
** All relevant bugs are fixed and verified.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32435</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32435"/>
		<updated>2017-10-17T00:08:28Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Test Strategy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Kernel Development QA]]&lt;br /&gt;
This article is the test plan for  Kernel Development.&lt;br /&gt;
&lt;br /&gt;
= About Kernel Development =&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using the kernel tools, and shows you how to use the metadata required to work with the kernel. &lt;br /&gt;
For more information you can review  [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development.]&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
Verify all kernel development components are fully functional. The approach is to use manual testing.&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
==QA Team involved in Kernel Development testing==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez ]&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
* linux-yocto-custom&lt;br /&gt;
* local source&lt;br /&gt;
* local source with parallel meta&lt;br /&gt;
* local source with recipe-space meta&lt;br /&gt;
* External source&lt;br /&gt;
* defconfig&lt;br /&gt;
* defconfig + fragments&lt;br /&gt;
* linux-yocto meta data + local fragments&lt;br /&gt;
* building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
= Test Strategy =&lt;br /&gt;
There are several test approaches for kernel development, such as:&lt;br /&gt;
* Perform test cases agreed upon development during periodic full pass test cycles, according to the schedule.&lt;br /&gt;
* Write new test cases based on developer requests or new features added, as required.&lt;br /&gt;
* Maintain current test cases and update them according to changes.&lt;br /&gt;
* Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
== Test automation ==&lt;br /&gt;
Tests will be gradually automated whenever it may be possible.&lt;br /&gt;
== Test Approach ==&lt;br /&gt;
&lt;br /&gt;
=== Sanity testing ===&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following DEV discussions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maintaining the test cases ==&lt;br /&gt;
== Submitting Bugs ==&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
This set of requirements is listed in a two column format, Bugzilla entries vs. requirement description in the form of a user story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to  generate and change  configuration files (defconfig).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1612 Test Case 1612]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to generate and change  configuration files (defconfig + fragments).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1613 Test Case 1613]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to apply single patch to Linux Kernel Source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1614 Test Case 1614]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to to be able to work with your own sources.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1615 Test Case 1615]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with own sources for linux-yocto-custom-local-source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1616 Test Case 1616]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with recipe-space meta.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1617 Test Case 1617]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with External Source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1618 Test Case 1618]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to configure linux-yocto meta data + local fragments.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1618 Test Case 1618]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to build external modules (hello-mod).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1832 Test Case 1832]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with local source with parallel meta..  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1833 Test Case 1833]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The complete test cases are not completed due current design.&lt;br /&gt;
&lt;br /&gt;
==HW Requirements==&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==Software Requirements==&lt;br /&gt;
* Poky.&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
==Environment Requirements==&lt;br /&gt;
**YP 2.3 Release:&lt;br /&gt;
**Ubuntu-14.04&lt;br /&gt;
**Ubuntu-14.10&lt;br /&gt;
**Ubuntu-15.04&lt;br /&gt;
**Fedora-21&lt;br /&gt;
**CentOS-6.*&lt;br /&gt;
**CentOS-7.*&lt;br /&gt;
**Debian-7.*&lt;br /&gt;
**Debian-8.*&lt;br /&gt;
**openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
&amp;lt;b&amp;gt; Features to be Tested &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;1. linux-yocto-custom.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.1 local source. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.2 local source with parallel meta&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.3 local source with recipe-space meta&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;2. External Source.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;3.Defconfig.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;4.Defconfig + Fragments.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;5.building external modules (hello-mod).&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
==Test execution Cycle==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Dependencies=&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest recipe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Risk Assumptions=&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration in order to achieve this.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs. A common “Long Term Support”.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&amp;lt;p&amp;gt; TBD &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Release Criteria/ Exit Criteria =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
THIS IS THE OLD TESTING PLAN &lt;br /&gt;
&lt;br /&gt;
= Test Areas =&lt;br /&gt;
eSDK consists of two big components, as follows:&lt;br /&gt;
&lt;br /&gt;
== Backend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*  [[REST_API_Contracts | REST API]]  verification – create Django tests to detect API calls returning incomplete (fields having null values) or wrong data for a certain set of entries from each table - our goal is to have 90% data collected. The tests can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=andreeap/eSDK-tests&amp;amp;id=7cfd179be5db2a5530d60093fd09d0240138c2fa here];&lt;br /&gt;
*  Calculation of the data collection rate - the ratio between the number of the variables having null values ​​and the total number of variables collected (the data collection rate does not include wrong values); Run: ./fail_rate.py path_to_eSDK.sqlite_file. Output: table_name field_name value_that_never_changes and for each table a percentage: (the number of occurences of all the fields that never change their values)/(total number of entries for that table);&lt;br /&gt;
*  Verify that all links in the simple UI are available;&lt;br /&gt;
*  Verify the quality of the data collected through the simple UI;&lt;br /&gt;
*  Verify the quality of the data collected by verifying most of the values from the database by connecting directly to the database - our immediate goal is to have 90% correct data collected;&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ====&lt;br /&gt;
*  Verify the easy usage of eSDK ([https://wiki.yoctoproject.org/wiki/WebHob#Installation_and_Running easy to install and start/stop the eSDK server])&lt;br /&gt;
&lt;br /&gt;
== Frontend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*   Manual testing in the first stage;&lt;br /&gt;
*   Automate testing using  [http://www.seleniumhq.org/ Selenium], in the second stage;&lt;br /&gt;
&lt;br /&gt;
==== Compatibility tests ====&lt;br /&gt;
*   Verify the behavior of the GUI on different browsers and operating systems; TBD&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ==== &lt;br /&gt;
*   Verify if the GUI design is as described here: http://yoctoproject.org/webhob;&lt;br /&gt;
*   Friendly graphical user interface;&lt;br /&gt;
&lt;br /&gt;
==== Performance tests ====&lt;br /&gt;
*   Stress testing (e.g. display appropriate error messages when the system is under stress);&lt;br /&gt;
&lt;br /&gt;
= Test Cycle =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| || || colspan=&amp;quot;3&amp;quot; | Test execution cycle&lt;br /&gt;
|-&lt;br /&gt;
| || || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Build type || Weekly  || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Release || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[#Test Areas]] || [[#Backend]] || Yes || Yes || Yes &lt;br /&gt;
|-&lt;br /&gt;
| [[#Frontend]]  || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Target machine || qemuarm || || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemumips|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemuppc|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86|| Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86-64  ||  ||  || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Target image|| core-image-minimal|| Yes || || &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk|| || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built weekly and released through the distribution team.&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Functionality test on most areas with minimum sets of tests;&lt;br /&gt;
** Regression test with high probability to find bugs.&lt;br /&gt;
&lt;br /&gt;
== Full Pass Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built as candidates for milestone or final release;&lt;br /&gt;
** Passed [[#Weekly Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Ensure functionality of eSDK component.&lt;br /&gt;
&lt;br /&gt;
== Release Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Release candidates that pass [[#Full Pass Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** All scheduled features are covered, or rescheduled;&lt;br /&gt;
** All relevant bugs are fixed and verified.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32434</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32434"/>
		<updated>2017-10-16T23:59:10Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Scope */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Kernel Development QA]]&lt;br /&gt;
This article is the test plan for  Kernel Development.&lt;br /&gt;
&lt;br /&gt;
= About Kernel Development =&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using the kernel tools, and shows you how to use the metadata required to work with the kernel. &lt;br /&gt;
For more information you can review  [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development.]&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
Verify all kernel development components are fully functional. The approach is to use manual testing.&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
==QA Team involved in Kernel Development testing==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez ]&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
* linux-yocto-custom&lt;br /&gt;
* local source&lt;br /&gt;
* local source with parallel meta&lt;br /&gt;
* local source with recipe-space meta&lt;br /&gt;
* External source&lt;br /&gt;
* defconfig&lt;br /&gt;
* defconfig + fragments&lt;br /&gt;
* linux-yocto meta data + local fragments&lt;br /&gt;
* building external modules (hello-mod)&lt;br /&gt;
&lt;br /&gt;
= Test Strategy =&lt;br /&gt;
There are several test approaches for Kernel Development, such as:&lt;br /&gt;
Perform test cases agreed upon the development during periodic Manual (full pass) according to the Schedule.&lt;br /&gt;
Write new test cases based on developer request or new features as required.&lt;br /&gt;
Maintain current test cases and update them accordingly the new changes.&lt;br /&gt;
Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test automation ==&lt;br /&gt;
Not required until now.&lt;br /&gt;
== Test Approach ==&lt;br /&gt;
&lt;br /&gt;
=== Sanity testing ===&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following DEV discussions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maintaining the test cases ==&lt;br /&gt;
== Submitting Bugs ==&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
This set of requirements is listed in a two column format, Bugzilla entries vs. requirement description in the form of a user story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to  generate and change  configuration files (defconfig).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1612 Test Case 1612]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to generate and change  configuration files (defconfig + fragments).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1613 Test Case 1613]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to apply single patch to Linux Kernel Source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1614 Test Case 1614]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to to be able to work with your own sources.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1615 Test Case 1615]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with own sources for linux-yocto-custom-local-source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1616 Test Case 1616]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with recipe-space meta.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1617 Test Case 1617]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with External Source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1618 Test Case 1618]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to configure linux-yocto meta data + local fragments.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1618 Test Case 1618]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to build external modules (hello-mod).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1832 Test Case 1832]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with local source with parallel meta..  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1833 Test Case 1833]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The complete test cases are not completed due current design.&lt;br /&gt;
&lt;br /&gt;
==HW Requirements==&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==Software Requirements==&lt;br /&gt;
* Poky.&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
==Environment Requirements==&lt;br /&gt;
**YP 2.3 Release:&lt;br /&gt;
**Ubuntu-14.04&lt;br /&gt;
**Ubuntu-14.10&lt;br /&gt;
**Ubuntu-15.04&lt;br /&gt;
**Fedora-21&lt;br /&gt;
**CentOS-6.*&lt;br /&gt;
**CentOS-7.*&lt;br /&gt;
**Debian-7.*&lt;br /&gt;
**Debian-8.*&lt;br /&gt;
**openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
&amp;lt;b&amp;gt; Features to be Tested &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;1. linux-yocto-custom.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.1 local source. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.2 local source with parallel meta&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.3 local source with recipe-space meta&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;2. External Source.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;3.Defconfig.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;4.Defconfig + Fragments.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;5.building external modules (hello-mod).&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
==Test execution Cycle==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Dependencies=&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest recipe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Risk Assumptions=&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration in order to achieve this.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs. A common “Long Term Support”.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&amp;lt;p&amp;gt; TBD &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Release Criteria/ Exit Criteria =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
THIS IS THE OLD TESTING PLAN &lt;br /&gt;
&lt;br /&gt;
= Test Areas =&lt;br /&gt;
eSDK consists of two big components, as follows:&lt;br /&gt;
&lt;br /&gt;
== Backend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*  [[REST_API_Contracts | REST API]]  verification – create Django tests to detect API calls returning incomplete (fields having null values) or wrong data for a certain set of entries from each table - our goal is to have 90% data collected. The tests can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=andreeap/eSDK-tests&amp;amp;id=7cfd179be5db2a5530d60093fd09d0240138c2fa here];&lt;br /&gt;
*  Calculation of the data collection rate - the ratio between the number of the variables having null values ​​and the total number of variables collected (the data collection rate does not include wrong values); Run: ./fail_rate.py path_to_eSDK.sqlite_file. Output: table_name field_name value_that_never_changes and for each table a percentage: (the number of occurences of all the fields that never change their values)/(total number of entries for that table);&lt;br /&gt;
*  Verify that all links in the simple UI are available;&lt;br /&gt;
*  Verify the quality of the data collected through the simple UI;&lt;br /&gt;
*  Verify the quality of the data collected by verifying most of the values from the database by connecting directly to the database - our immediate goal is to have 90% correct data collected;&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ====&lt;br /&gt;
*  Verify the easy usage of eSDK ([https://wiki.yoctoproject.org/wiki/WebHob#Installation_and_Running easy to install and start/stop the eSDK server])&lt;br /&gt;
&lt;br /&gt;
== Frontend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*   Manual testing in the first stage;&lt;br /&gt;
*   Automate testing using  [http://www.seleniumhq.org/ Selenium], in the second stage;&lt;br /&gt;
&lt;br /&gt;
==== Compatibility tests ====&lt;br /&gt;
*   Verify the behavior of the GUI on different browsers and operating systems; TBD&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ==== &lt;br /&gt;
*   Verify if the GUI design is as described here: http://yoctoproject.org/webhob;&lt;br /&gt;
*   Friendly graphical user interface;&lt;br /&gt;
&lt;br /&gt;
==== Performance tests ====&lt;br /&gt;
*   Stress testing (e.g. display appropriate error messages when the system is under stress);&lt;br /&gt;
&lt;br /&gt;
= Test Cycle =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| || || colspan=&amp;quot;3&amp;quot; | Test execution cycle&lt;br /&gt;
|-&lt;br /&gt;
| || || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Build type || Weekly  || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Release || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[#Test Areas]] || [[#Backend]] || Yes || Yes || Yes &lt;br /&gt;
|-&lt;br /&gt;
| [[#Frontend]]  || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Target machine || qemuarm || || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemumips|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemuppc|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86|| Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86-64  ||  ||  || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Target image|| core-image-minimal|| Yes || || &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk|| || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built weekly and released through the distribution team.&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Functionality test on most areas with minimum sets of tests;&lt;br /&gt;
** Regression test with high probability to find bugs.&lt;br /&gt;
&lt;br /&gt;
== Full Pass Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built as candidates for milestone or final release;&lt;br /&gt;
** Passed [[#Weekly Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Ensure functionality of eSDK component.&lt;br /&gt;
&lt;br /&gt;
== Release Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Release candidates that pass [[#Full Pass Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** All scheduled features are covered, or rescheduled;&lt;br /&gt;
** All relevant bugs are fixed and verified.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32433</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32433"/>
		<updated>2017-10-16T23:58:16Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Kernel Development QA]]&lt;br /&gt;
This article is the test plan for  Kernel Development.&lt;br /&gt;
&lt;br /&gt;
= About Kernel Development =&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using the kernel tools, and shows you how to use the metadata required to work with the kernel. &lt;br /&gt;
For more information you can review  [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development.]&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
Verify all kernel development components are fully functional. The approach is to use manual testing.&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
==QA Team involved in Kernel Development testing==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez ]&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
* linux-yocto-custom&lt;br /&gt;
* local source.&lt;br /&gt;
* local source with parallel meta.&lt;br /&gt;
* local source with recipe-space meta.&lt;br /&gt;
* External Source&lt;br /&gt;
* defconfig&lt;br /&gt;
* defconfig + fragments&lt;br /&gt;
* linux-yocto meta data + local fragments.&lt;br /&gt;
* building external modules (hello-mod).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy =&lt;br /&gt;
There are several test approaches for Kernel Development, such as:&lt;br /&gt;
Perform test cases agreed upon the development during periodic Manual (full pass) according to the Schedule.&lt;br /&gt;
Write new test cases based on developer request or new features as required.&lt;br /&gt;
Maintain current test cases and update them accordingly the new changes.&lt;br /&gt;
Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test automation ==&lt;br /&gt;
Not required until now.&lt;br /&gt;
== Test Approach ==&lt;br /&gt;
&lt;br /&gt;
=== Sanity testing ===&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following DEV discussions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maintaining the test cases ==&lt;br /&gt;
== Submitting Bugs ==&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
This set of requirements is listed in a two column format, Bugzilla entries vs. requirement description in the form of a user story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to  generate and change  configuration files (defconfig).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1612 Test Case 1612]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to generate and change  configuration files (defconfig + fragments).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1613 Test Case 1613]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to apply single patch to Linux Kernel Source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1614 Test Case 1614]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to to be able to work with your own sources.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1615 Test Case 1615]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with own sources for linux-yocto-custom-local-source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1616 Test Case 1616]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with recipe-space meta.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1617 Test Case 1617]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with External Source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1618 Test Case 1618]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to configure linux-yocto meta data + local fragments.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1618 Test Case 1618]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to build external modules (hello-mod).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1832 Test Case 1832]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with local source with parallel meta..  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1833 Test Case 1833]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The complete test cases are not completed due current design.&lt;br /&gt;
&lt;br /&gt;
==HW Requirements==&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==Software Requirements==&lt;br /&gt;
* Poky.&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
==Environment Requirements==&lt;br /&gt;
**YP 2.3 Release:&lt;br /&gt;
**Ubuntu-14.04&lt;br /&gt;
**Ubuntu-14.10&lt;br /&gt;
**Ubuntu-15.04&lt;br /&gt;
**Fedora-21&lt;br /&gt;
**CentOS-6.*&lt;br /&gt;
**CentOS-7.*&lt;br /&gt;
**Debian-7.*&lt;br /&gt;
**Debian-8.*&lt;br /&gt;
**openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
&amp;lt;b&amp;gt; Features to be Tested &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;1. linux-yocto-custom.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.1 local source. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.2 local source with parallel meta&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.3 local source with recipe-space meta&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;2. External Source.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;3.Defconfig.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;4.Defconfig + Fragments.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;5.building external modules (hello-mod).&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
==Test execution Cycle==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Dependencies=&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest recipe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Risk Assumptions=&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration in order to achieve this.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs. A common “Long Term Support”.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&amp;lt;p&amp;gt; TBD &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Release Criteria/ Exit Criteria =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
THIS IS THE OLD TESTING PLAN &lt;br /&gt;
&lt;br /&gt;
= Test Areas =&lt;br /&gt;
eSDK consists of two big components, as follows:&lt;br /&gt;
&lt;br /&gt;
== Backend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*  [[REST_API_Contracts | REST API]]  verification – create Django tests to detect API calls returning incomplete (fields having null values) or wrong data for a certain set of entries from each table - our goal is to have 90% data collected. The tests can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=andreeap/eSDK-tests&amp;amp;id=7cfd179be5db2a5530d60093fd09d0240138c2fa here];&lt;br /&gt;
*  Calculation of the data collection rate - the ratio between the number of the variables having null values ​​and the total number of variables collected (the data collection rate does not include wrong values); Run: ./fail_rate.py path_to_eSDK.sqlite_file. Output: table_name field_name value_that_never_changes and for each table a percentage: (the number of occurences of all the fields that never change their values)/(total number of entries for that table);&lt;br /&gt;
*  Verify that all links in the simple UI are available;&lt;br /&gt;
*  Verify the quality of the data collected through the simple UI;&lt;br /&gt;
*  Verify the quality of the data collected by verifying most of the values from the database by connecting directly to the database - our immediate goal is to have 90% correct data collected;&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ====&lt;br /&gt;
*  Verify the easy usage of eSDK ([https://wiki.yoctoproject.org/wiki/WebHob#Installation_and_Running easy to install and start/stop the eSDK server])&lt;br /&gt;
&lt;br /&gt;
== Frontend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*   Manual testing in the first stage;&lt;br /&gt;
*   Automate testing using  [http://www.seleniumhq.org/ Selenium], in the second stage;&lt;br /&gt;
&lt;br /&gt;
==== Compatibility tests ====&lt;br /&gt;
*   Verify the behavior of the GUI on different browsers and operating systems; TBD&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ==== &lt;br /&gt;
*   Verify if the GUI design is as described here: http://yoctoproject.org/webhob;&lt;br /&gt;
*   Friendly graphical user interface;&lt;br /&gt;
&lt;br /&gt;
==== Performance tests ====&lt;br /&gt;
*   Stress testing (e.g. display appropriate error messages when the system is under stress);&lt;br /&gt;
&lt;br /&gt;
= Test Cycle =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| || || colspan=&amp;quot;3&amp;quot; | Test execution cycle&lt;br /&gt;
|-&lt;br /&gt;
| || || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Build type || Weekly  || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Release || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[#Test Areas]] || [[#Backend]] || Yes || Yes || Yes &lt;br /&gt;
|-&lt;br /&gt;
| [[#Frontend]]  || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Target machine || qemuarm || || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemumips|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemuppc|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86|| Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86-64  ||  ||  || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Target image|| core-image-minimal|| Yes || || &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk|| || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built weekly and released through the distribution team.&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Functionality test on most areas with minimum sets of tests;&lt;br /&gt;
** Regression test with high probability to find bugs.&lt;br /&gt;
&lt;br /&gt;
== Full Pass Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built as candidates for milestone or final release;&lt;br /&gt;
** Passed [[#Weekly Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Ensure functionality of eSDK component.&lt;br /&gt;
&lt;br /&gt;
== Release Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Release candidates that pass [[#Full Pass Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** All scheduled features are covered, or rescheduled;&lt;br /&gt;
** All relevant bugs are fixed and verified.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32432</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32432"/>
		<updated>2017-10-16T23:50:35Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* About Kernel Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Kernel Development QA]]&lt;br /&gt;
This article is the test plan for  Kernel Development.&lt;br /&gt;
&lt;br /&gt;
= About Kernel Development =&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using the kernel tools, and shows you how to use the metadata required to work with the kernel. &lt;br /&gt;
For more information you can review  [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development.]&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
Verify all Kernel Development components to be fully functional. This approach is based from Manual Testing.&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
==QA Team involved in Kernel Development testing==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez ]&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
* linux-yocto-custom&lt;br /&gt;
* local source.&lt;br /&gt;
* local source with parallel meta.&lt;br /&gt;
* local source with recipe-space meta.&lt;br /&gt;
* External Source&lt;br /&gt;
* defconfig&lt;br /&gt;
* defconfig + fragments&lt;br /&gt;
* linux-yocto meta data + local fragments.&lt;br /&gt;
* building external modules (hello-mod).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy =&lt;br /&gt;
There are several test approaches for Kernel Development, such as:&lt;br /&gt;
Perform test cases agreed upon the development during periodic Manual (full pass) according to the Schedule.&lt;br /&gt;
Write new test cases based on developer request or new features as required.&lt;br /&gt;
Maintain current test cases and update them accordingly the new changes.&lt;br /&gt;
Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test automation ==&lt;br /&gt;
Not required until now.&lt;br /&gt;
== Test Approach ==&lt;br /&gt;
&lt;br /&gt;
=== Sanity testing ===&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following DEV discussions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maintaining the test cases ==&lt;br /&gt;
== Submitting Bugs ==&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
This set of requirements is listed in a two column format, Bugzilla entries vs. requirement description in the form of a user story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to  generate and change  configuration files (defconfig).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1612 Test Case 1612]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to generate and change  configuration files (defconfig + fragments).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1613 Test Case 1613]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to apply single patch to Linux Kernel Source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1614 Test Case 1614]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to to be able to work with your own sources.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1615 Test Case 1615]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with own sources for linux-yocto-custom-local-source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1616 Test Case 1616]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with recipe-space meta.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1617 Test Case 1617]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with External Source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1618 Test Case 1618]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to configure linux-yocto meta data + local fragments.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1618 Test Case 1618]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to build external modules (hello-mod).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1832 Test Case 1832]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with local source with parallel meta..  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1833 Test Case 1833]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The complete test cases are not completed due current design.&lt;br /&gt;
&lt;br /&gt;
==HW Requirements==&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==Software Requirements==&lt;br /&gt;
* Poky.&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
==Environment Requirements==&lt;br /&gt;
**YP 2.3 Release:&lt;br /&gt;
**Ubuntu-14.04&lt;br /&gt;
**Ubuntu-14.10&lt;br /&gt;
**Ubuntu-15.04&lt;br /&gt;
**Fedora-21&lt;br /&gt;
**CentOS-6.*&lt;br /&gt;
**CentOS-7.*&lt;br /&gt;
**Debian-7.*&lt;br /&gt;
**Debian-8.*&lt;br /&gt;
**openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
&amp;lt;b&amp;gt; Features to be Tested &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;1. linux-yocto-custom.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.1 local source. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.2 local source with parallel meta&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.3 local source with recipe-space meta&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;2. External Source.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;3.Defconfig.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;4.Defconfig + Fragments.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;5.building external modules (hello-mod).&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
==Test execution Cycle==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Dependencies=&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest recipe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Risk Assumptions=&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration in order to achieve this.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs. A common “Long Term Support”.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&amp;lt;p&amp;gt; TBD &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Release Criteria/ Exit Criteria =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
THIS IS THE OLD TESTING PLAN &lt;br /&gt;
&lt;br /&gt;
= Test Areas =&lt;br /&gt;
eSDK consists of two big components, as follows:&lt;br /&gt;
&lt;br /&gt;
== Backend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*  [[REST_API_Contracts | REST API]]  verification – create Django tests to detect API calls returning incomplete (fields having null values) or wrong data for a certain set of entries from each table - our goal is to have 90% data collected. The tests can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=andreeap/eSDK-tests&amp;amp;id=7cfd179be5db2a5530d60093fd09d0240138c2fa here];&lt;br /&gt;
*  Calculation of the data collection rate - the ratio between the number of the variables having null values ​​and the total number of variables collected (the data collection rate does not include wrong values); Run: ./fail_rate.py path_to_eSDK.sqlite_file. Output: table_name field_name value_that_never_changes and for each table a percentage: (the number of occurences of all the fields that never change their values)/(total number of entries for that table);&lt;br /&gt;
*  Verify that all links in the simple UI are available;&lt;br /&gt;
*  Verify the quality of the data collected through the simple UI;&lt;br /&gt;
*  Verify the quality of the data collected by verifying most of the values from the database by connecting directly to the database - our immediate goal is to have 90% correct data collected;&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ====&lt;br /&gt;
*  Verify the easy usage of eSDK ([https://wiki.yoctoproject.org/wiki/WebHob#Installation_and_Running easy to install and start/stop the eSDK server])&lt;br /&gt;
&lt;br /&gt;
== Frontend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*   Manual testing in the first stage;&lt;br /&gt;
*   Automate testing using  [http://www.seleniumhq.org/ Selenium], in the second stage;&lt;br /&gt;
&lt;br /&gt;
==== Compatibility tests ====&lt;br /&gt;
*   Verify the behavior of the GUI on different browsers and operating systems; TBD&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ==== &lt;br /&gt;
*   Verify if the GUI design is as described here: http://yoctoproject.org/webhob;&lt;br /&gt;
*   Friendly graphical user interface;&lt;br /&gt;
&lt;br /&gt;
==== Performance tests ====&lt;br /&gt;
*   Stress testing (e.g. display appropriate error messages when the system is under stress);&lt;br /&gt;
&lt;br /&gt;
= Test Cycle =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| || || colspan=&amp;quot;3&amp;quot; | Test execution cycle&lt;br /&gt;
|-&lt;br /&gt;
| || || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Build type || Weekly  || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Release || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[#Test Areas]] || [[#Backend]] || Yes || Yes || Yes &lt;br /&gt;
|-&lt;br /&gt;
| [[#Frontend]]  || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Target machine || qemuarm || || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemumips|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemuppc|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86|| Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86-64  ||  ||  || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Target image|| core-image-minimal|| Yes || || &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk|| || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built weekly and released through the distribution team.&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Functionality test on most areas with minimum sets of tests;&lt;br /&gt;
** Regression test with high probability to find bugs.&lt;br /&gt;
&lt;br /&gt;
== Full Pass Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built as candidates for milestone or final release;&lt;br /&gt;
** Passed [[#Weekly Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Ensure functionality of eSDK component.&lt;br /&gt;
&lt;br /&gt;
== Release Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Release candidates that pass [[#Full Pass Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** All scheduled features are covered, or rescheduled;&lt;br /&gt;
** All relevant bugs are fixed and verified.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32431</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32431"/>
		<updated>2017-10-16T23:48:00Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* QA Team involved in Kernel Development testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Kernel Development QA]]&lt;br /&gt;
This article is the test plan for  Kernel Development.&lt;br /&gt;
&lt;br /&gt;
= About Kernel Development =&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using the kernel tools, and shows you how to use the metadata needed to work with the kernel. &lt;br /&gt;
For more information you can review  [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development.]&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
Verify all Kernel Development components to be fully functional. This approach is based from Manual Testing.&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
==QA Team involved in Kernel Development testing==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez ]&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
* linux-yocto-custom&lt;br /&gt;
* local source.&lt;br /&gt;
* local source with parallel meta.&lt;br /&gt;
* local source with recipe-space meta.&lt;br /&gt;
* External Source&lt;br /&gt;
* defconfig&lt;br /&gt;
* defconfig + fragments&lt;br /&gt;
* linux-yocto meta data + local fragments.&lt;br /&gt;
* building external modules (hello-mod).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy =&lt;br /&gt;
There are several test approaches for Kernel Development, such as:&lt;br /&gt;
Perform test cases agreed upon the development during periodic Manual (full pass) according to the Schedule.&lt;br /&gt;
Write new test cases based on developer request or new features as required.&lt;br /&gt;
Maintain current test cases and update them accordingly the new changes.&lt;br /&gt;
Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test automation ==&lt;br /&gt;
Not required until now.&lt;br /&gt;
== Test Approach ==&lt;br /&gt;
&lt;br /&gt;
=== Sanity testing ===&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following DEV discussions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maintaining the test cases ==&lt;br /&gt;
== Submitting Bugs ==&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
This set of requirements is listed in a two column format, Bugzilla entries vs. requirement description in the form of a user story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to  generate and change  configuration files (defconfig).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1612 Test Case 1612]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to generate and change  configuration files (defconfig + fragments).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1613 Test Case 1613]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to apply single patch to Linux Kernel Source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1614 Test Case 1614]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to to be able to work with your own sources.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1615 Test Case 1615]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with own sources for linux-yocto-custom-local-source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1616 Test Case 1616]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with recipe-space meta.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1617 Test Case 1617]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with External Source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1618 Test Case 1618]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to configure linux-yocto meta data + local fragments.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1618 Test Case 1618]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to build external modules (hello-mod).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1832 Test Case 1832]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with local source with parallel meta..  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1833 Test Case 1833]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The complete test cases are not completed due current design.&lt;br /&gt;
&lt;br /&gt;
==HW Requirements==&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==Software Requirements==&lt;br /&gt;
* Poky.&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
==Environment Requirements==&lt;br /&gt;
**YP 2.3 Release:&lt;br /&gt;
**Ubuntu-14.04&lt;br /&gt;
**Ubuntu-14.10&lt;br /&gt;
**Ubuntu-15.04&lt;br /&gt;
**Fedora-21&lt;br /&gt;
**CentOS-6.*&lt;br /&gt;
**CentOS-7.*&lt;br /&gt;
**Debian-7.*&lt;br /&gt;
**Debian-8.*&lt;br /&gt;
**openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
&amp;lt;b&amp;gt; Features to be Tested &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;1. linux-yocto-custom.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.1 local source. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.2 local source with parallel meta&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.3 local source with recipe-space meta&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;2. External Source.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;3.Defconfig.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;4.Defconfig + Fragments.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;5.building external modules (hello-mod).&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
==Test execution Cycle==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Dependencies=&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest recipe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Risk Assumptions=&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration in order to achieve this.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs. A common “Long Term Support”.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&amp;lt;p&amp;gt; TBD &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Release Criteria/ Exit Criteria =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
THIS IS THE OLD TESTING PLAN &lt;br /&gt;
&lt;br /&gt;
= Test Areas =&lt;br /&gt;
eSDK consists of two big components, as follows:&lt;br /&gt;
&lt;br /&gt;
== Backend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*  [[REST_API_Contracts | REST API]]  verification – create Django tests to detect API calls returning incomplete (fields having null values) or wrong data for a certain set of entries from each table - our goal is to have 90% data collected. The tests can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=andreeap/eSDK-tests&amp;amp;id=7cfd179be5db2a5530d60093fd09d0240138c2fa here];&lt;br /&gt;
*  Calculation of the data collection rate - the ratio between the number of the variables having null values ​​and the total number of variables collected (the data collection rate does not include wrong values); Run: ./fail_rate.py path_to_eSDK.sqlite_file. Output: table_name field_name value_that_never_changes and for each table a percentage: (the number of occurences of all the fields that never change their values)/(total number of entries for that table);&lt;br /&gt;
*  Verify that all links in the simple UI are available;&lt;br /&gt;
*  Verify the quality of the data collected through the simple UI;&lt;br /&gt;
*  Verify the quality of the data collected by verifying most of the values from the database by connecting directly to the database - our immediate goal is to have 90% correct data collected;&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ====&lt;br /&gt;
*  Verify the easy usage of eSDK ([https://wiki.yoctoproject.org/wiki/WebHob#Installation_and_Running easy to install and start/stop the eSDK server])&lt;br /&gt;
&lt;br /&gt;
== Frontend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*   Manual testing in the first stage;&lt;br /&gt;
*   Automate testing using  [http://www.seleniumhq.org/ Selenium], in the second stage;&lt;br /&gt;
&lt;br /&gt;
==== Compatibility tests ====&lt;br /&gt;
*   Verify the behavior of the GUI on different browsers and operating systems; TBD&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ==== &lt;br /&gt;
*   Verify if the GUI design is as described here: http://yoctoproject.org/webhob;&lt;br /&gt;
*   Friendly graphical user interface;&lt;br /&gt;
&lt;br /&gt;
==== Performance tests ====&lt;br /&gt;
*   Stress testing (e.g. display appropriate error messages when the system is under stress);&lt;br /&gt;
&lt;br /&gt;
= Test Cycle =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| || || colspan=&amp;quot;3&amp;quot; | Test execution cycle&lt;br /&gt;
|-&lt;br /&gt;
| || || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Build type || Weekly  || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Release || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[#Test Areas]] || [[#Backend]] || Yes || Yes || Yes &lt;br /&gt;
|-&lt;br /&gt;
| [[#Frontend]]  || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Target machine || qemuarm || || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemumips|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemuppc|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86|| Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86-64  ||  ||  || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Target image|| core-image-minimal|| Yes || || &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk|| || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built weekly and released through the distribution team.&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Functionality test on most areas with minimum sets of tests;&lt;br /&gt;
** Regression test with high probability to find bugs.&lt;br /&gt;
&lt;br /&gt;
== Full Pass Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built as candidates for milestone or final release;&lt;br /&gt;
** Passed [[#Weekly Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Ensure functionality of eSDK component.&lt;br /&gt;
&lt;br /&gt;
== Release Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Release candidates that pass [[#Full Pass Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** All scheduled features are covered, or rescheduled;&lt;br /&gt;
** All relevant bugs are fixed and verified.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32430</id>
		<title>Kernel Development QA</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_QA&amp;diff=32430"/>
		<updated>2017-10-16T23:47:26Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* About Kernel Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Kernel Development QA]]&lt;br /&gt;
This article is the test plan for  Kernel Development.&lt;br /&gt;
&lt;br /&gt;
= About Kernel Development =&lt;br /&gt;
Describes common tasks you can perform on Yocto Project using the kernel tools, and shows you how to use the metadata needed to work with the kernel. &lt;br /&gt;
For more information you can review  [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development.]&lt;br /&gt;
&lt;br /&gt;
= Objectives =&lt;br /&gt;
Verify all Kernel Development components to be fully functional. This approach is based from Manual Testing.&lt;br /&gt;
&lt;br /&gt;
= Team members =&lt;br /&gt;
==QA Team involved in Kernel Development testing==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [mailto:francisco.j.pedraza.gonzalez@intel.com Francisco Pedraza ]&lt;br /&gt;
&lt;br /&gt;
= Scope =&lt;br /&gt;
* linux-yocto-custom&lt;br /&gt;
* local source.&lt;br /&gt;
* local source with parallel meta.&lt;br /&gt;
* local source with recipe-space meta.&lt;br /&gt;
* External Source&lt;br /&gt;
* defconfig&lt;br /&gt;
* defconfig + fragments&lt;br /&gt;
* linux-yocto meta data + local fragments.&lt;br /&gt;
* building external modules (hello-mod).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Strategy =&lt;br /&gt;
There are several test approaches for Kernel Development, such as:&lt;br /&gt;
Perform test cases agreed upon the development during periodic Manual (full pass) according to the Schedule.&lt;br /&gt;
Write new test cases based on developer request or new features as required.&lt;br /&gt;
Maintain current test cases and update them accordingly the new changes.&lt;br /&gt;
Perform exploratory testing on existing functionalities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test automation ==&lt;br /&gt;
Not required until now.&lt;br /&gt;
== Test Approach ==&lt;br /&gt;
&lt;br /&gt;
=== Sanity testing ===&lt;br /&gt;
* Not covered at this moment&lt;br /&gt;
* TBD following DEV discussions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maintaining the test cases ==&lt;br /&gt;
== Submitting Bugs ==&lt;br /&gt;
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. &lt;br /&gt;
Kernel Development bugs are no different and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
&lt;br /&gt;
This set of requirements is listed in a two column format, Bugzilla entries vs. requirement description in the form of a user story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to  generate and change  configuration files (defconfig).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1612 Test Case 1612]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to generate and change  configuration files (defconfig + fragments).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1613 Test Case 1613]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to apply single patch to Linux Kernel Source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1614 Test Case 1614]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to to be able to work with your own sources.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1615 Test Case 1615]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with own sources for linux-yocto-custom-local-source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1616 Test Case 1616]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with recipe-space meta.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1617 Test Case 1617]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with External Source.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1618 Test Case 1618]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to configure linux-yocto meta data + local fragments.  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1618 Test Case 1618]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to build external modules (hello-mod).  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1832 Test Case 1832]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As a Developer I want to be able to work with local source with parallel meta..  - [https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=1833 Test Case 1833]&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The complete test cases are not completed due current design.&lt;br /&gt;
&lt;br /&gt;
==HW Requirements==&lt;br /&gt;
* Any machine able to build Yocto Project.&lt;br /&gt;
&lt;br /&gt;
==Software Requirements==&lt;br /&gt;
* Poky.&lt;br /&gt;
* GNU/Linux environment&lt;br /&gt;
&lt;br /&gt;
==Environment Requirements==&lt;br /&gt;
**YP 2.3 Release:&lt;br /&gt;
**Ubuntu-14.04&lt;br /&gt;
**Ubuntu-14.10&lt;br /&gt;
**Ubuntu-15.04&lt;br /&gt;
**Fedora-21&lt;br /&gt;
**CentOS-6.*&lt;br /&gt;
**CentOS-7.*&lt;br /&gt;
**Debian-7.*&lt;br /&gt;
**Debian-8.*&lt;br /&gt;
**openSUSE-project-13.2&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
&amp;lt;b&amp;gt; Features to be Tested &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;1. linux-yocto-custom.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.1 local source. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.2 local source with parallel meta&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1.3 local source with recipe-space meta&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;2. External Source.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;3.Defconfig.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;4.Defconfig + Fragments.&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;5.building external modules (hello-mod).&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
Every cycle depending on Milestone and release candidate&lt;br /&gt;
&lt;br /&gt;
==Test execution Cycle==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build&lt;br /&gt;
! Automated Test&lt;br /&gt;
! Manual Test&lt;br /&gt;
|-&lt;br /&gt;
| Daily Master&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| Milestone Build&lt;br /&gt;
| TBD&lt;br /&gt;
| Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Dependencies=&lt;br /&gt;
*YP Dependencies&lt;br /&gt;
** poky&lt;br /&gt;
** meta-kerneltest recipe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Risk Assumptions=&lt;br /&gt;
* For each change in kernel version and kernel cache, the team needs to change many configuration in order to achieve this.&lt;br /&gt;
* Just like any software, the kernel is also susceptible to bugs. A common “Long Term Support”.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&amp;lt;p&amp;gt; TBD &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Release Criteria/ Exit Criteria =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
THIS IS THE OLD TESTING PLAN &lt;br /&gt;
&lt;br /&gt;
= Test Areas =&lt;br /&gt;
eSDK consists of two big components, as follows:&lt;br /&gt;
&lt;br /&gt;
== Backend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*  [[REST_API_Contracts | REST API]]  verification – create Django tests to detect API calls returning incomplete (fields having null values) or wrong data for a certain set of entries from each table - our goal is to have 90% data collected. The tests can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=andreeap/eSDK-tests&amp;amp;id=7cfd179be5db2a5530d60093fd09d0240138c2fa here];&lt;br /&gt;
*  Calculation of the data collection rate - the ratio between the number of the variables having null values ​​and the total number of variables collected (the data collection rate does not include wrong values); Run: ./fail_rate.py path_to_eSDK.sqlite_file. Output: table_name field_name value_that_never_changes and for each table a percentage: (the number of occurences of all the fields that never change their values)/(total number of entries for that table);&lt;br /&gt;
*  Verify that all links in the simple UI are available;&lt;br /&gt;
*  Verify the quality of the data collected through the simple UI;&lt;br /&gt;
*  Verify the quality of the data collected by verifying most of the values from the database by connecting directly to the database - our immediate goal is to have 90% correct data collected;&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ====&lt;br /&gt;
*  Verify the easy usage of eSDK ([https://wiki.yoctoproject.org/wiki/WebHob#Installation_and_Running easy to install and start/stop the eSDK server])&lt;br /&gt;
&lt;br /&gt;
== Frontend ==&lt;br /&gt;
&lt;br /&gt;
==== Functionality tests ====&lt;br /&gt;
*   Manual testing in the first stage;&lt;br /&gt;
*   Automate testing using  [http://www.seleniumhq.org/ Selenium], in the second stage;&lt;br /&gt;
&lt;br /&gt;
==== Compatibility tests ====&lt;br /&gt;
*   Verify the behavior of the GUI on different browsers and operating systems; TBD&lt;br /&gt;
&lt;br /&gt;
==== Usability tests ==== &lt;br /&gt;
*   Verify if the GUI design is as described here: http://yoctoproject.org/webhob;&lt;br /&gt;
*   Friendly graphical user interface;&lt;br /&gt;
&lt;br /&gt;
==== Performance tests ====&lt;br /&gt;
*   Stress testing (e.g. display appropriate error messages when the system is under stress);&lt;br /&gt;
&lt;br /&gt;
= Test Cycle =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| || || colspan=&amp;quot;3&amp;quot; | Test execution cycle&lt;br /&gt;
|-&lt;br /&gt;
| || || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Build type || Weekly  || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Release || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[#Test Areas]] || [[#Backend]] || Yes || Yes || Yes &lt;br /&gt;
|-&lt;br /&gt;
| [[#Frontend]]  || Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Target machine || qemuarm || || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemumips|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemuppc|| || || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86|| Yes || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| qemux86-64  ||  ||  || Yes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Target image|| core-image-minimal|| Yes || || &lt;br /&gt;
|-&lt;br /&gt;
| core-image-sato-sdk|| || Yes || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built weekly and released through the distribution team.&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Functionality test on most areas with minimum sets of tests;&lt;br /&gt;
** Regression test with high probability to find bugs.&lt;br /&gt;
&lt;br /&gt;
== Full Pass Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Images built as candidates for milestone or final release;&lt;br /&gt;
** Passed [[#Weekly Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** Ensure functionality of eSDK component.&lt;br /&gt;
&lt;br /&gt;
== Release Test ==&lt;br /&gt;
*; Scope:&lt;br /&gt;
** Release candidates that pass [[#Full Pass Test]]&lt;br /&gt;
&lt;br /&gt;
*; Objective:&lt;br /&gt;
** All scheduled features are covered, or rescheduled;&lt;br /&gt;
** All relevant bugs are fixed and verified.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32429</id>
		<title>Kernel Development Test Cases</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Kernel_Development_Test_Cases&amp;diff=32429"/>
		<updated>2017-10-16T23:14:08Z</updated>

		<summary type="html">&lt;p&gt;Jair Gonzalez: /* Expected results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Setup==&lt;br /&gt;
===Common Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/poky&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Check out the required commit using git:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [COMMIT_HASH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Source the build environment to create the configuration files:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ . oe-init-build-env&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Open the conf/local.conf file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Establish the machine to qemux86-64 by setting the line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Compile a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Get and take note of the linux-yocto kernel version (only the first two numbers, for example: 4.10):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep LINUX_VERSION&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Create a layer to store kernel test metadata. For this task, you could use the yocto-layer script and its default recipe values:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ yocto-layer create [LAYER-NAME]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: In the rest of this document &amp;quot;meta-kerneltest&amp;quot; is used as the [LAYER-NAME].&lt;br /&gt;
: 8. Create the recipe directory structure inside the created layer:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir -p meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Create a recipe append file inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 10. Copy the recipe file corresponding to the linux-yocto version inside the directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp meta/recipes-kernel/linux/linux-yocto_[VERSION].bb meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 11. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$  vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the PV variable with the LINUX_VERSION variable value:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PV = &amp;quot;${LINUX_VERSION}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 12. Create directory &amp;quot;linux-yocto&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 13. Create directory &amp;quot;linux-yocto-custom&amp;quot;:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mkdir meta-kerneltest/recipes-kernel/linux/linux-yocto-custom/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 14. Add the created layer to bblayers.conf. For this task, you could use the bitbake-layers script from inside the build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake-layers add-layer ../meta-kerneltest&amp;lt;/pre&amp;gt;&lt;br /&gt;
===General Remarks===&lt;br /&gt;
: 1. As a suggestion, open another terminal in order to perform git commands.&lt;br /&gt;
: 2. Remember to source the environment and ensure your current work directory is [POKY_PATH]/build before using bitbake scripts and tools.&lt;br /&gt;
: 3. You can edit any required file with vim, emacs, or your preferred text editor.&lt;br /&gt;
: 4. If there is not a proper response after building an image, be sure to clean the shared state, and try again. To clean it, you can use:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Be careful with the information added to recipe and recipe append files, using the same values -- including spaces-- to set a recipe variable value.&lt;br /&gt;
:: To ensure all the sources are correctly downloaded and the required taks are executed, ensure no shared states proxies are set on conf/local.conf.&lt;br /&gt;
: 6. Make sure to point to the correct linux-yocto version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_01 – Applying Patches==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to apply a single patch to the Linux kernel source.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Generate the patch:&lt;br /&gt;
:: 1.1. Go to kernel source directory:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/tmp/work-shared/qemux86-64/kernel-source&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Add some information at the end of the README file:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ echo This is a test to apply a patch to the kernel. &amp;gt;&amp;gt; README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.3. Add the modified file to the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git add README&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.4. Commit the change:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git commit -s -m &amp;quot;KERNEL DEV TEST CASE&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.5. Format the patch:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git format-patch -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Move the generated patch to the &amp;quot;linux-yocto&amp;quot; directory :&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ mv 0001-KERNEL-DEV-TEST-CASE.patch [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Add the SRC_URI var with the patch to the linux-yocto_4%.bbappend file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://0001-KERNEL-DEV-TEST-CASE.patch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Delete the README file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ rm build/tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Build the patch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the patch is applied properly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ tail tmp/work-shared/qemux86-64/kernel-source/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. Bitbake should complete the build without errors.&lt;br /&gt;
: 2. The README file should exist.&lt;br /&gt;
: 3. The patch changes should be displayed at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_02 – linux-yocto Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to to be able to work with my own Linux kernel sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a recipe append file for linux-yocto (created previously).&lt;br /&gt;
: 2. Clone in a specific directory (different of poky):&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git clone git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Go to the cloned yocto-kernel-cache directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the required yocto-version branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout [yocto-version]  # For example: $ git checkout yocto-4.8&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Go to the linux-yocto-[VERSION] directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [KERNEL_REPOS_PATH]/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Checkout the standard/base branch:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ git checkout standard/base&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Edit the conf/local.conf file in the repository where you are working for execution:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi build/conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Build the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep &amp;quot;name=machine;branch&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The changes should be performed successfully.&lt;br /&gt;
: 2. The build should be completed successfully.&lt;br /&gt;
: 3. The bitbake variables output should display that the SRC_URI variable is now:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_03 – linux-yocto Custom Local Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with my own local sources for a customized linux-yocto kernel.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Make sure you have the custom recipe file corresponding to the latest linux-yocto version:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: This file should originate from [POKY_PATH]/meta/recipes-kernel/linux/linux-yocto_[VERSION].bb&lt;br /&gt;
: 2. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify the changes by executing:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep PREFERRED_PROVIDER_virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable &amp;quot;PREFERRED_PROVIDER_virtual/kernel&amp;quot; should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_04 – Local Parallel Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with local source with parallel meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Go to the poky build directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. At conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Set parallel-meta for linux-yocto-custom, adding a specific fragment:&lt;br /&gt;
:: 7.1. Create four directories --&amp;quot;files&amp;quot;, &amp;quot;parallel-kmeta&amp;quot;,&amp;quot;features&amp;quot; and &amp;quot;wimax&amp;quot;-- to work with parallel meta:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.2. Inside &amp;quot;wimax&amp;quot; directory create two files: wimax.cfg and wimax.scc:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd files/parallel-kmeta/features/wimax&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ touch wimax.cfg wimax.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.3. Inside wimax.cfg add the following configuration:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_WIMAX=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 7.4. Inside wimax.scc add the following lines:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;WiMAX Wireless Broadband support&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware wimax.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the fragment by setting the next line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;KERNEL_FEATURES_append = &amp;quot; features/wimax/wimax.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit conf/local.conf&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build/&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Note: The build should fail at this step with an error indicating the &amp;quot;wimax.scc&amp;quot; fragment is not found.&lt;br /&gt;
: 4. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           file://parallel-kmeta;protocol=file;type=kmeta;name=p-kmeta;destsuffix=parallel-kmeta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel configuration task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify that CONFIG_WIMAX=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the variables are set succesfully using:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -e | grep -E &amp;quot;PREFERRED_PROVIDER_virtual/kernel|SRC_URI&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. The fragment should be added properly.&lt;br /&gt;
: 3. Compilation process should be performed successfully.&lt;br /&gt;
: 4. CONFIG_WIMAX=y option should be set properly in the .config file after executing the kernel configuration task.&lt;br /&gt;
&lt;br /&gt;
==TC_KD_05 – Recipe-space Meta==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with recipe-space meta.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[KERNEL_REPOS_PATH]/linux-yocto-[VERSION];protocol=file;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[KERNEL_REPOS_PATH]/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following value is not set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. At build/conf/local.conf add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Create the files pwm-test.cfg and pwm-test.scc on meta-kerneltest in the linux-yocto-custom directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ touch pwm-test.cfg pwm-test.scc&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Inside pwm-test.cfg include the line:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;CONFIG_PWM=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.2. Inside pwm-test.scc include the following information:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_DESCRIPTION &amp;quot;Enable core options for PWM support - TC_KD_recipe-space_meta&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;define KFEATURE_COMPATIBILITY board&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;kconf hardware pwm-test.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto-custom recipe:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto-custom_[VERSION].bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI_append = &amp;quot; file://pwm-test.scc&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the following variables:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that CONFIG_PWM=y option was set properly at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto-custom/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully. &lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. CONFIG_PWM=y option should be set properly in the .config file.&lt;br /&gt;
===Remarks===&lt;br /&gt;
: 1. If  the PWM feature is included on a build by default, verify on the following link a feature that is not included, and use it instead, updating the test case for future reference:&lt;br /&gt;
:: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/tree/features&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_06 – External Source==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to work with external sources.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Open a new terminal, different than the one being used for executing the testing steps.&lt;br /&gt;
: 2. Create git bare repositories of Linux sources and cache:&lt;br /&gt;
:: 2.1. Create and go to an empty directory (outside the poky repository) to set is at the root to publish git repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ mkdir -p [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cd [GIT_REPOS_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.2. Inside the directory, type the following commands to clone the bare repositories:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/linux-yocto-[VERSION]&amp;lt;/pre&amp;gt;&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git clone --bare git://git.yoctoproject.org/yocto-kernel-cache&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.3. Execute the following command to launch the git daemon and leave it running:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ git daemon --reuseaddr --base-path=. --export-all –verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 2.4. Obtain the local git server IP and take note of it:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ sudo /sbin/ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Return to the terminal being used for executing the testing steps.&lt;br /&gt;
: 4. Unset the git proxy environment variable:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ unset GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Verify the variable was unset with:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ echo $GIT_PROXY_COMMAND&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Ensure the git daemon is working:&lt;br /&gt;
:: 5.1. Go to any directory were you can test cloning from your local git repository.&lt;br /&gt;
:: 5.2. Verify that the git daemon responds and allows cloning the repo using the following command:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;git clone git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 5.3. After confirming the daemon is working, delete the cloned repository:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rm linux-yocto-[VERSION] -rf&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Go to the test poky build repository:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Edit the linux-yocto recipe append file previously created at your &amp;quot;meta-kerneltest&amp;quot; directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the SRC_URI variable with the following information:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI = &amp;quot;git://[IP_OF_YOUR_LOCAL_REPO]/linux-yocto-[VERSION].git;name=machine;branch=${KBRANCH}; \&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;           git://[IP_OF_YOUR_LOCAL_REPO]/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-[VERSION];destsuffix=${KMETA}&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Execute the fetch task for the kernel:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c fetch&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Set the git proxy environment variable to its previous value, or close and reopen the terminal.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The configuration should be successfully added.&lt;br /&gt;
: 2. Compilation should be performed successfully&lt;br /&gt;
: 3. The terminal where the daemon was launched should display some information like:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Connection from IP_LOCAL:PORT&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Extended attributes (20 bytes) exist &amp;lt;host=IP_LOCAL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[9243] Request upload-pack for &#039;/linux-yocto-4.9.git&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_07 – defconfig==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Have a clone of poky.&lt;br /&gt;
: 2. Have availability to another machine/server in the same network to use it as reference.&lt;br /&gt;
: 3. Make sure to have the same architecture in the reference machine than the Yocto machine to build.&lt;br /&gt;
: 4. Edit the local.conf file on the poky repository in the testing machine:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi conf/local.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure to comment or remove the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Ensure the following line is set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Set the same architecture than the one of the reference machine. For example, if you have an ubuntu_x86_64 as reference, in local.conf set:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE = &amp;quot;qemux86-64&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. After the image compilation is completed, in order to have a copy of the original configuration, copy the .config file from:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;[POKY_PATH]/build/tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: to:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;/home/[USER]/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set defconfig:&lt;br /&gt;
:: 1.1. Open a terminal on your reference machine and copy the config file located at: /boot/config-[VERSION-GENERIC] to the machine where the test poky repository is located. Select a name to identify the reference defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ scp /boot/config[VERSION-GENERIC] [USER]@[TEST_MACHINE_IP]:reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 1.2. Return to the terminal on the test machine and copy the reference file to the linux-yocto path in meta-kerneltest with the name defconfig:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ cp ~/reference-defconfig [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Remove or comment any existing customization, add the following lines and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://defconfig&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Verify the output config file is based on the reference defconfig, by comparing both to identify similarities between them:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify the output config file has many more differences with the original defconfig file saved as part of the prerequisites:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/poky-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variable should be set.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar.&lt;br /&gt;
: 5. The .config and the original poky-defconfig files should have several more differences than when compared with the reference-defconfig file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_08 – defconfig Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to generate and change configuration files (defconfig + fragments).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Same prerequisites than [[#Prerequisites_7|TC_KD_07]].&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Apply steps 1 to 4 from the [[#Steps_7|TC_KD_07]] test case.&lt;br /&gt;
: 2. Verify that CONFIG_EXT2_FS option is not set at:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Edit the recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;SRC_URI += &amp;quot;file://fragment.cfg&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Create fragment.cfg file under the linux-yocto directory:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi [POKY_PATH]/meta-kerneltest/recipes-kernel/linux/linux-yocto/fragment.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Add the following line inside and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;CONFIG_EXT2_FS=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Execute the kernel_configme task:.&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c kernel_configme&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 7. Verify that the output defconfig file is equal to the [DISTRO]-defconfig file saved on step 1.1:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/defconfig ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 8. Verify the output config file is based on the reference defconfig, and confirm the configuration fragment has been applied correctly:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vimdiff tmp/work/qemux86_64-poky-linux/linux-yocto/[VERSION_DESCRIPTOR]/linux-qemux86_64-standard-build/.config ~/reference-defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 9. Clean the build environment:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleanall&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The fragment file should be appended to the SRC_URI variable.&lt;br /&gt;
: 2. The execution of kernel_configme task should be successful.&lt;br /&gt;
: 3. The reference defconfig and output defconfig should be the same.&lt;br /&gt;
: 4. The .config and the reference-defconfig files should be similar, and .config should contain the configuration option from the fragment (CONFIG_EXT2_FS=y).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==TC_KD_09 – linux-yocto Meta Data and Local Fragments==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to configure linux-yocto meta data + local fragments.&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: TBD, MUST HAVE REPOSITORY OF YOCTO KERNEL CACHE.&lt;br /&gt;
===Steps===&lt;br /&gt;
: TBD.&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: TBD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TC_KD_10 – Building hello-mod==&lt;br /&gt;
===Use Case===&lt;br /&gt;
As a developer, I want to be able to build external modules (hello-mod).&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
: 1. Copy the hello-mod directory from meta-skeleton to meta-kerneltest:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cp -r [POKY_PATH]/meta-skeleton/recipes-kernel/hello-mod [POKY_PATH]/meta-kerneltest/recipes-kernel/&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Make sure to comment or remove the following line on conf/local.conf:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;# PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-yocto-custom&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Also, ensure the following line is set on the same file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;PREFERRED_VERSION_linux-yocto_qemux86-64=&amp;quot;[VERSION]%&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Steps===&lt;br /&gt;
: 1. Set the hello module variable information on conf/local.conf (in your testing build environment), with the following line:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;MACHINE_ESSENTIAL_EXTRA_RDEPENDS += &amp;quot;kernel-module-hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Edit the linux-yocto recipe append file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ vi meta-kerneltest/recipes-kernel/linux/linux-yocto_4%.bbappend&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Make sure you have only the following line, and save and close the file:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;FILESEXTRAPATHS_prepend := &amp;quot;${THISDIR}/${PN}:&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 3. Clean the shared state:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ cd [POKY_PATH]/build&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake virtual/kernel -c cleansstate&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 4. Compile the hello module:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake hello-mod&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 5. Create a minimal image:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ bitbake core-image-minimal&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 6. Boot the image using qemu:&lt;br /&gt;
:: &amp;lt;pre&amp;gt;$ runqemu nographic&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.1. Once the qemu terminal is ready, verify on it that the hello module was successfully added:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ modprobe hello&amp;lt;/pre&amp;gt; &lt;br /&gt;
:: 6.2. Remove the hello module: &lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ rmmod hello&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 6.3. Power off and exit the qemu terminal:&lt;br /&gt;
::: &amp;lt;pre&amp;gt;$ poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expected Results===&lt;br /&gt;
: 1. The variables should be set successfully.&lt;br /&gt;
: 2. Compilation process should be performed successfully.&lt;br /&gt;
: 3. Image should be compiled without errors.&lt;br /&gt;
: 4. Verify the message &amp;quot;Hello World!&amp;quot;is displayed after executing modprobe on the qemu terminal.&lt;br /&gt;
: 5. Verify the message &amp;quot;Goodbye Cruel world!&amp;quot; is displayed after removing the module on the qemu terminal.&lt;/div&gt;</summary>
		<author><name>Jair Gonzalez</name></author>
	</entry>
</feed>