string_string.pass.cpp revision 061d0cc4db18d17bf01ed14c5db0be098205bd47
14ee2ad04344446e610172a0e73949212923014dfSebastian Redl//===----------------------------------------------------------------------===//
22cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor//
32cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor//                     The LLVM Compiler Infrastructure
42cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor//
52cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor// This file is dual licensed under the MIT and the University of Illinois Open
62cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor// Source Licenses. See LICENSE.TXT for details.
72cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor//
82cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor//===----------------------------------------------------------------------===//
92cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor
10a4232eb646d89e7d52424bb42eb87d9061f39e63Sebastian Redl// <string>
112cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor
122cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor// template<class charT, class traits, class Allocator>
132cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor//   bool operator==(const basic_string<charT,traits,Allocator>& lhs,
147faa2ec03a7ef120ac165bb45b6c70a8b20c9f1cSebastian Redl//                   const basic_string<charT,traits,Allocator>& rhs);
150eca89e9890db4d8336ce762a5b359a1d58ca02bArgyrios Kyrtzidis
16e737f5041a36d0befb39ffeed8d50ba15916d3daDouglas Gregor#include <string>
17e737f5041a36d0befb39ffeed8d50ba15916d3daDouglas Gregor#include <cassert>
182cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor
192cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#include "min_allocator.h"
202cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor
212a7fb27913999d132cf9e10e03dc5271faa2e9d3John McCalltemplate <class S>
2289eaf3af92c72c0c1aae807644e39cabc461d685Argyrios Kyrtzidisvoid
230b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregortest(const S& lhs, const S& rhs, bool x)
247a1fad38256eb4c5129359be85ba1ea1678eb5c9John McCall{
252cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor    assert((lhs == rhs) == x);
26a1ee0c548b8aa4aaf93d1917e304e3da13171a08John McCall}
276ab7cd853e9c15cf986a8a7c3db1f8d20e275409Sebastian Redl
287c5d24efcd2e505b5739f7def08dfe25ce59a1b2Chris Lattnerint main()
296a5a23f8e7fb65e028c8092bc1d1a1d9dfe2e9bcDouglas Gregor{
307c5d24efcd2e505b5739f7def08dfe25ce59a1b2Chris Lattner    {
3183d63c78810556d26b62ac4cbae2eda6cdd2570cSteve Naroff    typedef std::string S;
3214f79002e58556798e86168c63e48d533287eda5Douglas Gregor    test(S(""), S(""), true);
333251ceb90b3fec68e86d6dcfa58836e20a7205c3Douglas Gregor    test(S(""), S("abcde"), false);
3414f79002e58556798e86168c63e48d533287eda5Douglas Gregor    test(S(""), S("abcdefghij"), false);
35bd94500d3aa60092fb0f1e90f53fb0d03fa502a8Douglas Gregor    test(S(""), S("abcdefghijklmnopqrst"), false);
362bec0410d268779f601bd509e0302a500af7ac6aDouglas Gregor    test(S("abcde"), S(""), false);
37ab41e63821dc60ad144d0684df8d79a9eef86b75Douglas Gregor    test(S("abcde"), S("abcde"), true);
3817fc223395d51be582fc666bb6ea21bd1dff26dcDouglas Gregor    test(S("abcde"), S("abcdefghij"), false);
3917fc223395d51be582fc666bb6ea21bd1dff26dcDouglas Gregor    test(S("abcde"), S("abcdefghijklmnopqrst"), false);
402596e429a61602312bdd149786045b8a90cd2d10Daniel Dunbar    test(S("abcdefghij"), S(""), false);
412cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor    test(S("abcdefghij"), S("abcde"), false);
4214f79002e58556798e86168c63e48d533287eda5Douglas Gregor    test(S("abcdefghij"), S("abcdefghij"), true);
43b64c19365deab788753d29c9bc881253c3f16f37Douglas Gregor    test(S("abcdefghij"), S("abcdefghijklmnopqrst"), false);
443c304bd9ec2b4611572d4cbae9e1727bbecb5dc9Chris Lattner    test(S("abcdefghijklmnopqrst"), S(""), false);
452cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor    test(S("abcdefghijklmnopqrst"), S("abcde"), false);
468538e8d43a3a9bd439c987c0de37bcbf035dd391Sebastian Redl    test(S("abcdefghijklmnopqrst"), S("abcdefghij"), false);
472cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor    test(S("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), true);
48ade5000c8763f4bec41f452d7efa3a9b2a6d4712Sebastian Redl    }
49ade5000c8763f4bec41f452d7efa3a9b2a6d4712Sebastian Redl#if __cplusplus >= 201103L
50ade5000c8763f4bec41f452d7efa3a9b2a6d4712Sebastian Redl    {
51ade5000c8763f4bec41f452d7efa3a9b2a6d4712Sebastian Redl    typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
52ade5000c8763f4bec41f452d7efa3a9b2a6d4712Sebastian Redl    test(S(""), S(""), true);
53ade5000c8763f4bec41f452d7efa3a9b2a6d4712Sebastian Redl    test(S(""), S("abcde"), false);
54ade5000c8763f4bec41f452d7efa3a9b2a6d4712Sebastian Redl    test(S(""), S("abcdefghij"), false);
55ade5000c8763f4bec41f452d7efa3a9b2a6d4712Sebastian Redl    test(S(""), S("abcdefghijklmnopqrst"), false);
56ade5000c8763f4bec41f452d7efa3a9b2a6d4712Sebastian Redl    test(S("abcde"), S(""), false);
572cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor    test(S("abcde"), S("abcde"), true);
582cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor    test(S("abcde"), S("abcdefghij"), false);
592cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor    test(S("abcde"), S("abcdefghijklmnopqrst"), false);
6012b1c7615d4f9a2edc544be499f895f16ac100edChris Lattner    test(S("abcdefghij"), S(""), false);
612cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor    test(S("abcdefghij"), S("abcde"), false);
623397c5570369f19b2d6c52e898f708d75ceede1fSebastian Redl    test(S("abcdefghij"), S("abcdefghij"), true);
63a4232eb646d89e7d52424bb42eb87d9061f39e63Sebastian Redl    test(S("abcdefghij"), S("abcdefghijklmnopqrst"), false);
6489eaf3af92c72c0c1aae807644e39cabc461d685Argyrios Kyrtzidis    test(S("abcdefghijklmnopqrst"), S(""), false);
652cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor    test(S("abcdefghijklmnopqrst"), S("abcde"), false);
662cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor    test(S("abcdefghijklmnopqrst"), S("abcdefghij"), false);
672cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor    test(S("abcdefghijklmnopqrst"), S("abcdefghijklmnopqrst"), true);
688538e8d43a3a9bd439c987c0de37bcbf035dd391Sebastian Redl    }
692cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#endif
7089eaf3af92c72c0c1aae807644e39cabc461d685Argyrios Kyrtzidis}
718538e8d43a3a9bd439c987c0de37bcbf035dd391Sebastian Redl