Files
libcxx/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_extension.pass.cpp
Nico Weber 28db4445e2 libcxx: Rename .hpp files in libcxx/test/support to .h
LLVM uses .h as its extension for header files.

Files renamed using:

    for f in libcxx/test/support/*.hpp; do git mv $f ${f%.hpp}.h; done

References to the files updated using:

    for f in $(git diff master | grep 'rename from' | cut -f 3 -d ' '); do
        a=$(basename $f);
        echo $a;
        rg -l $a libcxx | xargs sed -i '' "s/$a/${a%.hpp}.h/";
    done

HPP include guards updated manually using:

    for f in $(git diff master | grep 'rename from' | cut -f 3 -d ' '); do
      echo ${f%.hpp}.h ;
    done | xargs mvim

Differential Revision: https://reviews.llvm.org/D66104

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@369481 91177308-0d34-0410-b5e6-96231b3b80d8
2019-08-21 00:14:12 +00:00

74 lines
1.7 KiB
C++

//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++98, c++03
// <filesystem>
// class path
// path& replace_extension(path const& p = path())
#include "filesystem_include.h"
#include <type_traits>
#include <cassert>
#include "test_macros.h"
#include "test_iterators.h"
#include "count_new.h"
#include "filesystem_test_helper.h"
struct ReplaceExtensionTestcase {
const char* value;
const char* expect;
const char* extension;
};
const ReplaceExtensionTestcase TestCases[] =
{
{"", "", ""}
, {"foo.cpp", "foo", ""}
, {"foo.cpp", "foo.", "."}
, {"foo..cpp", "foo..txt", "txt"}
, {"", ".txt", "txt"}
, {"", ".txt", ".txt"}
, {"/foo", "/foo.txt", ".txt"}
, {"/foo", "/foo.txt", "txt"}
, {"/foo.cpp", "/foo.txt", ".txt"}
, {"/foo.cpp", "/foo.txt", "txt"}
};
const ReplaceExtensionTestcase NoArgCases[] =
{
{"", "", ""}
, {"foo", "foo", ""}
, {"foo.cpp", "foo", ""}
, {"foo..cpp", "foo.", ""}
};
int main(int, char**)
{
using namespace fs;
for (auto const & TC : TestCases) {
path p(TC.value);
assert(p == TC.value);
path& Ref = (p.replace_extension(TC.extension));
assert(p == TC.expect);
assert(&Ref == &p);
}
for (auto const& TC : NoArgCases) {
path p(TC.value);
assert(p == TC.value);
path& Ref = (p.replace_extension());
assert(p == TC.expect);
assert(&Ref == &p);
}
return 0;
}