Switch some tests to std::string_view Noticed this as I was looking over the CL. May as well. Bug: 42290600 Change-Id: I9b32829077745ce98beb6f7a77b9d78548500a79 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/75152 Reviewed-by: Bob Beck <bbe@google.com> Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/crypto/asn1/asn1_test.cc b/crypto/asn1/asn1_test.cc index c54ed29..79cbead 100644 --- a/crypto/asn1/asn1_test.cc +++ b/crypto/asn1/asn1_test.cc
@@ -17,6 +17,7 @@ #include <map> #include <string> +#include <string_view> #include <vector> #include <gtest/gtest.h> @@ -949,9 +950,10 @@ } } -static std::string ASN1StringToStdString(const ASN1_STRING *str) { - return std::string(ASN1_STRING_get0_data(str), - ASN1_STRING_get0_data(str) + ASN1_STRING_length(str)); +static std::string_view ASN1StringToStringView(const ASN1_STRING *str) { + return std::string_view( + reinterpret_cast<const char *>(ASN1_STRING_get0_data(str)), + ASN1_STRING_length(str)); } static bool ASN1Time_check_posix(const ASN1_TIME *s, int64_t t) { @@ -1031,7 +1033,7 @@ if (t.utc) { ASSERT_TRUE(utc); EXPECT_EQ(V_ASN1_UTCTIME, ASN1_STRING_type(utc.get())); - EXPECT_EQ(t.utc, ASN1StringToStdString(utc.get())); + EXPECT_EQ(t.utc, ASN1StringToStringView(utc.get())); EXPECT_TRUE(ASN1Time_check_posix(utc.get(), t.time)); EXPECT_EQ(ASN1_TIME_to_posix(utc.get(), &tt), 1); EXPECT_EQ(tt, t.time); @@ -1046,7 +1048,7 @@ if (t.generalized) { ASSERT_TRUE(generalized); EXPECT_EQ(V_ASN1_GENERALIZEDTIME, ASN1_STRING_type(generalized.get())); - EXPECT_EQ(t.generalized, ASN1StringToStdString(generalized.get())); + EXPECT_EQ(t.generalized, ASN1StringToStringView(generalized.get())); EXPECT_TRUE(ASN1Time_check_posix(generalized.get(), t.time)); EXPECT_EQ(ASN1_TIME_to_posix(generalized.get(), &tt), 1); EXPECT_EQ(tt, t.time); @@ -1064,10 +1066,10 @@ ASSERT_TRUE(choice); if (t.utc) { EXPECT_EQ(V_ASN1_UTCTIME, ASN1_STRING_type(choice.get())); - EXPECT_EQ(t.utc, ASN1StringToStdString(choice.get())); + EXPECT_EQ(t.utc, ASN1StringToStringView(choice.get())); } else { EXPECT_EQ(V_ASN1_GENERALIZEDTIME, ASN1_STRING_type(choice.get())); - EXPECT_EQ(t.generalized, ASN1StringToStdString(choice.get())); + EXPECT_EQ(t.generalized, ASN1StringToStringView(choice.get())); } EXPECT_TRUE(ASN1Time_check_posix(choice.get(), t.time)); EXPECT_EQ(ASN1_TIME_to_posix(choice.get(), &tt), 1); @@ -1084,47 +1086,47 @@ ASSERT_TRUE(ASN1_UTCTIME_set_string(s.get(), "700101000000Z")); EXPECT_EQ(V_ASN1_UTCTIME, ASN1_STRING_type(s.get())); - EXPECT_EQ("700101000000Z", ASN1StringToStdString(s.get())); + EXPECT_EQ("700101000000Z", ASN1StringToStringView(s.get())); ASSERT_TRUE(ASN1_GENERALIZEDTIME_set_string(s.get(), "19700101000000Z")); EXPECT_EQ(V_ASN1_GENERALIZEDTIME, ASN1_STRING_type(s.get())); - EXPECT_EQ("19700101000000Z", ASN1StringToStdString(s.get())); + EXPECT_EQ("19700101000000Z", ASN1StringToStringView(s.get())); // |ASN1_TIME_set_string| accepts either format. It relies on there being no // overlap between the two. ASSERT_TRUE(ASN1_TIME_set_string(s.get(), "700101000000Z")); EXPECT_EQ(V_ASN1_UTCTIME, ASN1_STRING_type(s.get())); - EXPECT_EQ("700101000000Z", ASN1StringToStdString(s.get())); + EXPECT_EQ("700101000000Z", ASN1StringToStringView(s.get())); ASSERT_TRUE(ASN1_TIME_set_string(s.get(), "19700101000000Z")); EXPECT_EQ(V_ASN1_GENERALIZEDTIME, ASN1_STRING_type(s.get())); - EXPECT_EQ("19700101000000Z", ASN1StringToStdString(s.get())); + EXPECT_EQ("19700101000000Z", ASN1StringToStringView(s.get())); // |ASN1_TIME_set_string_X509| behaves similarly except it additionally // converts GeneralizedTime to UTCTime if it fits. ASSERT_TRUE(ASN1_TIME_set_string_X509(s.get(), "700101000000Z")); EXPECT_EQ(V_ASN1_UTCTIME, ASN1_STRING_type(s.get())); - EXPECT_EQ("700101000000Z", ASN1StringToStdString(s.get())); + EXPECT_EQ("700101000000Z", ASN1StringToStringView(s.get())); ASSERT_TRUE(ASN1_TIME_set_string_X509(s.get(), "19700101000000Z")); EXPECT_EQ(V_ASN1_UTCTIME, ASN1_STRING_type(s.get())); - EXPECT_EQ("700101000000Z", ASN1StringToStdString(s.get())); + EXPECT_EQ("700101000000Z", ASN1StringToStringView(s.get())); ASSERT_TRUE(ASN1_TIME_set_string_X509(s.get(), "19500101000000Z")); EXPECT_EQ(V_ASN1_UTCTIME, ASN1_STRING_type(s.get())); - EXPECT_EQ("500101000000Z", ASN1StringToStdString(s.get())); + EXPECT_EQ("500101000000Z", ASN1StringToStringView(s.get())); ASSERT_TRUE(ASN1_TIME_set_string_X509(s.get(), "19491231235959Z")); EXPECT_EQ(V_ASN1_GENERALIZEDTIME, ASN1_STRING_type(s.get())); - EXPECT_EQ("19491231235959Z", ASN1StringToStdString(s.get())); + EXPECT_EQ("19491231235959Z", ASN1StringToStringView(s.get())); ASSERT_TRUE(ASN1_TIME_set_string_X509(s.get(), "20491231235959Z")); EXPECT_EQ(V_ASN1_UTCTIME, ASN1_STRING_type(s.get())); - EXPECT_EQ("491231235959Z", ASN1StringToStdString(s.get())); + EXPECT_EQ("491231235959Z", ASN1StringToStringView(s.get())); ASSERT_TRUE(ASN1_TIME_set_string_X509(s.get(), "20500101000000Z")); EXPECT_EQ(V_ASN1_GENERALIZEDTIME, ASN1_STRING_type(s.get())); - EXPECT_EQ("20500101000000Z", ASN1StringToStdString(s.get())); + EXPECT_EQ("20500101000000Z", ASN1StringToStringView(s.get())); // Invalid inputs are rejected. EXPECT_FALSE(ASN1_UTCTIME_set_string(s.get(), "nope")); @@ -1165,7 +1167,7 @@ ASSERT_TRUE(ASN1_UTCTIME_set_string(s.get(), "700101000000Z")); EXPECT_EQ(V_ASN1_UTCTIME, ASN1_STRING_type(s.get())); - EXPECT_EQ("700101000000Z", ASN1StringToStdString(s.get())); + EXPECT_EQ("700101000000Z", ASN1StringToStringView(s.get())); // UTCTIME_set_string should not allow a timezeone offset EXPECT_FALSE(ASN1_UTCTIME_set_string(s.get(), "700101000000-0400")); @@ -1174,7 +1176,7 @@ ASSERT_TRUE(ASN1_STRING_set(s.get(), "700101000000-0400", strlen("700101000000-0400"))); EXPECT_EQ(V_ASN1_UTCTIME, ASN1_STRING_type(s.get())); - EXPECT_EQ("700101000000-0400", ASN1StringToStdString(s.get())); + EXPECT_EQ("700101000000-0400", ASN1StringToStringView(s.get())); // check is expected to be valid with timezeone offsets ASSERT_TRUE(ASN1_UTCTIME_check(s.get())); @@ -1191,9 +1193,9 @@ EXPECT_EQ(V_ASN1_GENERALIZEDTIME, ASN1_STRING_type(g.get())); // crbug.com/389147378 // This should be the correct value - // EXPECT_EQ("19691231200000Z", ASN1StringToStdString(g.get())); + // EXPECT_EQ("19691231200000Z", ASN1StringToStringView(g.get())); // But this function currently generates invalid times. - EXPECT_EQ("19700101000000-0400", ASN1StringToStdString(g.get())); + EXPECT_EQ("19700101000000-0400", ASN1StringToStringView(g.get())); // Force this to be a generalized time the same as our utc time EXPECT_TRUE(ASN1_GENERALIZEDTIME_set_string(g.get(), "19691231200000Z"));