Change MakeQuicTag and MakeVersionLabel argument type to unsigned.

Chromium has signed integers and this could cause difficult to debug issues.

PiperOrigin-RevId: 425921423
diff --git a/quic/core/quic_tag.cc b/quic/core/quic_tag.cc
index 32b7bf9..b5f64f1 100644
--- a/quic/core/quic_tag.cc
+++ b/quic/core/quic_tag.cc
@@ -66,7 +66,7 @@
       reinterpret_cast<const char*>(&orig_tag), sizeof(orig_tag)));
 }
 
-uint32_t MakeQuicTag(char a, char b, char c, char d) {
+uint32_t MakeQuicTag(uint8_t a, uint8_t b, uint8_t c, uint8_t d) {
   return static_cast<uint32_t>(a) | static_cast<uint32_t>(b) << 8 |
          static_cast<uint32_t>(c) << 16 | static_cast<uint32_t>(d) << 24;
 }
diff --git a/quic/core/quic_tag.h b/quic/core/quic_tag.h
index c77219e..1dfc754 100644
--- a/quic/core/quic_tag.h
+++ b/quic/core/quic_tag.h
@@ -5,6 +5,7 @@
 #ifndef QUICHE_QUIC_CORE_QUIC_TAG_H_
 #define QUICHE_QUIC_CORE_QUIC_TAG_H_
 
+#include <cstdint>
 #include <map>
 #include <string>
 #include <vector>
@@ -28,7 +29,8 @@
 
 // MakeQuicTag returns a value given the four bytes. For example:
 //   MakeQuicTag('C', 'H', 'L', 'O');
-QUIC_EXPORT_PRIVATE QuicTag MakeQuicTag(char a, char b, char c, char d);
+QUIC_EXPORT_PRIVATE QuicTag MakeQuicTag(uint8_t a, uint8_t b, uint8_t c,
+                                        uint8_t d);
 
 // Returns true if |tag_vector| contains |tag|.
 QUIC_EXPORT_PRIVATE bool ContainsQuicTag(const QuicTagVector& tag_vector,
diff --git a/quic/core/quic_versions.cc b/quic/core/quic_versions.cc
index 63d21a1..b9a48b9 100644
--- a/quic/core/quic_versions.cc
+++ b/quic/core/quic_versions.cc
@@ -23,12 +23,6 @@
 namespace quic {
 namespace {
 
-// Constructs a version label from the 4 bytes such that the on-the-wire
-// order will be: d, c, b, a.
-QuicVersionLabel MakeVersionLabel(char a, char b, char c, char d) {
-  return MakeQuicTag(d, c, b, a);
-}
-
 QuicVersionLabel CreateRandomVersionLabelForNegotiation() {
   QuicVersionLabel result;
   if (!GetQuicFlag(FLAGS_quic_disable_version_negotiation_grease_randomness)) {
@@ -207,6 +201,10 @@
   return os;
 }
 
+QuicVersionLabel MakeVersionLabel(uint8_t a, uint8_t b, uint8_t c, uint8_t d) {
+  return MakeQuicTag(d, c, b, a);
+}
+
 std::ostream& operator<<(std::ostream& os,
                          const QuicVersionLabelVector& version_labels) {
   os << QuicVersionLabelVectorToString(version_labels);
diff --git a/quic/core/quic_versions.h b/quic/core/quic_versions.h
index 6c2144a..99d3b2f 100644
--- a/quic/core/quic_versions.h
+++ b/quic/core/quic_versions.h
@@ -23,6 +23,7 @@
 #ifndef QUICHE_QUIC_CORE_QUIC_VERSIONS_H_
 #define QUICHE_QUIC_CORE_QUIC_VERSIONS_H_
 
+#include <cstdint>
 #include <string>
 #include <vector>
 
@@ -394,6 +395,11 @@
 using QuicVersionLabel = uint32_t;
 using QuicVersionLabelVector = std::vector<QuicVersionLabel>;
 
+// Constructs a version label from the 4 bytes such that the on-the-wire
+// order will be: d, c, b, a.
+QUIC_EXPORT_PRIVATE QuicVersionLabel MakeVersionLabel(uint8_t a, uint8_t b,
+                                                      uint8_t c, uint8_t d);
+
 QUIC_EXPORT_PRIVATE std::ostream& operator<<(
     std::ostream& os, const QuicVersionLabelVector& version_labels);
 
diff --git a/quic/core/quic_versions_test.cc b/quic/core/quic_versions_test.cc
index 6f384dd..7df721a 100644
--- a/quic/core/quic_versions_test.cc
+++ b/quic/core/quic_versions_test.cc
@@ -18,20 +18,13 @@
 using ::testing::ElementsAre;
 using ::testing::IsEmpty;
 
-class QuicVersionsTest : public QuicTest {
- protected:
-  QuicVersionLabel MakeVersionLabel(char a, char b, char c, char d) {
-    return MakeQuicTag(d, c, b, a);
-  }
-};
-
-TEST_F(QuicVersionsTest, CreateQuicVersionLabelUnsupported) {
+TEST(QuicVersionsTest, CreateQuicVersionLabelUnsupported) {
   EXPECT_QUIC_BUG(
       CreateQuicVersionLabel(UnsupportedQuicVersion()),
       "Unsupported version QUIC_VERSION_UNSUPPORTED PROTOCOL_UNSUPPORTED");
 }
 
-TEST_F(QuicVersionsTest, KnownAndValid) {
+TEST(QuicVersionsTest, KnownAndValid) {
   for (const ParsedQuicVersion& version : AllSupportedVersions()) {
     EXPECT_TRUE(version.IsKnown());
     EXPECT_TRUE(ParsedQuicVersionIsValid(version.handshake_protocol,
@@ -58,7 +51,7 @@
                                         static_cast<QuicTransportVersion>(99)));
 }
 
-TEST_F(QuicVersionsTest, Features) {
+TEST(QuicVersionsTest, Features) {
   ParsedQuicVersion parsed_version_q043 = ParsedQuicVersion::Q043();
   ParsedQuicVersion parsed_version_draft_29 = ParsedQuicVersion::Draft29();
 
@@ -109,7 +102,7 @@
   EXPECT_FALSE(parsed_version_draft_29.UsesQuicCrypto());
 }
 
-TEST_F(QuicVersionsTest, ParseQuicVersionLabel) {
+TEST(QuicVersionsTest, ParseQuicVersionLabel) {
   EXPECT_EQ(ParsedQuicVersion::Q043(),
             ParseQuicVersionLabel(MakeVersionLabel('Q', '0', '4', '3')));
   EXPECT_EQ(ParsedQuicVersion::Q046(),
@@ -132,7 +125,7 @@
                 MakeVersionLabel(0xff, 0x00, 0x00, 0x1d)}));
 }
 
-TEST_F(QuicVersionsTest, ParseQuicVersionString) {
+TEST(QuicVersionsTest, ParseQuicVersionString) {
   EXPECT_EQ(ParsedQuicVersion::Q043(), ParseQuicVersionString("Q043"));
   EXPECT_EQ(ParsedQuicVersion::Q046(),
             ParseQuicVersionString("QUIC_VERSION_46"));
@@ -158,7 +151,7 @@
   }
 }
 
-TEST_F(QuicVersionsTest, ParseQuicVersionVectorString) {
+TEST(QuicVersionsTest, ParseQuicVersionVectorString) {
   ParsedQuicVersion version_q046 = ParsedQuicVersion::Q046();
   ParsedQuicVersion version_q050 = ParsedQuicVersion::Q050();
   ParsedQuicVersion version_draft_29 = ParsedQuicVersion::Draft29();
@@ -210,34 +203,31 @@
               ElementsAre(version_draft_29));
 }
 
-TEST_F(QuicVersionsTest, CreateQuicVersionLabel) {
-  EXPECT_EQ(MakeVersionLabel('Q', '0', '4', '3'),
-            CreateQuicVersionLabel(ParsedQuicVersion::Q043()));
-  EXPECT_EQ(MakeVersionLabel('Q', '0', '4', '6'),
-            CreateQuicVersionLabel(ParsedQuicVersion::Q046()));
-  EXPECT_EQ(MakeVersionLabel('Q', '0', '5', '0'),
-            CreateQuicVersionLabel(ParsedQuicVersion::Q050()));
-  EXPECT_EQ(MakeVersionLabel(0xff, 0x00, 0x00, 0x1d),
-            CreateQuicVersionLabel(ParsedQuicVersion::Draft29()));
-  EXPECT_EQ(MakeVersionLabel(0x00, 0x00, 0x00, 0x01),
-            CreateQuicVersionLabel(ParsedQuicVersion::RFCv1()));
-  EXPECT_EQ(MakeVersionLabel(0x70, 0x9a, 0x50, 0xc4),
+// Do not use MakeVersionLabel() to generate expectations, because
+// CreateQuicVersionLabel() uses MakeVersionLabel() internally,
+// in case it has a bug.
+TEST(QuicVersionsTest, CreateQuicVersionLabel) {
+  EXPECT_EQ(0x51303433u, CreateQuicVersionLabel(ParsedQuicVersion::Q043()));
+  EXPECT_EQ(0x51303436u, CreateQuicVersionLabel(ParsedQuicVersion::Q046()));
+  EXPECT_EQ(0x51303530u, CreateQuicVersionLabel(ParsedQuicVersion::Q050()));
+  EXPECT_EQ(0xff00001du, CreateQuicVersionLabel(ParsedQuicVersion::Draft29()));
+  EXPECT_EQ(0x00000001u, CreateQuicVersionLabel(ParsedQuicVersion::RFCv1()));
+  EXPECT_EQ(0x709a50c4u,
             CreateQuicVersionLabel(ParsedQuicVersion::V2Draft01()));
 
   // Make sure the negotiation reserved version is in the IETF reserved space.
   EXPECT_EQ(
-      MakeVersionLabel(0xda, 0x5a, 0x3a, 0x3a) & 0x0f0f0f0f,
+      0xda5a3a3au & 0x0f0f0f0f,
       CreateQuicVersionLabel(ParsedQuicVersion::ReservedForNegotiation()) &
           0x0f0f0f0f);
 
   // Make sure that disabling randomness works.
   SetQuicFlag(FLAGS_quic_disable_version_negotiation_grease_randomness, true);
-  EXPECT_EQ(
-      MakeVersionLabel(0xda, 0x5a, 0x3a, 0x3a),
-      CreateQuicVersionLabel(ParsedQuicVersion::ReservedForNegotiation()));
+  EXPECT_EQ(0xda5a3a3au, CreateQuicVersionLabel(
+                             ParsedQuicVersion::ReservedForNegotiation()));
 }
 
-TEST_F(QuicVersionsTest, QuicVersionLabelToString) {
+TEST(QuicVersionsTest, QuicVersionLabelToString) {
   QuicVersionLabelVector version_labels = {
       MakeVersionLabel('Q', '0', '3', '5'),
       MakeVersionLabel('Q', '0', '3', '7'),
@@ -258,7 +248,7 @@
   EXPECT_EQ("Q035,Q037,T038", os.str());
 }
 
-TEST_F(QuicVersionsTest, QuicVersionToString) {
+TEST(QuicVersionsTest, QuicVersionToString) {
   EXPECT_EQ("QUIC_VERSION_UNSUPPORTED",
             QuicVersionToString(QUIC_VERSION_UNSUPPORTED));
 
@@ -290,7 +280,7 @@
   EXPECT_EQ("QUIC_VERSION_UNSUPPORTED,QUIC_VERSION_43", os.str());
 }
 
-TEST_F(QuicVersionsTest, ParsedQuicVersionToString) {
+TEST(QuicVersionsTest, ParsedQuicVersionToString) {
   EXPECT_EQ("0", ParsedQuicVersionToString(ParsedQuicVersion::Unsupported()));
   EXPECT_EQ("Q043", ParsedQuicVersionToString(ParsedQuicVersion::Q043()));
   EXPECT_EQ("Q046", ParsedQuicVersionToString(ParsedQuicVersion::Q046()));
@@ -321,7 +311,7 @@
   EXPECT_EQ("0,Q043", os.str());
 }
 
-TEST_F(QuicVersionsTest, FilterSupportedVersionsAllVersions) {
+TEST(QuicVersionsTest, FilterSupportedVersionsAllVersions) {
   for (const ParsedQuicVersion& version : AllSupportedVersions()) {
     QuicEnableVersion(version);
   }
@@ -334,7 +324,7 @@
   EXPECT_EQ(expected_parsed_versions, AllSupportedVersions());
 }
 
-TEST_F(QuicVersionsTest, FilterSupportedVersionsWithoutFirstVersion) {
+TEST(QuicVersionsTest, FilterSupportedVersionsWithoutFirstVersion) {
   for (const ParsedQuicVersion& version : AllSupportedVersions()) {
     QuicEnableVersion(version);
   }
@@ -348,7 +338,7 @@
             FilterSupportedVersions(AllSupportedVersions()));
 }
 
-TEST_F(QuicVersionsTest, LookUpParsedVersionByIndex) {
+TEST(QuicVersionsTest, LookUpParsedVersionByIndex) {
   ParsedQuicVersionVector all_versions = AllSupportedVersions();
   int version_count = all_versions.size();
   for (int i = -5; i <= version_count + 1; ++i) {
@@ -364,7 +354,7 @@
 // This test may appear to be so simplistic as to be unnecessary,
 // yet a typo was made in doing the #defines and it was caught
 // only in some test far removed from here... Better safe than sorry.
-TEST_F(QuicVersionsTest, CheckTransportVersionNumbersForTypos) {
+TEST(QuicVersionsTest, CheckTransportVersionNumbersForTypos) {
   static_assert(SupportedVersions().size() == 6u,
                 "Supported versions out of sync");
   EXPECT_EQ(QUIC_VERSION_43, 43);
@@ -375,7 +365,7 @@
   EXPECT_EQ(QUIC_VERSION_IETF_2_DRAFT_01, 81);
 }
 
-TEST_F(QuicVersionsTest, AlpnForVersion) {
+TEST(QuicVersionsTest, AlpnForVersion) {
   static_assert(SupportedVersions().size() == 6u,
                 "Supported versions out of sync");
   EXPECT_EQ("h3-Q043", AlpnForVersion(ParsedQuicVersion::Q043()));
@@ -386,7 +376,7 @@
   EXPECT_EQ("h3", AlpnForVersion(ParsedQuicVersion::V2Draft01()));
 }
 
-TEST_F(QuicVersionsTest, QuicVersionEnabling) {
+TEST(QuicVersionsTest, QuicVersionEnabling) {
   for (const ParsedQuicVersion& version : AllSupportedVersions()) {
     QuicFlagSaver flag_saver;
     QuicDisableVersion(version);
@@ -396,7 +386,7 @@
   }
 }
 
-TEST_F(QuicVersionsTest, ReservedForNegotiation) {
+TEST(QuicVersionsTest, ReservedForNegotiation) {
   EXPECT_EQ(QUIC_VERSION_RESERVED_FOR_NEGOTIATION,
             QuicVersionReservedForNegotiation().transport_version);
   // QUIC_VERSION_RESERVED_FOR_NEGOTIATION MUST NOT be supported.
@@ -405,7 +395,7 @@
   }
 }
 
-TEST_F(QuicVersionsTest, SupportedVersionsHasCorrectList) {
+TEST(QuicVersionsTest, SupportedVersionsHasCorrectList) {
   size_t index = 0;
   for (HandshakeProtocol handshake_protocol : SupportedHandshakeProtocols()) {
     for (int trans_vers = 255; trans_vers > 0; trans_vers--) {
@@ -423,7 +413,7 @@
   EXPECT_EQ(SupportedVersions().size(), index);
 }
 
-TEST_F(QuicVersionsTest, SupportedVersionsAllDistinct) {
+TEST(QuicVersionsTest, SupportedVersionsAllDistinct) {
   for (size_t index1 = 0; index1 < SupportedVersions().size(); ++index1) {
     ParsedQuicVersion version1 = SupportedVersions()[index1];
     for (size_t index2 = index1 + 1; index2 < SupportedVersions().size();
@@ -443,7 +433,7 @@
   }
 }
 
-TEST_F(QuicVersionsTest, CurrentSupportedHttp3Versions) {
+TEST(QuicVersionsTest, CurrentSupportedHttp3Versions) {
   ParsedQuicVersionVector h3_versions = CurrentSupportedHttp3Versions();
   ParsedQuicVersionVector all_current_supported_versions =
       CurrentSupportedVersions();