Skip to content

Commit

Permalink
Merge branch 'master' into iox-1919-fix-max-group-name-length
Browse files Browse the repository at this point in the history
  • Loading branch information
atirehgram authored Mar 6, 2023
2 parents 0a64113 + adbed1b commit c573c94
Show file tree
Hide file tree
Showing 105 changed files with 587 additions and 322 deletions.
14 changes: 14 additions & 0 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ jobs:
- run: ./tools/scripts/clang_format.sh check
- run: ./tools/scripts/list_stl_dependencies.sh check
- run: ./tools/scripts/check_test_ids.sh
- run: ./tools/scripts/check_invalid_characters.sh
- run: ./tools/ci/cmake-linter.sh

build-test-ubuntu:
Expand Down Expand Up @@ -119,6 +120,19 @@ jobs:
- name: Run Address Sanitizer
run: ./tools/ci/build-test-macos-with-sanitizers.sh asan

build-test-ubuntu-with-thread-sanitizer-clang-latest:
# prevent stuck jobs consuming runners for 3 hours
timeout-minutes: 180
runs-on: ubuntu-latest
needs: pre-flight-check
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install iceoryx dependencies and clang-tidy
uses: ./.github/actions/install-iceoryx-deps-and-clang
- name: Run Thread Sanitizer
run: ./tools/ci/build-test-ubuntu-with-sanitizers.sh clang tsan

# gcc 5.4 is compiler used in QNX 7.0
build-test-ubuntu-with-gcc5:
# prevent stuck jobs consuming runners for 6 hours
Expand Down
18 changes: 0 additions & 18 deletions .github/workflows/lint_master.yml

This file was deleted.

13 changes: 13 additions & 0 deletions doc/website/release-notes/iceoryx-unreleased.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
- Update iceoryx_integrationtest package to use ROS2 Humble [\#1906](https://github.com/eclipse-iceoryx/iceoryx/issues/1906)
- Fix potential memory leak in `iox::stack` [\#1893](https://github.com/eclipse-iceoryx/iceoryx/issues/1893)
- Make `MAX_USER_NAME_LENGTH` and `MAX_GROUP_NAME_LENGTH` platform-dependent [\#1919](https://github.com/eclipse-iceoryx/iceoryx/issues/1919)
- Fix milliseconds in log timestamps [\#1932](https://github.com/eclipse-iceoryx/iceoryx/issues/1932)

**Refactoring:**

Expand Down Expand Up @@ -120,6 +121,7 @@
- Remove `algorithm::uniqueMergeSortedContainers` from `algorithm.hpp`
- Move `std::string` conversion function to `iceoryx_dust` [\#1612](https://github.com/eclipse-iceoryx/iceoryx/issues/1612)
- The posix call `unlink` is directly used in `UnixDomainSocket` [\#1622](https://github.com/eclipse-iceoryx/iceoryx/issues/1622)
- Wrap all C calls in posixCall in IntrospectionApp [\#1692](https://github.com/eclipse-iceoryx/iceoryx/issues/1692)

**Workflow:**

Expand Down Expand Up @@ -1034,3 +1036,14 @@
// after
iox::access_rights foo { iox::perms::owner_all | iox::perms::group_read };
```

47. Renaming `byte_t` to `byte`

```cpp
//before
iox::byte_t m_size;

//after
iox::byte m_size;
```

6 changes: 3 additions & 3 deletions iceoryx_binding_c/include/iceoryx_binding_c/client.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ typedef struct
/// @brief Sets whether the client blocks when the server request queue is full
ENUM iox_ConsumerTooSlowPolicy serverTooSlowPolicy;

/// @brief this value will be set exclusively by `iox_client_options_init` and is not supposed to be modified
/// @brief this value will be set exclusively by 'iox_client_options_init' and is not supposed to be modified
/// otherwise
uint64_t initCheck;
} iox_client_options_t;
Expand Down Expand Up @@ -85,8 +85,8 @@ void iox_client_deinit(iox_client_t const self);
/// @param[in] payloadSize user-payload size of the allocated request
/// @return on success it returns AllocationResult_SUCCESS otherwise a value which
/// describes the error
/// @note for the user-payload alignment `IOX_C_CHUNK_DEFAULT_USER_PAYLOAD_ALIGNMENT` is used
/// for a custom user-payload alignment please use `iox_client_loan_aligned_request`
/// @note for the user-payload alignment 'IOX_C_CHUNK_DEFAULT_USER_PAYLOAD_ALIGNMENT' is used
/// for a custom user-payload alignment please use 'iox_client_loan_aligned_request'
ENUM iox_AllocationResult iox_client_loan_request(iox_client_t const self,
void** const payload,
const uint32_t payloadSize);
Expand Down
6 changes: 3 additions & 3 deletions iceoryx_binding_c/include/iceoryx_binding_c/publisher.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ typedef struct
/// @brief describes whether a publisher blocks when subscriber queue is full
ENUM iox_ConsumerTooSlowPolicy subscriberTooSlowPolicy;

/// @brief this value will be set exclusively by `iox_pub_options_init` and is not supposed to be modified otherwise
/// @brief this value will be set exclusively by 'iox_pub_options_init' and is not supposed to be modified otherwise
uint64_t initCheck;
} iox_pub_options_t;

Expand Down Expand Up @@ -83,8 +83,8 @@ void iox_pub_deinit(iox_pub_t const self);
/// @param[in] userPayloadSize user-payload size of the allocated chunk
/// @return on success it returns AllocationResult_SUCCESS otherwise a value which
/// describes the error
/// @note for the user-payload alignment `IOX_C_CHUNK_DEFAULT_USER_PAYLOAD_ALIGNMENT` is used
/// for a custom user-payload alignment please use `iox_pub_loan_aligned_chunk`
/// @note for the user-payload alignment 'IOX_C_CHUNK_DEFAULT_USER_PAYLOAD_ALIGNMENT' is used
/// for a custom user-payload alignment please use 'iox_pub_loan_aligned_chunk'
ENUM iox_AllocationResult iox_pub_loan_chunk(iox_pub_t const self,
void** const userPayload,
const uint32_t userPayloadSize);
Expand Down
6 changes: 3 additions & 3 deletions iceoryx_binding_c/include/iceoryx_binding_c/server.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ typedef struct
/// @brief Sets whether the server blocks when the client response queue is full
ENUM iox_ConsumerTooSlowPolicy clientTooSlowPolicy;

/// @brief this value will be set exclusively by `iox_server_options_init` and is not supposed to be modified
/// @brief this value will be set exclusively by 'iox_server_options_init' and is not supposed to be modified
/// otherwise
uint64_t initCheck;
} iox_server_options_t;
Expand Down Expand Up @@ -98,8 +98,8 @@ void iox_server_release_request(iox_server_t const self, const void* const paylo
/// @param[in] payloadSize user-payload size of the allocated request
/// @return on success it returns AllocationResult_SUCCESS otherwise a value which
/// describes the error
/// @note for the user-payload alignment `IOX_C_CHUNK_DEFAULT_USER_PAYLOAD_ALIGNMENT` is used
/// for a custom user-payload alignment please use `iox_server_loan_aligned_response`
/// @note for the user-payload alignment 'IOX_C_CHUNK_DEFAULT_USER_PAYLOAD_ALIGNMENT' is used
/// for a custom user-payload alignment please use 'iox_server_loan_aligned_response'
ENUM iox_AllocationResult iox_server_loan_response(iox_server_t const self,
const void* const requestPayload,
void** const payload,
Expand Down
2 changes: 1 addition & 1 deletion iceoryx_binding_c/include/iceoryx_binding_c/types.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ typedef struct
/// @brief handle of the chunk header
typedef struct
{
// could be empty but then we get `struct has no members` warning
// could be empty but then we get 'struct has no members' warning
uint8_t do_not_touch_me[1];
} iox_chunk_header_t;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@
/// @param[in] type the type of the optional value
/// @param[in] memberName the name under which the optional value is accessible
/// @param[in] defaultValue the value when it is not set from outside
/// @param[in] shortName a single character for the short option like `-s` for instance
/// @param[in] longName a long option name under which this can be accessed like `--some-name` for instance
/// @param[in] shortName a single character for the short option like '-s' for instance
/// @param[in] longName a long option name under which this can be accessed like '--some-name' for instance
/// @param[in] description a description of the optional value
#define IOX_CLI_OPTIONAL(type, memberName, defaultValue, shortName, longName, description) \
IOX_INTERNAL_CMD_LINE_VALUE( \
Expand All @@ -46,17 +46,17 @@
/// terminate
/// @param[in] type the type of the required value
/// @param[in] memberName the name under which the required value is accessible
/// @param[in] shortName a single character for the short option like `-s` for instance
/// @param[in] longName a long option name under which this can be accessed like `--some-name` for instance
/// @param[in] shortName a single character for the short option like '-s' for instance
/// @param[in] longName a long option name under which this can be accessed like '--some-name' for instance
/// @param[in] description a description of the required value
#define IOX_CLI_REQUIRED(type, memberName, shortName, longName, description) \
IOX_INTERNAL_CMD_LINE_VALUE( \
type, memberName, type(), shortName, longName, description, iox::cli::OptionType::REQUIRED)

/// @brief Adds a switch to the command line
/// @param[in] memberName the name under which the switch is accessible
/// @param[in] shortName a single character for the short option like `-s` for instance
/// @param[in] longName a long option name under which this can be accessed like `--some-name` for instance
/// @param[in] shortName a single character for the short option like '-s' for instance
/// @param[in] longName a long option name under which this can be accessed like '--some-name' for instance
/// @param[in] description a description of the switch
#define IOX_CLI_SWITCH(memberName, shortName, longName, description) \
IOX_INTERNAL_CMD_LINE_VALUE(bool, memberName, false, shortName, longName, description, iox::cli::OptionType::SWITCH)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ namespace internal
/// CommandLineParser::parse creates and returns a populated Arguments
/// object.
/// This class should never be used directly. Use the CommandLine builder
/// from `iceoryx_hoofs/cxx/command_line_argument_definition.hpp` to create a struct which contains
/// from 'iceoryx_hoofs/cxx/command_line_argument_definition.hpp' to create a struct which contains
/// the values.
class Arguments
{
Expand Down
2 changes: 1 addition & 1 deletion iceoryx_examples/waitset/ice_waitset_grouping.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ int main()
std::cout << "dismiss data\n";
auto subscriber = notification->getOrigin<iox::popo::UntypedSubscriber>();
// We need to release the data to reset the trigger hasData
// otherwise the WaitSet would notify us in `waitset.wait()` again
// otherwise the WaitSet would notify us in 'waitset.wait()' again
// instantly.
subscriber->releaseQueuedData();
}
Expand Down
2 changes: 1 addition & 1 deletion iceoryx_examples/waitset/ice_waitset_individual.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ int main()
if (notification->doesOriginateFrom(&subscriber2))
{
// We need to release the samples to reset the trigger hasSamples
// otherwise the WaitSet would notify us in `waitset.wait()` again
// otherwise the WaitSet would notify us in 'waitset.wait()' again
// instantly.
subscriber2.releaseQueuedData();
std::cout << "subscriber 2 received something - dont care\n";
Expand Down
2 changes: 1 addition & 1 deletion iceoryx_examples/waitset/ice_waitset_trigger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class MyTriggerClass
// IMPORTANT: For now the WaitSet does not support that the origin is moved
// or copied. To support that we have to inform the waitset about
// our new origin, otherwise the WaitSet would end up in the wrong
// memory location when it calls the `hasTriggerCallback` with the
// memory location when it calls the 'hasTriggerCallback' with the
// old origin (already moved) pointer. The same applies to
// the resetCallback which is used when the WaitSet goes out of scope
// and is pointing also to the old origin.
Expand Down
2 changes: 1 addition & 1 deletion iceoryx_examples/waitset_in_c/ice_c_waitset_grouping.c
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ int main(void)
printf("dismiss data\n");
iox_sub_t subscriber = iox_notification_info_get_subscriber_origin(notification);
// We need to release the samples to reset the event hasSamples
// otherwise the WaitSet would notify us in `iox_ws_wait()` again
// otherwise the WaitSet would notify us in 'iox_ws_wait()' again
// instantly.
iox_sub_release_queued_chunks(subscriber);
}
Expand Down
2 changes: 1 addition & 1 deletion iceoryx_examples/waitset_in_c/ice_c_waitset_individual.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ int main(void)
else if (iox_notification_info_does_originate_from_subscriber(notification, subscriber[1]))
{
// We need to release the samples to reset the event hasSamples
// otherwise the WaitSet would notify us in `iox_ws_wait()` again
// otherwise the WaitSet would notify us in 'iox_ws_wait()' again
// instantly.
iox_sub_release_queued_chunks(subscriber[1U]);
printf("subscriber 2 received something - dont care\n");
Expand Down
2 changes: 1 addition & 1 deletion iceoryx_hoofs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ The module structure is a logical grouping. It is replicated for `concurrent` an
| class | internal | description |
|:---------------------:|:--------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|`type_traits` | | Extended support for evaluating types on compile-time. |
|`types` | | Declares essential building block types like `byte_t`. |
|`types` | | Declares essential building block types like `byte`. |
|`attributes` | | C++17 and C++20 attributes are sometimes available through compiler extensions. The attribute macros defined in here (like `IOX_FALLTHROUGH`, `IOX_MAYBE_UNUSED` ... ) make sure that we are able to use them if the compiler supports it. |
|`algorithm` | | Implements `min` and `max` for an arbitrary number of values of the same type. For instance `min(1,2,3,4,5);` |
|`size` | | Helper functions to determine the size in generic ways |
Expand Down
6 changes: 4 additions & 2 deletions iceoryx_hoofs/cmake/IceoryxPlatform.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,11 @@ function(iox_create_tsan_runtime_blacklist BLACKLIST_FILE_PATH)
# called_from_lib suppresses all interceptors in a particular library
if(NOT EXISTS ${BLACKLIST_FILE_PATH})
file(WRITE ${BLACKLIST_FILE_PATH} "# This file is auto-generated from iceoryx_hoofs/cmake/IceoryxPlatform.cmake\n")
file(APPEND ${BLACKLIST_FILE_PATH} "mutex:*\n")
file(APPEND ${BLACKLIST_FILE_PATH} "mutex:*MutexWithDeadlockDetectionsFailsWhenSameThreadTriesToUnlockItTwice*\n")
file(APPEND ${BLACKLIST_FILE_PATH} "mutex:*MutexWithDeadlockDetectionsFailsWhenAnotherThreadTriesToUnlock*\n")
file(APPEND ${BLACKLIST_FILE_PATH} "mutex:*MutexWithStallWhenLockedBehaviorDoesntUnlockMutexWhenThreadTerminates*\n")
file(APPEND ${BLACKLIST_FILE_PATH} "race:*\n")
file(APPEND ${BLACKLIST_FILE_PATH} "deadlock:*\n")
file(APPEND ${BLACKLIST_FILE_PATH} "deadlock:*TimingTest_AttachingInCallbackWorks*\n")
file(APPEND ${BLACKLIST_FILE_PATH} "# End of file\n")
endif()
endfunction()
Expand Down
3 changes: 2 additions & 1 deletion iceoryx_hoofs/container/include/iox/detail/vector.inl
Original file line number Diff line number Diff line change
Expand Up @@ -246,9 +246,10 @@ inline bool vector<T, Capacity>::resize(const uint64_t count, const Targs&... ar
template <typename T, uint64_t Capacity>
inline T* vector<T, Capacity>::data() noexcept
{
// AXIVION Next Construct AutosarC++19_03-A5.2.3 : const cast to avoid code duplication
// AXIVION DISABLE STYLE AutosarC++19_03-A5.2.3 : const cast to avoid code duplication
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-const-cast)
return const_cast<T*>(const_cast<const vector<T, Capacity>*>(this)->data());
// AXIVION ENABLE STYLE AutosarC++19_03-A5.2.3
}

template <typename T, uint64_t Capacity>
Expand Down
Loading

0 comments on commit c573c94

Please sign in to comment.