Commit 07ed0a72 authored by Tudor Bosman's avatar Tudor Bosman Committed by Sara Golemon

Fix overeager assertion

Summary: Also important spelling mistakes.
@override-unit-failures

Test Plan: string_test

Reviewed By: tjackson@fb.com

FB internal diff: D930037
parent d71636e2
...@@ -300,7 +300,7 @@ template<> struct OutputConverter<StringPiece> { ...@@ -300,7 +300,7 @@ template<> struct OutputConverter<StringPiece> {
template<class OutStringT, class DelimT, class OutputIterator> template<class OutStringT, class DelimT, class OutputIterator>
void internalSplit(DelimT delim, StringPiece sp, OutputIterator out, void internalSplit(DelimT delim, StringPiece sp, OutputIterator out,
bool ignoreEmpty) { bool ignoreEmpty) {
assert(sp.start() != nullptr); assert(sp.empty() || sp.start() != nullptr);
const char* s = sp.start(); const char* s = sp.start();
const size_t strSize = sp.size(); const size_t strSize = sp.size();
......
...@@ -481,6 +481,13 @@ void splitTest() { ...@@ -481,6 +481,13 @@ void splitTest() {
EXPECT_EQ(parts[2], "c"); EXPECT_EQ(parts[2], "c");
parts.clear(); parts.clear();
folly::split(',', StringPiece("a,b,c"), parts);
EXPECT_EQ(parts.size(), 3);
EXPECT_EQ(parts[0], "a");
EXPECT_EQ(parts[1], "b");
EXPECT_EQ(parts[2], "c");
parts.clear();
folly::split(',', string("a,b,c"), parts); folly::split(',', string("a,b,c"), parts);
EXPECT_EQ(parts.size(), 3); EXPECT_EQ(parts.size(), 3);
EXPECT_EQ(parts[0], "a"); EXPECT_EQ(parts[0], "a");
...@@ -559,16 +566,25 @@ void splitTest() { ...@@ -559,16 +566,25 @@ void splitTest() {
EXPECT_EQ(parts[0], ""); EXPECT_EQ(parts[0], "");
parts.clear(); parts.clear();
folly::split("a", StringPiece(), parts, true);
EXPECT_EQ(parts.size(), 0);
parts.clear();
folly::split("a", StringPiece(), parts);
EXPECT_EQ(parts.size(), 1);
EXPECT_EQ(parts[0], "");
parts.clear();
folly::split("a", "abcdefg", parts, true); folly::split("a", "abcdefg", parts, true);
EXPECT_EQ(parts.size(), 1); EXPECT_EQ(parts.size(), 1);
EXPECT_EQ(parts[0], "bcdefg"); EXPECT_EQ(parts[0], "bcdefg");
parts.clear(); parts.clear();
orig = "All, , your bases, are , , belong to us"; orig = "All, , your base, are , , belong to us";
folly::split(", ", orig, parts, true); folly::split(", ", orig, parts, true);
EXPECT_EQ(parts.size(), 4); EXPECT_EQ(parts.size(), 4);
EXPECT_EQ(parts[0], "All"); EXPECT_EQ(parts[0], "All");
EXPECT_EQ(parts[1], "your bases"); EXPECT_EQ(parts[1], "your base");
EXPECT_EQ(parts[2], "are "); EXPECT_EQ(parts[2], "are ");
EXPECT_EQ(parts[3], "belong to us"); EXPECT_EQ(parts[3], "belong to us");
parts.clear(); parts.clear();
...@@ -576,7 +592,7 @@ void splitTest() { ...@@ -576,7 +592,7 @@ void splitTest() {
EXPECT_EQ(parts.size(), 6); EXPECT_EQ(parts.size(), 6);
EXPECT_EQ(parts[0], "All"); EXPECT_EQ(parts[0], "All");
EXPECT_EQ(parts[1], ""); EXPECT_EQ(parts[1], "");
EXPECT_EQ(parts[2], "your bases"); EXPECT_EQ(parts[2], "your base");
EXPECT_EQ(parts[3], "are "); EXPECT_EQ(parts[3], "are ");
EXPECT_EQ(parts[4], ""); EXPECT_EQ(parts[4], "");
EXPECT_EQ(parts[5], "belong to us"); EXPECT_EQ(parts[5], "belong to us");
...@@ -689,11 +705,11 @@ void piecesTest() { ...@@ -689,11 +705,11 @@ void piecesTest() {
EXPECT_EQ(pieces[0], "bcdefg"); EXPECT_EQ(pieces[0], "bcdefg");
pieces.clear(); pieces.clear();
orig = "All, , your bases, are , , belong to us"; orig = "All, , your base, are , , belong to us";
folly::split(", ", orig, pieces, true); folly::split(", ", orig, pieces, true);
EXPECT_EQ(pieces.size(), 4); EXPECT_EQ(pieces.size(), 4);
EXPECT_EQ(pieces[0], "All"); EXPECT_EQ(pieces[0], "All");
EXPECT_EQ(pieces[1], "your bases"); EXPECT_EQ(pieces[1], "your base");
EXPECT_EQ(pieces[2], "are "); EXPECT_EQ(pieces[2], "are ");
EXPECT_EQ(pieces[3], "belong to us"); EXPECT_EQ(pieces[3], "belong to us");
pieces.clear(); pieces.clear();
...@@ -701,7 +717,7 @@ void piecesTest() { ...@@ -701,7 +717,7 @@ void piecesTest() {
EXPECT_EQ(pieces.size(), 6); EXPECT_EQ(pieces.size(), 6);
EXPECT_EQ(pieces[0], "All"); EXPECT_EQ(pieces[0], "All");
EXPECT_EQ(pieces[1], ""); EXPECT_EQ(pieces[1], "");
EXPECT_EQ(pieces[2], "your bases"); EXPECT_EQ(pieces[2], "your base");
EXPECT_EQ(pieces[3], "are "); EXPECT_EQ(pieces[3], "are ");
EXPECT_EQ(pieces[4], ""); EXPECT_EQ(pieces[4], "");
EXPECT_EQ(pieces[5], "belong to us"); EXPECT_EQ(pieces[5], "belong to us");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment