Hadoop Common
  1. Hadoop Common
  2. HADOOP-10351

Unit test TestSwiftFileSystemLsOperations#testListEmptyRoot and testListNonEmptyRoot failure.

    Details

    • Type: Test Test
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 2.3.0
    • Fix Version/s: None
    • Component/s: fs/swift, test
    • Labels:
      None

      Description

      TestSwiftFileSystemLsOperations#testListEmptyRoot and testLisNontEmptyRoot fails because the unit test TestFSMainOperationsSwift creates the testing directory test.build.dir through its parent class. But during the parent classes tearDown, only the test.build.dir/test directory is deleted leaving the test.build.dir in the container. However, tests TestSwiftFileSystemLsOperations#testListEmptyRoot and testListEmptyRoot do not expect the directory to exists in the container thus causing the failure.

      TestSwiftFileSystemLsOperations.testListEmptyRoot:126->Assert.assertEquals:472->Assert.assertEquals:128->Assert.failNotEquals:647->Assert.fail:93 Non-empty root/[00] SwiftFileStatus

      { path=swift://container1.service/home; isDirectory=true; length=0; blocksize=33554432; modification_time=1392850893440}

      expected:<0> but was:<1>
      TestSwiftFileSystemLsOperations.testListNonEmptyRoot:137->Assert.assertEquals:472->Assert.assertEquals:128->Assert.failNotEquals:647->Assert.fail:93 Wrong #of root children/[00] SwiftFileStatus

      { path=swift://container1.service/home; isDirectory=true; length=0; blocksize=33554432; modification_time=1392850893440}

      [01] SwiftFileStatus

      { path=swift://patchtest.softlayer/test; isDirectory=true; length=0; blocksize=33554432; modification_time=1392851462990}

      expected:<1> but was:<2>

        Activity

        Hide
        Jinghui Wang added a comment -

        Patch attached overriding the parent class tearDown method to make sure the whole test directory is completely deleted from the swift container.

        Show
        Jinghui Wang added a comment - Patch attached overriding the parent class tearDown method to make sure the whole test directory is completely deleted from the swift container.
        Hide
        Steve Loughran added a comment -

        This is interesting: I've not seen this in my tests -but it sounds like the ordering of tests defines this.

        Fix-wise, I think it's better to have the tests themselves be more robust by doing a delete("/", true) before the rest of the work.
        This stops us worrying about teardown in external tests, and just forces the object store into the desired state before the run.

        Do want to supply that patch?

        Show
        Steve Loughran added a comment - This is interesting: I've not seen this in my tests -but it sounds like the ordering of tests defines this. Fix-wise, I think it's better to have the tests themselves be more robust by doing a delete("/", true) before the rest of the work. This stops us worrying about teardown in external tests, and just forces the object store into the desired state before the run. Do want to supply that patch?
        Hide
        Jinghui Wang added a comment -

        Thanks Steve. Updated the patch to make sure those tests start with a clean root directory in the container.

        Show
        Jinghui Wang added a comment - Thanks Steve. Updated the patch to make sure those tests start with a clean root directory in the container.
        Hide
        Kazuki OIKAWA added a comment -

        I encountered this problem too.
        Attached patch is works fine.

        Show
        Kazuki OIKAWA added a comment - I encountered this problem too. Attached patch is works fine.

          People

          • Assignee:
            Unassigned
            Reporter:
            Jinghui Wang
          • Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:

              Development