Fix issues with rtc_stats_unittests tests so that they can run on bots.
This target is not run on bots so a couple of issues went under the
radar. If we expose the tests and run them on the bots[1] two issues are
surfaced which this CL fixes. After this CL lands we can enable this
target on the bots without it going red.

rtcstats_unittest.cc: Fix const char* string comparison issue by
comparing with strcmp instead of equality check.

rtcstatscollector_unittest.cc: Fix TSAN issue by constructing
ScopedFakeClock before spawning Threads.

[1] https://codereview.webrtc.org/2340443002/

BUG=chromium:627816
NOTRY=True

Review-Url: https://codereview.webrtc.org/2333343002
Cr-Commit-Position: refs/heads/master@{#14215}
diff --git a/webrtc/stats/rtcstats_unittest.cc b/webrtc/stats/rtcstats_unittest.cc
index 1d4e016..f3b4209 100644
--- a/webrtc/stats/rtcstats_unittest.cc
+++ b/webrtc/stats/rtcstats_unittest.cc
@@ -10,6 +10,8 @@
 
 #include "webrtc/api/rtcstats.h"
 
+#include <cstring>
+
 #include "webrtc/base/checks.h"
 #include "webrtc/base/gunit.h"
 
@@ -114,14 +116,30 @@
   stats.m_double = 123.0;
   stats.m_static_string = "123";
   stats.m_string = std::string("123");
-  stats.m_sequence_int32 = std::vector<int32_t>();
-  stats.m_sequence_uint32 = std::vector<uint32_t>();
+
+  std::vector<int32_t> sequence_int32;
+  sequence_int32.push_back(static_cast<int32_t>(1));
+  std::vector<uint32_t> sequence_uint32;
+  sequence_uint32.push_back(static_cast<uint32_t>(2));
+  std::vector<int64_t> sequence_int64;
+  sequence_int64.push_back(static_cast<int64_t>(3));
+  std::vector<uint64_t> sequence_uint64;
+  sequence_uint64.push_back(static_cast<uint64_t>(4));
+  std::vector<double> sequence_double;
+  sequence_double.push_back(5.0);
+  std::vector<const char*> sequence_static_string;
+  sequence_static_string.push_back("six");
+  std::vector<std::string> sequence_string;
+  sequence_string.push_back(std::string("seven"));
+
+  stats.m_sequence_int32 = sequence_int32;
+  stats.m_sequence_uint32 = sequence_uint32;
   EXPECT_FALSE(stats.m_sequence_int64.is_defined());
-  stats.m_sequence_int64 = std::vector<int64_t>();
-  stats.m_sequence_uint64 = std::vector<uint64_t>();
-  stats.m_sequence_double = std::vector<double>();
-  stats.m_sequence_static_string = std::vector<const char*>();
-  stats.m_sequence_string = std::vector<std::string>();
+  stats.m_sequence_int64 = sequence_int64;
+  stats.m_sequence_uint64 = sequence_uint64;
+  stats.m_sequence_double = sequence_double;
+  stats.m_sequence_static_string = sequence_static_string;
+  stats.m_sequence_string = sequence_string;
   for (const RTCStatsMemberInterface* member : members) {
     EXPECT_TRUE(member->is_defined());
   }
@@ -130,17 +148,24 @@
   EXPECT_EQ(*stats.m_int64, static_cast<int64_t>(123));
   EXPECT_EQ(*stats.m_uint64, static_cast<uint64_t>(123));
   EXPECT_EQ(*stats.m_double, 123.0);
-  EXPECT_EQ(*stats.m_static_string, "123");
+  EXPECT_EQ(strcmp(*stats.m_static_string, "123"), 0);
   EXPECT_EQ(*stats.m_string, std::string("123"));
-  EXPECT_EQ(*stats.m_sequence_int32, std::vector<int32_t>());
-  EXPECT_EQ(*stats.m_sequence_uint32, std::vector<uint32_t>());
-  EXPECT_EQ(*stats.m_sequence_int64, std::vector<int64_t>());
-  EXPECT_EQ(*stats.m_sequence_uint64, std::vector<uint64_t>());
-  EXPECT_EQ(*stats.m_sequence_double, std::vector<double>());
-  EXPECT_EQ(*stats.m_sequence_static_string, std::vector<const char*>());
-  EXPECT_EQ(*stats.m_sequence_string, std::vector<std::string>());
+  EXPECT_EQ(*stats.m_sequence_int32, sequence_int32);
+  EXPECT_EQ(*stats.m_sequence_uint32, sequence_uint32);
+  EXPECT_EQ(*stats.m_sequence_int64, sequence_int64);
+  EXPECT_EQ(*stats.m_sequence_uint64, sequence_uint64);
+  EXPECT_EQ(*stats.m_sequence_double, sequence_double);
+  EXPECT_EQ(stats.m_sequence_static_string->size(),
+            sequence_static_string.size());
+  for (size_t i = 0; i < sequence_static_string.size(); ++i) {
+    EXPECT_EQ(strcmp((*stats.m_sequence_static_string)[i],
+                     sequence_static_string[i]), 0);
+  }
+  EXPECT_EQ(*stats.m_sequence_string, sequence_string);
+
   int32_t numbers[] = { 4, 8, 15, 16, 23, 42 };
-  std::vector<int32_t> numbers_sequence(&numbers[0], &numbers[5]);
+  std::vector<int32_t> numbers_sequence(&numbers[0], &numbers[6]);
+  stats.m_sequence_int32->clear();
   stats.m_sequence_int32->insert(stats.m_sequence_int32->end(),
                                  numbers_sequence.begin(),
                                  numbers_sequence.end());