• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 //
5 // Test file for the empty string clang tool.
6 
7 #include <string>
8 
9 // Tests for std::string declarations.
TestDeclarations()10 void TestDeclarations() { std::string a(""), b("abc"), c(""); }
11 
12 // Tests for std::string allocated with new.
TestNew()13 void TestNew() {
14   std::string* a = new std::string(""),
15               *b = new std::string("abc"),
16               *c = new std::string(""),
17               *d = new std::string();
18 }
19 
20 // Tests for std::string construction in initializer lists.
21 class TestInitializers {
22  public:
TestInitializers()23   TestInitializers() : a("") {}
TestInitializers(bool)24   TestInitializers(bool) : a(""), b("") {}
TestInitializers(double)25   TestInitializers(double) : a(""), b("cat"), c() {}
26 
27  private:
28   std::string a;
29   std::string b;
30   std::string c;
31 };
32 
33 // Tests for temporary std::strings.
TestTemporaries(const std::string & reference_argument,const std::string value_argument)34 void TestTemporaries(const std::string& reference_argument,
35                      const std::string value_argument) {
36   TestTemporaries("", "");
37   TestTemporaries(std::string(""), std::string(""));
38 }
39 
40 // Tests for temporary std::wstrings.
TestWideTemporaries(const std::wstring & reference_argument,const std::wstring value_argument)41 void TestWideTemporaries(const std::wstring& reference_argument,
42                          const std::wstring value_argument) {
43   TestWideTemporaries(L"", L"");
44   TestWideTemporaries(std::wstring(L""), std::wstring(L""));
45 }
46 
47