All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Kai Kang <kai.kang@windriver.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 2/3] cmake: follow ptest output format
Date: Tue, 01 Apr 2014 11:49:20 +0100	[thread overview]
Message-ID: <1396349360.1432.2.camel@ted> (raw)
In-Reply-To: <26f22e4e2b8b1fa1eff604feac7088986d561eab.1396343261.git.kai.kang@windriver.com>

On Tue, 2014-04-01 at 17:09 +0800, Kai Kang wrote:
> From: Li Wang <li.wang@windriver.com>
> 
> ptest output format is incorrect, according to yocto Development Manual
> (http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html#testing-packages-with-ptest)
> 
> The test generates output in the format used by Automake:
> <result>: <testname>
> where the result can be PASS, FAIL, or SKIP, and the testname can be any identifying string.
> 
> So we should change the test result format to match yocto ptest rules.
> 
> Signed-off-by: Li Wang <li.wang@windriver.com>
> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> Signed-off-by: Kai Kang <kai.kang@windriver.com>
> ---
>  meta/recipes-devtools/cmake/cmake.inc              |   1 +
>  .../cmake/cmake/follow_ptest_output_format.patch   | 118 +++++++++++++++++++++
>  2 files changed, 119 insertions(+)
>  create mode 100644 meta/recipes-devtools/cmake/cmake/follow_ptest_output_format.patch
> 
> diff --git a/meta/recipes-devtools/cmake/cmake.inc b/meta/recipes-devtools/cmake/cmake.inc
> index 1d5303f..254af45 100644
> --- a/meta/recipes-devtools/cmake/cmake.inc
> +++ b/meta/recipes-devtools/cmake/cmake.inc
> @@ -17,6 +17,7 @@ SRC_URI = "http://www.cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz
>             file://aarch64-kwsys.patch \
>             file://qt4-fail-silent.patch \
>             file://cmake-2.8.11.2-FindFreetype.patch \
> +           file://follow_ptest_output_format.patch \
>             "
>  
>  inherit autotools-brokensep
> diff --git a/meta/recipes-devtools/cmake/cmake/follow_ptest_output_format.patch b/meta/recipes-devtools/cmake/cmake/follow_ptest_output_format.patch
> new file mode 100644
> index 0000000..5428df2
> --- /dev/null
> +++ b/meta/recipes-devtools/cmake/cmake/follow_ptest_output_format.patch
> @@ -0,0 +1,118 @@
> +cmake: follow ptest output format
> +
> +ptest output format is incorrect, according to yocto Development Manual
> +(http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html#testing-packages-with-ptest)
> +5.10.6. Testing Packages With ptest
> +The test generates output in the format used by Automake:
> +<result>: <testname>
> +where the result can be PASS, FAIL, or SKIP, and the testname can be any identifying string.
> +So we should change the test result format to match yocto ptest rules.
> +
> +Signed-off-by: Li Wang <li.wang@windriver.com>

No upstream status. Is there any chance of this going upstream? Might we
be better off postprocessing the output with a script to put it into the
right format?

Cheers,

Richard


> +---
> +--- a/Source/CTest/cmCTestRunTest.cxx
> ++++ b/Source/CTest/cmCTestRunTest.cxx
> +@@ -145,8 +145,8 @@
> +     this->CompressOutput();
> +     }
> + 
> +-  this->WriteLogOutputTop(completed, total);
> +   std::string reason;
> ++  std::string result;
> +   bool passed = true;
> +   int res = started ? this->TestProcess->GetProcessStatus()
> +                     : cmsysProcess_State_Error;
> +@@ -208,57 +208,58 @@
> +       || (!success && this->TestProperties->WillFail))
> +       {
> +       this->TestResult.Status = cmCTestTestHandler::COMPLETED;
> +-      cmCTestLog(this->CTest, HANDLER_OUTPUT, "   Passed  " );
> ++      result = "           ";
> +       }
> +     else
> +       {
> +       this->TestResult.Status = cmCTestTestHandler::FAILED;
> +-      cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Failed  " << reason );
> ++      result = "           " + reason;
> +       outputTestErrorsToConsole = this->CTest->OutputTestOutputOnTestFailure;
> +       }
> +     }
> +   else if ( res == cmsysProcess_State_Expired )
> +     {
> +-    cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Timeout ");
> ++    result = "***Timeout ";
> +     this->TestResult.Status = cmCTestTestHandler::TIMEOUT;
> +     outputTestErrorsToConsole = this->CTest->OutputTestOutputOnTestFailure;
> +     }
> +   else if ( res == cmsysProcess_State_Exception )
> +     {
> +     outputTestErrorsToConsole = this->CTest->OutputTestOutputOnTestFailure;
> +-    cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Exception: ");
> ++    result = "***Exception: ";
> +     switch(this->TestProcess->GetExitException())
> +       {
> +       case cmsysProcess_Exception_Fault:
> +-        cmCTestLog(this->CTest, HANDLER_OUTPUT, "SegFault");
> ++        result += "SegFault";
> +         this->TestResult.Status = cmCTestTestHandler::SEGFAULT;
> +         break;
> +       case cmsysProcess_Exception_Illegal:
> +-        cmCTestLog(this->CTest, HANDLER_OUTPUT, "Illegal");
> ++        result += "Illegal";
> +         this->TestResult.Status = cmCTestTestHandler::ILLEGAL;
> +         break;
> +       case cmsysProcess_Exception_Interrupt:
> +-        cmCTestLog(this->CTest, HANDLER_OUTPUT, "Interrupt");
> ++        result += "Interrupt";
> +         this->TestResult.Status = cmCTestTestHandler::INTERRUPT;
> +         break;
> +       case cmsysProcess_Exception_Numerical:
> +-        cmCTestLog(this->CTest, HANDLER_OUTPUT, "Numerical");
> ++        result += "Numerical";
> +         this->TestResult.Status = cmCTestTestHandler::NUMERICAL;
> +         break;
> +       default:
> +-        cmCTestLog(this->CTest, HANDLER_OUTPUT, "Other");
> ++        result += "Other";
> +         this->TestResult.Status = cmCTestTestHandler::OTHER_FAULT;
> +       }
> +     }
> +   else //cmsysProcess_State_Error
> +     {
> +-    cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Not Run ");
> ++    result = "***Not Run ";
> +     }
> + 
> +   passed = this->TestResult.Status == cmCTestTestHandler::COMPLETED;
> +   char buf[1024];
> +   sprintf(buf, "%6.2f sec", this->TestProcess->GetTotalTime());
> +-  cmCTestLog(this->CTest, HANDLER_OUTPUT, buf << "\n" );
> ++  this->WriteLogOutputTop(completed, total);
> ++  cmCTestLog(this->CTest, HANDLER_OUTPUT, result << buf << "\n" );
> + 
> +   if ( outputTestErrorsToConsole )
> +     {
> +@@ -398,6 +399,7 @@
> + // Starts the execution of a test.  Returns once it has started
> + bool cmCTestRunTest::StartTest(size_t total)
> + {
> ++  cmCTestLog(this->CTest, HANDLER_OUTPUT, "      ");
> +   cmCTestLog(this->CTest, HANDLER_OUTPUT, std::setw(2*getNumWidth(total) + 8)
> +     << "Start "
> +     << std::setw(getNumWidth(this->TestHandler->GetMaxIndex()))
> +@@ -679,6 +681,15 @@
> + 
> + void cmCTestRunTest::WriteLogOutputTop(size_t completed, size_t total)
> + {
> ++  if ( this->TestResult.Status == cmCTestTestHandler::COMPLETED )
> ++    {
> ++    cmCTestLog(this->CTest, HANDLER_OUTPUT, "PASS: " );
> ++    }
> ++  else
> ++    {
> ++    cmCTestLog(this->CTest, HANDLER_OUTPUT, "FAIL: " );
> ++    }
> ++
> +   cmCTestLog(this->CTest, HANDLER_OUTPUT, std::setw(getNumWidth(total))
> +              << completed << "/");
> +   cmCTestLog(this->CTest, HANDLER_OUTPUT, std::setw(getNumWidth(total))
> -- 
> 1.8.1.2
> 




  reply	other threads:[~2014-04-01 10:49 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-01  9:09 [PATCH 0/3] miscellaneous patches Kai Kang
2014-04-01  9:09 ` [PATCH 1/3] xorg: Fix for CVE-2013-6424 Kai Kang
2014-04-01  9:09 ` [PATCH 2/3] cmake: follow ptest output format Kai Kang
2014-04-01 10:49   ` Richard Purdie [this message]
2014-04-01 22:33     ` Otavio Salvador
2014-04-02  1:24       ` Kang Kai
2014-04-01  9:09 ` [PATCH 3/3] util-linux-native: Remove SYS_setns system call in linux kernel 2.6.x Kai Kang
2014-04-01 10:15   ` Richard Purdie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1396349360.1432.2.camel@ted \
    --to=richard.purdie@linuxfoundation.org \
    --cc=kai.kang@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.