| // Copyright 2017 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include <fs/remote-dir.h> |
| |
| #include <unittest/unittest.h> |
| |
| #include <utility> |
| |
| namespace { |
| |
| bool TestRemoteDir() { |
| BEGIN_TEST; |
| |
| zx::channel server, client; |
| ASSERT_EQ(ZX_OK, zx::channel::create(0u, &server, &client)); |
| |
| zx_handle_t client_handle = client.get(); |
| auto dir = fbl::AdoptRef<fs::RemoteDir>(new fs::RemoteDir(std::move(client))); |
| |
| // get attributes |
| vnattr_t attr; |
| EXPECT_EQ(ZX_OK, dir->Getattr(&attr)); |
| EXPECT_EQ(V_TYPE_DIR | V_IRUSR, attr.mode); |
| EXPECT_EQ(1, attr.nlink); |
| |
| // get remote properties |
| EXPECT_TRUE(dir->IsRemote()); |
| EXPECT_EQ(client_handle, dir->GetRemote()); |
| |
| // detaching the remote mount isn't allowed |
| EXPECT_TRUE(!dir->DetachRemote()); |
| |
| END_TEST; |
| } |
| |
| } // namespace |
| |
| BEGIN_TEST_CASE(remote_dir_tests) |
| RUN_TEST(TestRemoteDir) |
| END_TEST_CASE(remote_dir_tests) |