2 * Copyright 2015 Facebook, Inc.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include <folly/experimental/symbolizer/Dwarf.h>
19 #include <gtest/gtest.h>
21 using folly::symbolizer::Dwarf;
24 std::string expectedPath,
25 std::string expectedBaseDir,
26 std::string expectedSubDir,
27 std::string expectedFile,
28 std::string rawBaseDir,
29 std::string rawSubDir,
30 std::string rawFile) {
31 Dwarf::Path path(rawBaseDir, rawSubDir, rawFile);
33 CHECK_EQ(expectedBaseDir, path.baseDir())
34 << "Path(" << rawBaseDir << ", " << rawSubDir << ", " << rawFile << ")";
35 CHECK_EQ(expectedSubDir, path.subDir())
36 << "Path(" << rawBaseDir << ", " << rawSubDir << ", " << rawFile << ")";
37 CHECK_EQ(expectedFile, path.file())
38 << "Path(" << rawBaseDir << ", " << rawSubDir << ", " << rawFile << ")";
40 CHECK_EQ(expectedPath, path.toString());
42 // Check the the `toBuffer` function.
45 len = path.toBuffer(buf, 1024);
46 CHECK_EQ(expectedPath, std::string(buf, len));