r201635 - Add an OverlayFileSystem class

Ben Langmuir blangmuir at apple.com
Wed Feb 19 08:06:46 PST 2014


Everything you suggested except using LLVM.h should be updated in r201691.  I’ll get the LLVM.h change in as soon as I rebase it and the buildbots catch up a bit.

Ben


On Feb 19, 2014, at 7:56 AM, Ben Langmuir <blangmuir at apple.com> wrote:

> 
> On Feb 19, 2014, at 2:07 AM, Dmitri Gribenko <gribozavr at gmail.com> wrote:
> 
>> On Wed, Feb 19, 2014 at 10:06 AM, Dmitri Gribenko <gribozavr at gmail.com> wrote:
>>> On Wed, Feb 19, 2014 at 3:29 AM, Ben Langmuir <blangmuir at apple.com> wrote:
>>>> +TEST(VirtualFileSystemTest, overlay_dirs) {
>>>> +  IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem());
>>>> +  IntrusiveRefCntPtr<DummyFileSystem> Upper(new DummyFileSystem());
>>>> +  IntrusiveRefCntPtr<vfs::OverlayFileSystem>
>>>> +    O(new vfs::OverlayFileSystem(Lower));
>>>> +  O->pushOverlay(Upper);
>>>> +
>>>> +  ErrorOr<vfs::Status> Status1((error_code())), Status2((error_code())),
>>>> +                       Status3((error_code()));
>>>> +
>>>> +  Lower->addDirectory("/lower-only");
>>>> +  Lower->addDirectory("/both");
>>>> +  Upper->addDirectory("/both");
>>>> +  Upper->addDirectory("/upper-only");
>>>> +
>>>> +  // non-merged paths should be the same
>>>> +  ASSERT_TRUE(Status1 = Lower->status("/lower-only"));
>>>> +  ASSERT_TRUE(Status2 = O->status("/lower-only"));
>>>> +  EXPECT_TRUE(Status1->equivalent(*Status2));
>>>> +
>>>> +  ASSERT_TRUE(Status1 = Lower->status("/lower-only"));
>>>> +  ASSERT_TRUE(Status2 = O->status("/lower-only"));
>>>> +  EXPECT_TRUE(Status1->equivalent(*Status2));
>>>> +}
>>> 
>>> What was the purpose of "/both" and Status3 in this test?
>> 
>> Also, the second time it should probably be testing upper-only.
> 
> Hmm, originally I was checking that the unique ID for /both in the overlay was distinct from its value in either lower or upper. However, I decided that wasn’t worth implementing right now, as tracking it is expensive and might be pointless if no one ever looks at the UIDs for the original file systems. I guess I’ll remove that code.  The permissions test covers checking that the merged directory looks correct.
> 
> And yes, the upper test was obviously wrong, thanks!
> 
> Ben
> 
>> 
>> Dmitri
>> 
>> -- 
>> main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
>> (j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits





More information about the cfe-commits mailing list