[Lldb-commits] [lldb] r285393 - Add a couple of fun unit tests for FileSpec::Equal
Zachary Turner via lldb-commits
lldb-commits at lists.llvm.org
Fri Oct 28 08:34:15 PDT 2016
Instead of #if 0'ing them, I believe you can add _Disabled to the end of
the name. A common pattern is something like this:
#if LLVM_ON_WIN32
#define TestFunBlackslashes_Maybe TestFunBlackslashes_Disabled
#else
#define TestFunBlackslashes_Maybe TestFunBlackslashes
#endif
TEST_F(FileSpecTest, TestFunBackslashes_Maybe) {
}
You might need to check on the exact syntax, but that should get you pretty
close.
On Fri, Oct 28, 2016 at 4:37 AM Pavel Labath via lldb-commits <
lldb-commits at lists.llvm.org> wrote:
> Author: labath
> Date: Fri Oct 28 06:28:01 2016
> New Revision: 285393
>
> URL: http://llvm.org/viewvc/llvm-project?rev=285393&view=rev
> Log:
> Add a couple of fun unit tests for FileSpec::Equal
>
> Most of them fail right now and are commented out. The main problem is
> handling
> of backslashes on windows, but also the posix path code has a couple of
> issues.
>
> Modified:
> lldb/trunk/unittests/Host/FileSpecTest.cpp
>
> Modified: lldb/trunk/unittests/Host/FileSpecTest.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Host/FileSpecTest.cpp?rev=285393&r1=285392&r2=285393&view=diff
>
> ==============================================================================
> --- lldb/trunk/unittests/Host/FileSpecTest.cpp (original)
> +++ lldb/trunk/unittests/Host/FileSpecTest.cpp Fri Oct 28 06:28:01 2016
> @@ -109,19 +109,92 @@ TEST(FileSpecTest, CopyByAppendingPathCo
> EXPECT_STREQ("bar", fs.GetFilename().GetCString());
> }
>
> -TEST(FileSpecTest, Equal) {
> +static void Compare(const FileSpec &one, const FileSpec &two, bool
> full_match,
> + bool remove_backup_dots, bool result) {
> + EXPECT_EQ(result, FileSpec::Equal(one, two, full_match,
> remove_backup_dots))
> + << "File one: " << one.GetCString() << "\nFile two: " <<
> two.GetCString()
> + << "\nFull match: " << full_match
> + << "\nRemove backup dots: " << remove_backup_dots;
> +}
> +
> +TEST(FileSpecTest, EqualSeparator) {
> FileSpec backward("C:\\foo\\bar", false, FileSpec::ePathSyntaxWindows);
> FileSpec forward("C:/foo/bar", false, FileSpec::ePathSyntaxWindows);
> EXPECT_EQ(forward, backward);
>
> const bool full_match = true;
> const bool remove_backup_dots = true;
> - EXPECT_TRUE(
> - FileSpec::Equal(forward, backward, full_match, remove_backup_dots));
> - EXPECT_TRUE(
> - FileSpec::Equal(forward, backward, full_match,
> !remove_backup_dots));
> - EXPECT_TRUE(
> - FileSpec::Equal(forward, backward, !full_match,
> remove_backup_dots));
> - EXPECT_TRUE(
> - FileSpec::Equal(forward, backward, !full_match,
> !remove_backup_dots));
> + const bool match = true;
> + Compare(forward, backward, full_match, remove_backup_dots, match);
> + Compare(forward, backward, full_match, !remove_backup_dots, match);
> + Compare(forward, backward, !full_match, remove_backup_dots, match);
> + Compare(forward, backward, !full_match, !remove_backup_dots, match);
> +}
> +
> +#if 0
> +TEST(FileSpecTest, EqualDotsWindows) {
> + const bool full_match = true;
> + const bool remove_backup_dots = true;
> + const bool match = true;
> + std::pair<const char *, const char *> tests[] = {
> + {R"(C:\foo\bar\baz)", R"(C:\foo\foo\..\bar\baz)"},
> + {R"(C:\bar\baz)", R"(C:\foo\..\bar\baz)"},
> + {R"(C:\bar\baz)", R"(C:/foo/../bar/baz)"},
> + {R"(C:/bar/baz)", R"(C:\foo\..\bar\baz)"},
> + {R"(C:\bar)", R"(C:\foo\..\bar)"},
> + };
> +
> + for(const auto &test: tests) {
> + FileSpec one(test.first, false, FileSpec::ePathSyntaxWindows);
> + FileSpec two(test.second, false, FileSpec::ePathSyntaxWindows);
> + EXPECT_NE(one, two);
> + Compare(one, two, full_match, remove_backup_dots, match);
> + Compare(one, two, full_match, !remove_backup_dots, !match);
> + Compare(one, two, !full_match, remove_backup_dots, match);
> + Compare(one, two, !full_match, !remove_backup_dots, match);
> + }
> +
> +}
> +#endif
> +
> +TEST(FileSpecTest, EqualDotsPosix) {
> + const bool full_match = true;
> + const bool remove_backup_dots = true;
> + const bool match = true;
> + std::pair<const char *, const char *> tests[] = {
> + {R"(/foo/bar/baz)", R"(/foo/foo/../bar/baz)"},
> + {R"(/bar/baz)", R"(/foo/../bar/baz)"},
> +// {R"(/bar)", R"(/foo/../bar)"},
> + };
> +
> + for(const auto &test: tests) {
> + FileSpec one(test.first, false, FileSpec::ePathSyntaxPosix);
> + FileSpec two(test.second, false, FileSpec::ePathSyntaxPosix);
> + EXPECT_NE(one, two);
> + Compare(one, two, full_match, remove_backup_dots, match);
> + Compare(one, two, full_match, !remove_backup_dots, !match);
> + Compare(one, two, !full_match, remove_backup_dots, match);
> +// Compare(one, two, !full_match, !remove_backup_dots, match);
> + }
> +
> +}
> +
> +#if 0
> +TEST(FileSpecTest, EqualDotsPosixRoot) {
> + const bool full_match = true;
> + const bool remove_backup_dots = true;
> + const bool match = true;
> + std::pair<const char *, const char *> tests[] = {
> + {R"(/)", R"(/..)"},
> + {R"(/)", R"(/foo/..)"},
> + };
> +
> + for(const auto &test: tests) {
> + FileSpec one(test.first, false, FileSpec::ePathSyntaxPosix);
> + FileSpec two(test.second, false, FileSpec::ePathSyntaxPosix);
> + EXPECT_NE(one, two);
> + Compare(one, two, full_match, remove_backup_dots, match);
> + Compare(one, two, !full_match, remove_backup_dots, match);
> + }
> }
> +#endif
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20161028/d7a91f00/attachment.html>
More information about the lldb-commits
mailing list