<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>9756</bug_id>
          
          <creation_ts>2016-06-10 16:10:40 +0000</creation_ts>
          <short_desc>Plan clean up and improvements for oeqa</short_desc>
          <delta_ts>2017-12-06 16:56:24 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>OE-Core</product>
          <component>core</component>
          <version>2.2</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium+</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>2.2 M3</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Lock">joshuagloe</reporter>
          <assigned_to name="Aníbal Limón">anibal.limon</assigned_to>
          <cc>anibal.limon</cc>
    
    <cc>benjamin.esquivel</cc>
    
    <cc>bluelightning</cc>
    
    <cc>leonardo.sandoval.gonzalez</cc>
    
    <cc>meta.mr.watcher</cc>
    
    <cc>meta.watcher</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>Don&apos;t know</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>62900</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Lock">joshuagloe</who>
    <bug_when>2016-06-10 16:10:40 +0000</bug_when>
    <thetext>oeqa has several deficiencies which make it difficult to work with and maintain, including:
* dependencies are scattered around the code base
* test-loading only supports one folder deep
* test dependency order is non-deterministic and doesn&apos;t work well
* module relations/dependencies are unclear

We&apos;d like to move to a new design which extends the python unittest module and better supports test dependencies and ordering and provides a clear high-level API addressing the concerns above.

In order to do that we first need to perform a review of the oeqa codebase and plan the work involved in moving forward with the new design.

This task will be complete when a new set of tickets are filed covering the tasks involved in improving oeqa.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63695</commentid>
    <comment_count>1</comment_count>
    <who name="Aníbal Limón">anibal.limon</who>
    <bug_when>2016-07-06 21:58:08 +0000</bug_when>
    <thetext>This plan needs to take into account XML output see,

https://bugzilla.yoctoproject.org/show_bug.cgi?id=9682</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63872</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Esquivel">benjamin.esquivel</who>
    <bug_when>2016-07-12 20:24:29 +0000</bug_when>
    <thetext>Re-assigning to Edwin and moving to M3 as this will not make it for 2.2 M2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64010</commentid>
    <comment_count>3</comment_count>
    <who name="Aníbal Limón">anibal.limon</who>
    <bug_when>2016-07-14 20:46:17 +0000</bug_when>
    <thetext>I finish the first draft of the plan, some tasks related to migration needs to define a set of step for do it but the other depend tasks needs to be complete for provide details of migration, i will load the bugs for cover the next tasks:

Runner:

- Implement OETestRunner with the ability for output logs in JUnit XML and
  RAW text based on configuration parameter.
  - Implement OEQemuTestRunner extending OETestRunner, this will start, stop
    qemu with certain configuration.

Decorators:
- Implement OETimeout decorator, this will send a SIGALARM when some time expires.
- Implement OETag decorator, like OETestID this will hold a string for identify
  some test case, also the ability to list OETestCase&apos;s by tag.

TestContext:
- Refactor/split oeqa/oetest.py: Currently this class have all the TestContext implementations
  SDK, Image, SDKExt,  the refactor needs to take into account don&apos;t depend on BItbake datastore.
- Implement/Review the support for load test suites in different layers.

Structure:
- Restructure code for avoid direct dependencies on Bitbake data store, the QA
  framework needs to be implemented in a way to made useful outside Bitbake env.
- Audit and move/merge general helper modules outside oeqa/utils like httpserver,
  logparser, git, ftools, network to avoid duplcated functionality, may be already exists
  functions/method&apos;s in oe/lib or bitbake/lib.

Migration (steps to be defined):
- test{image,sdk,sdkext): Support the new oeqa framework.
- testexport: With changes of made independent oeqa framework of Bitbake, refactor current
  testexport functionality.
- oe-selftest: Support the new oeqa framework.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65843</commentid>
    <comment_count>4</comment_count>
    <who name="Aníbal Limón">anibal.limon</who>
    <bug_when>2016-09-06 22:40:37 +0000</bug_when>
    <thetext>Master bug filed [1], i&apos;ll continue to load the bugs and add as dependants of the master bug.

[1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=10230</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>