brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 16db933 Raw
62 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// <string>10 11// template<class charT, class traits, class Allocator>12//   bool operator<=(const basic_string<charT,traits,Allocator>& lhs, const charT* rhs); // constexpr since C++2013 14#include <string>15#include <cassert>16 17#include "test_macros.h"18#include "min_allocator.h"19 20template <class S>21TEST_CONSTEXPR_CXX20 void test(const S& lhs, const typename S::value_type* rhs, bool x) {22  assert((lhs <= rhs) == x);23}24 25template <class S>26TEST_CONSTEXPR_CXX20 void test_string() {27  test(S(""), "", true);28  test(S(""), "abcde", true);29  test(S(""), "abcdefghij", true);30  test(S(""), "abcdefghijklmnopqrst", true);31  test(S("abcde"), "", false);32  test(S("abcde"), "abcde", true);33  test(S("abcde"), "abcdefghij", true);34  test(S("abcde"), "abcdefghijklmnopqrst", true);35  test(S("abcdefghij"), "", false);36  test(S("abcdefghij"), "abcde", false);37  test(S("abcdefghij"), "abcdefghij", true);38  test(S("abcdefghij"), "abcdefghijklmnopqrst", true);39  test(S("abcdefghijklmnopqrst"), "", false);40  test(S("abcdefghijklmnopqrst"), "abcde", false);41  test(S("abcdefghijklmnopqrst"), "abcdefghij", false);42  test(S("abcdefghijklmnopqrst"), "abcdefghijklmnopqrst", true);43}44 45TEST_CONSTEXPR_CXX20 bool test() {46  test_string<std::string>();47#if TEST_STD_VER >= 1148  test_string<std::basic_string<char, std::char_traits<char>, min_allocator<char> > >();49#endif50 51  return true;52}53 54int main(int, char**) {55  test();56#if TEST_STD_VER > 1757  static_assert(test());58#endif59 60  return 0;61}62