Home | History | Annotate | Download | only in tests
      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.
     10 void TestDeclarations() { std::string a(""), b("abc"), c(""); }
     11 
     12 // Tests for std::string allocated with new.
     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:
     23   TestInitializers() : a("") {}
     24   TestInitializers(bool) : a(""), b("") {}
     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.
     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.
     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