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
>
next prev parent 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.