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() {
     11   std::string a, b("abc"), c;
     12 }
     13 
     14 // Tests for std::string allocated with new.
     15 void TestNew() {
     16   std::string *a = new std::string, *b = new std::string("abc"),
     17               *c = new std::string, *d = new std::string();
     18 }
     19 
     20 // Tests for std::string construction in initializer lists.
     21 class TestInitializers {
     22  public:
     23   TestInitializers() {}
     24   TestInitializers(bool) {}
     25   TestInitializers(double) : 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(std::string(), std::string());
     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(std::wstring(), std::wstring());
     44   TestWideTemporaries(std::wstring(), std::wstring());
     45 }
     46