Refactor command line errors to mirror diagnostic style (#4568)

This changes to an `Error` return to let the driver do the "error: "
prefix, except for one case with `help` that needs more work to change
(I'm not planning on picking up that TODO). It also changes
capitalization, backtick use, and a few minor punctuation things to try
to better match the diagnostic style.

This also adds `Error` matchers so that the changes to command line
testing are clearer.
This commit is contained in:
Jon Ross-Perkins
2024-11-26 19:22:05 +00:00
committed by GitHub
parent f921923b4b
commit 5880954041
11 changed files with 475 additions and 372 deletions
+12 -11
View File
@@ -6,11 +6,16 @@
#include <gtest/gtest.h>
#include "common/error_test_helpers.h"
#include "testing/base/test_raw_ostream.h"
namespace Carbon {
namespace {
using ::Carbon::Testing::IsError;
using ::Carbon::Testing::IsSuccess;
using ::testing::Eq;
TEST(ErrorTest, Error) {
Error err("test");
EXPECT_EQ(err.message(), "test");
@@ -26,8 +31,8 @@ TEST(ErrorTest, IndirectError) { EXPECT_EQ(IndirectError().message(), "test"); }
TEST(ErrorTest, ErrorOr) {
ErrorOr<int> err(Error("test"));
EXPECT_FALSE(err.ok());
EXPECT_EQ(err.error().message(), "test");
EXPECT_THAT(err, IsError("test"));
}
TEST(ErrorTest, ErrorOrValue) { EXPECT_TRUE(ErrorOr<int>(0).ok()); }
@@ -66,8 +71,7 @@ TEST(ErrorTest, ReturnIfErrorHasError) {
CARBON_RETURN_IF_ERROR(ErrorOr<Success>(Error("error")));
return Success();
}();
ASSERT_FALSE(result.ok());
EXPECT_EQ(result.error().message(), "error");
EXPECT_THAT(result, IsError("error"));
}
TEST(ErrorTest, AssignOrReturnNoError) {
@@ -78,8 +82,7 @@ TEST(ErrorTest, AssignOrReturnNoError) {
CARBON_ASSIGN_OR_RETURN(c, ErrorOr<int>(3));
return a + b + c;
}();
ASSERT_TRUE(result.ok());
EXPECT_EQ(6, *result);
EXPECT_THAT(result, IsSuccess(Eq(6)));
}
TEST(ErrorTest, AssignOrReturnHasDirectError) {
@@ -87,7 +90,7 @@ TEST(ErrorTest, AssignOrReturnHasDirectError) {
CARBON_RETURN_IF_ERROR(ErrorOr<int>(Error("error")));
return 0;
}();
ASSERT_FALSE(result.ok());
EXPECT_THAT(result, IsError("error"));
}
TEST(ErrorTest, AssignOrReturnHasErrorInExpected) {
@@ -95,14 +98,12 @@ TEST(ErrorTest, AssignOrReturnHasErrorInExpected) {
CARBON_ASSIGN_OR_RETURN(int a, ErrorOr<int>(Error("error")));
return a;
}();
ASSERT_FALSE(result.ok());
EXPECT_EQ(result.error().message(), "error");
EXPECT_THAT(result, IsError("error"));
}
TEST(ErrorTest, ErrorBuilderOperatorImplicitCast) {
ErrorOr<int> result = ErrorBuilder() << "msg";
ASSERT_FALSE(result.ok());
EXPECT_EQ(result.error().message(), "msg");
EXPECT_THAT(result, IsError("msg"));
}
TEST(ErrorTest, StreamError) {