From: Joel Rosdahl Date: Fri, 1 Nov 2019 21:01:52 +0000 (+0100) Subject: Move tests of FormatNonstdStringView to a separate file X-Git-Tag: v4.0~714 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ee84a0306749c0fd500fff032a1d60b469990fff;p=thirdparty%2Fccache.git Move tests of FormatNonstdStringView to a separate file The general idea is that unittest/test_X.cpp contains tests for src/X.[hc]pp. --- diff --git a/Makefile.in b/Makefile.in index 3f37c7d0b..53181a657 100644 --- a/Makefile.in +++ b/Makefile.in @@ -82,6 +82,7 @@ test_suites += unittest/test_AtomicFile.cpp test_suites += unittest/test_Checksum.cpp test_suites += unittest/test_Compression.cpp test_suites += unittest/test_Config.cpp +test_suites += unittest/test_FormatNonstdStringView.cpp test_suites += unittest/test_NullCompression.cpp test_suites += unittest/test_Stat.cpp test_suites += unittest/test_Util.cpp diff --git a/src/FormatNonstdStringView.hpp b/src/FormatNonstdStringView.hpp index 33814e678..c2f93ad9a 100644 --- a/src/FormatNonstdStringView.hpp +++ b/src/FormatNonstdStringView.hpp @@ -18,9 +18,9 @@ #pragma once +#include "third_party/fmt/core.h" #include "third_party/nonstd/string_view.hpp" - // Specialization of fmt::formatter for nonstd::string_view. namespace fmt { diff --git a/unittest/test_FormatNonstdStringView.cpp b/unittest/test_FormatNonstdStringView.cpp new file mode 100644 index 000000000..0c37d5ec9 --- /dev/null +++ b/unittest/test_FormatNonstdStringView.cpp @@ -0,0 +1,44 @@ +// Copyright (C) 2019 Joel Rosdahl and other contributors +// +// See doc/AUTHORS.adoc for a complete list of contributors. +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +// more details. +// +// You should have received a copy of the GNU General Public License along with +// this program; if not, write to the Free Software Foundation, Inc., 51 +// Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +#include "FormatNonstdStringView.hpp" + +#include "third_party/catch.hpp" + +TEST_CASE("fmt::format and nonstd::string_view") +{ + nonstd::string_view null; + CHECK(fmt::format("{}", null) == ""); + + const std::string s = "0123456789"; + + nonstd::string_view empty(s.data(), 0); + CHECK(fmt::format("{}", empty) == ""); + + nonstd::string_view empty_end(s.data() + s.length(), 0); + CHECK(fmt::format("{}", empty_end) == ""); + + nonstd::string_view start(s.data(), 2); + CHECK(fmt::format("{}", start) == "01"); + + nonstd::string_view middle(s.data() + 3, 4); + CHECK(fmt::format("{}", middle) == "3456"); + + nonstd::string_view end(s.data() + s.length() - 2, 2); + CHECK(fmt::format("{}", end) == "89"); +} diff --git a/unittest/test_Util.cpp b/unittest/test_Util.cpp index 583de118f..42c720703 100644 --- a/unittest/test_Util.cpp +++ b/unittest/test_Util.cpp @@ -17,35 +17,11 @@ // Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA #include "../src/Util.hpp" -#include "FormatNonstdStringView.hpp" #include "third_party/catch.hpp" using Catch::Equals; -TEST_CASE("fmt::format and nonstd::string_view") -{ - nonstd::string_view null; - CHECK(fmt::format("{}", null) == ""); - - const std::string s = "0123456789"; - - nonstd::string_view empty(s.data(), 0); - CHECK(fmt::format("{}", empty) == ""); - - nonstd::string_view empty_end(s.data() + s.length(), 0); - CHECK(fmt::format("{}", empty_end) == ""); - - nonstd::string_view start(s.data(), 2); - CHECK(fmt::format("{}", start) == "01"); - - nonstd::string_view middle(s.data() + 3, 4); - CHECK(fmt::format("{}", middle) == "3456"); - - nonstd::string_view end(s.data() + s.length() - 2, 2); - CHECK(fmt::format("{}", end) == "89"); -} - TEST_CASE("Util::base_name") { CHECK(Util::base_name("") == "");