mirror of
https://github.com/google/googletest.git
synced 2025-12-06 16:57:00 +08:00
Include type in streaming TestPartResult output (fixes #3994).
This commit is contained in:
parent
ec7b38672c
commit
e942cc1c09
@ -1199,7 +1199,8 @@ class StreamingListener : public EmptyTestEventListener {
|
||||
void OnTestPartResult(const TestPartResult& test_part_result) override {
|
||||
const char* file_name = test_part_result.file_name();
|
||||
if (file_name == nullptr) file_name = "";
|
||||
SendLn("event=TestPartResult&file=" + UrlEncode(file_name) +
|
||||
SendLn("event=TestPartResult&type=" + FormatType(test_part_result.type()) +
|
||||
"&file=" + UrlEncode(file_name) +
|
||||
"&line=" + StreamableToString(test_part_result.line_number()) +
|
||||
"&message=" + UrlEncode(test_part_result.message()));
|
||||
}
|
||||
@ -1214,6 +1215,20 @@ class StreamingListener : public EmptyTestEventListener {
|
||||
|
||||
std::string FormatBool(bool value) { return value ? "1" : "0"; }
|
||||
|
||||
std::string FormatType(TestPartResult::Type value) {
|
||||
switch (value) {
|
||||
case TestPartResult::kSkip:
|
||||
return "skip";
|
||||
case TestPartResult::kSuccess:
|
||||
return "success";
|
||||
case TestPartResult::kNonFatalFailure:
|
||||
case TestPartResult::kFatalFailure:
|
||||
return "failure";
|
||||
default:
|
||||
return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
const std::unique_ptr<AbstractSocketWriter> socket_writer_;
|
||||
|
||||
StreamingListener(const StreamingListener&) = delete;
|
||||
|
||||
@ -161,7 +161,47 @@ TEST_F(StreamingListenerTest, OnTestPartResult) {
|
||||
|
||||
// Meta characters in the failure message should be properly escaped.
|
||||
EXPECT_EQ(
|
||||
"event=TestPartResult&file=foo.cc&line=42&message=failed%3D%0A%26%25\n",
|
||||
"event=TestPartResult&type=failure&file=foo.cc&line=42&message=failed%3D%0A%26%25\n",
|
||||
*output());
|
||||
}
|
||||
|
||||
TEST_F(StreamingListenerTest, OnTestPartResultSkip) {
|
||||
*output() = "";
|
||||
streamer_.OnTestPartResult(TestPartResult(TestPartResult::kSkip,
|
||||
"foo.cc", 42, "Skipped"));
|
||||
|
||||
EXPECT_EQ(
|
||||
"event=TestPartResult&type=skip&file=foo.cc&line=42&message=Skipped\n",
|
||||
*output());
|
||||
}
|
||||
|
||||
TEST_F(StreamingListenerTest, OnTestPartResultSuccess) {
|
||||
*output() = "";
|
||||
streamer_.OnTestPartResult(TestPartResult(TestPartResult::kSuccess,
|
||||
"foo.cc", 42, "Succeeded"));
|
||||
|
||||
EXPECT_EQ(
|
||||
"event=TestPartResult&type=success&file=foo.cc&line=42&message=Succeeded\n",
|
||||
*output());
|
||||
}
|
||||
|
||||
TEST_F(StreamingListenerTest, OnTestPartResultNonFatalFailure) {
|
||||
*output() = "";
|
||||
streamer_.OnTestPartResult(TestPartResult(TestPartResult::kNonFatalFailure,
|
||||
"foo.cc", 42, "Failed"));
|
||||
|
||||
EXPECT_EQ(
|
||||
"event=TestPartResult&type=failure&file=foo.cc&line=42&message=Failed\n",
|
||||
*output());
|
||||
}
|
||||
|
||||
TEST_F(StreamingListenerTest, OnTestPartResultUnknown) {
|
||||
*output() = "";
|
||||
streamer_.OnTestPartResult(TestPartResult((TestPartResult::Type)-1,
|
||||
"foo.cc", 42, "Other"));
|
||||
|
||||
EXPECT_EQ(
|
||||
"event=TestPartResult&type=unknown&file=foo.cc&line=42&message=Other\n",
|
||||
*output());
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user