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