[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