range.cc 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Copyright (C) 2014-2022 Free Software Foundation, Inc.
  2. //
  3. // This file is part of the GNU ISO C++ Library. This library is free
  4. // software; you can redistribute it and/or modify it under the
  5. // terms of the GNU General Public License as published by the
  6. // Free Software Foundation; either version 3, or (at your option)
  7. // any later version.
  8. // This library is distributed in the hope that it will be useful,
  9. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. // GNU General Public License for more details.
  12. // You should have received a copy of the GNU General Public License along
  13. // with this library; see the file COPYING3. If not see
  14. // <http://www.gnu.org/licenses/>.
  15. #include <regex>
  16. #include <testsuite_performance.h>
  17. using namespace __gnu_test;
  18. int main()
  19. {
  20. time_counter time;
  21. resource_counter resource;
  22. start_counters(time, resource);
  23. // this should get compiled to just L"[abcd]"
  24. auto re = std::wregex(L'[' + std::wstring(300, L'a') + L"bc"
  25. + std::wstring(1000, 'a') + L"d]");
  26. bool ok = true;
  27. for (int i = 0; i < 100000; ++i)
  28. ok = ok && (std::regex_match(L"b", re) && std::regex_match(L"d", re));
  29. stop_counters(time, resource);
  30. report_performance(__FILE__, "", time, resource);
  31. return ok ? 0 : 1;
  32. }