Skip to content

Commit

Permalink
iox-eclipse-iceoryx#1036 Implement filesystem tests
Browse files Browse the repository at this point in the history
Signed-off-by: Christian Eltzschig <me@elchris.org>
  • Loading branch information
elfenpiff committed Jan 26, 2022
1 parent 780f417 commit 13b0717
Show file tree
Hide file tree
Showing 2 changed files with 108 additions and 0 deletions.
1 change: 1 addition & 0 deletions iceoryx_hoofs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ add_library(iceoryx_hoofs
source/concurrent/active_object.cpp
source/concurrent/loffli.cpp
source/cxx/deadline_timer.cpp
source/cxx/filesystem.cpp
source/cxx/helplets.cpp
source/cxx/generic_raii.cpp
source/cxx/unique_id.cpp
Expand Down
107 changes: 107 additions & 0 deletions iceoryx_hoofs/test/moduletests/test_cxx_filesystem.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
// Copyright (c) 2022 by Apex.AI Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// SPDX-License-Identifier: Apache-2.0

#include "iceoryx_hoofs/cxx/filesystem.hpp"
#include "test.hpp"

namespace
{
using namespace ::testing;
using namespace iox::cxx;

using permsBaseType_t = std::underlying_type<perms>::type;

TEST(filesystem_test, permsSatisfiesBinaryOrOperationCorrectly)
{
constexpr perms TEST_VALUE_LHS = perms::others_write;
constexpr perms TEST_VALUE_RHS = perms::group_all;

constexpr auto BASE_VALUE_LHS = static_cast<permsBaseType_t>(TEST_VALUE_LHS);
constexpr auto BASE_VALUE_RHS = static_cast<permsBaseType_t>(TEST_VALUE_RHS);

EXPECT_THAT(static_cast<permsBaseType_t>(TEST_VALUE_LHS | TEST_VALUE_RHS), Eq(BASE_VALUE_LHS | BASE_VALUE_RHS));
}

TEST(filesystem_test, permsSatisfiesBinaryAndOperationCorrectly)
{
constexpr perms TEST_VALUE_LHS = perms::others_read;
constexpr perms TEST_VALUE_RHS = perms::mask;

constexpr auto BASE_VALUE_LHS = static_cast<permsBaseType_t>(TEST_VALUE_LHS);
constexpr auto BASE_VALUE_RHS = static_cast<permsBaseType_t>(TEST_VALUE_RHS);

EXPECT_THAT(static_cast<permsBaseType_t>(TEST_VALUE_LHS & TEST_VALUE_RHS), Eq(BASE_VALUE_LHS & BASE_VALUE_RHS));
}

TEST(filesystem_test, permsSatisfiesBinaryExclusiveOrOperationCorrectly)
{
constexpr perms TEST_VALUE_LHS = perms::set_gid;
constexpr perms TEST_VALUE_RHS = perms::set_uid;

constexpr auto BASE_VALUE_LHS = static_cast<permsBaseType_t>(TEST_VALUE_LHS);
constexpr auto BASE_VALUE_RHS = static_cast<permsBaseType_t>(TEST_VALUE_RHS);

EXPECT_THAT(static_cast<permsBaseType_t>(TEST_VALUE_LHS ^ TEST_VALUE_RHS), Eq(BASE_VALUE_LHS ^ BASE_VALUE_RHS));
}

TEST(filesystem_test, permsSatisfiesBinaryComplementOperationCorrectly)
{
constexpr perms TEST_VALUE = perms::owner_read;

constexpr auto BASE_VALUE = static_cast<permsBaseType_t>(TEST_VALUE);

EXPECT_THAT(static_cast<permsBaseType_t>(~TEST_VALUE), Eq(~BASE_VALUE));
}

TEST(filesystem_test, permsSatisfiesBinaryOrAssignmentOperationCorrectly)
{
constexpr perms TEST_VALUE = perms::sticky_bit;
constexpr perms TEST_VALUE_RHS = perms::group_read;

auto sutBaseValue = static_cast<permsBaseType_t>(TEST_VALUE);
constexpr auto BASE_VALUE_RHS = static_cast<permsBaseType_t>(TEST_VALUE_RHS);

perms sut = TEST_VALUE;

EXPECT_THAT(static_cast<permsBaseType_t>(sut |= TEST_VALUE_RHS), Eq(sutBaseValue |= BASE_VALUE_RHS));
}

TEST(filesystem_test, permsSatisfiesBinaryAndAssignmentOperationCorrectly)
{
constexpr perms TEST_VALUE = perms::others_exec;
constexpr perms TEST_VALUE_RHS = perms::others_all;

auto sutBaseValue = static_cast<permsBaseType_t>(TEST_VALUE);
constexpr auto BASE_VALUE_RHS = static_cast<permsBaseType_t>(TEST_VALUE_RHS);

perms sut = TEST_VALUE;

EXPECT_THAT(static_cast<permsBaseType_t>(sut &= TEST_VALUE_RHS), Eq(sutBaseValue &= BASE_VALUE_RHS));
}

TEST(filesystem_test, permsSatisfiesBinaryExclusiveOrAssignmentOperationCorrectly)
{
constexpr perms TEST_VALUE = perms::none;
constexpr perms TEST_VALUE_RHS = perms::owner_all;

auto sutBaseValue = static_cast<permsBaseType_t>(TEST_VALUE);
constexpr auto BASE_VALUE_RHS = static_cast<permsBaseType_t>(TEST_VALUE_RHS);

perms sut = TEST_VALUE;

EXPECT_THAT(static_cast<permsBaseType_t>(sut ^= TEST_VALUE_RHS), Eq(sutBaseValue ^= BASE_VALUE_RHS));
}
} // namespace

0 comments on commit 13b0717

Please sign in to comment.