mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-04-06 23:32:39 +00:00

This commit adds initial support for the -include/-exclude options which are both currently marked as hidden. This support is the first step toward supporting transformations in headers included from source files. Added unittests to test include/exclude support. Author: Jack Yang <jack.yang@intel.com> llvm-svn: 179528
30 lines
1.2 KiB
C++
30 lines
1.2 KiB
C++
#include "Core/IncludeExcludeInfo.h"
|
|
#include "gtest/gtest.h"
|
|
|
|
IncludeExcludeInfo IEManager(/*include=*/ "a,b/b2,c/c2/c3",
|
|
/*exclude=*/ "a/af.cpp,a/a2,b/b2/b2f.cpp,c/c2/c3");
|
|
|
|
TEST(IncludeExcludeTest, NoMatchOnIncludeList) {
|
|
// If the file does not appear on the include list then it is not safe to
|
|
// transform. Files are not safe to transform by default.
|
|
EXPECT_FALSE(IEManager.isFileIncluded("f.cpp"));
|
|
EXPECT_FALSE(IEManager.isFileIncluded("b/dir/f.cpp"));
|
|
}
|
|
|
|
TEST(IncludeExcludeTest, MatchOnIncludeList) {
|
|
// If the file appears on only the include list then it is safe to transform.
|
|
EXPECT_TRUE(IEManager.isFileIncluded("a/f.cpp"));
|
|
EXPECT_TRUE(IEManager.isFileIncluded("a/dir/f.cpp"));
|
|
EXPECT_TRUE(IEManager.isFileIncluded("b/b2/f.cpp"));
|
|
}
|
|
|
|
TEST(IncludeExcludeTest, MatchOnBothLists) {
|
|
// If the file appears on both the include or exclude list then it is not
|
|
// safe to transform.
|
|
EXPECT_FALSE(IEManager.isFileIncluded("a/af.cpp"));
|
|
EXPECT_FALSE(IEManager.isFileIncluded("a/a2/f.cpp"));
|
|
EXPECT_FALSE(IEManager.isFileIncluded("a/a2/dir/f.cpp"));
|
|
EXPECT_FALSE(IEManager.isFileIncluded("b/b2/b2f.cpp"));
|
|
EXPECT_FALSE(IEManager.isFileIncluded("c/c2/c3/f.cpp"));
|
|
}
|