/* * Copyright (c) Advanced Micro Devices, Inc., or its affiliates. * * SPDX-License-Identifier: MIT */ #include #include /** * @addtogroup hipStreamGetFlags_spt hipStreamGetFlags_spt * @{ * @ingroup StreamTest * `hipStreamGetFlags_spt(hipStream_t stream, unsigned int* flags)` - * Return flags associated with a stream on stream per thread */ /** * Test Description * ------------------------ * - Basic test to verify that hipStreamGetFlags_spt returns the same * flags that were used to create the stream. * Test source * ------------------------ * - /unit/stream/hipStreamGetFlags_spt.cc * Test requirements * ------------------------ * - HIP_VERSION >= 6.2 */ HIP_TEST_CASE(Unit_hipStreamGetFlags_spt_Basic) { unsigned int expectedFlag = GENERATE(hipStreamDefault, hipStreamNonBlocking); unsigned int returnedFlags; hipStream_t stream; HIP_CHECK(hipStreamCreateWithFlags(&stream, expectedFlag)); HIP_CHECK(hipStreamGetFlags_spt(stream, &returnedFlags)); REQUIRE((returnedFlags & expectedFlag) == expectedFlag); HIP_CHECK(hipStreamDestroy(stream)); } /** * Test Description * ------------------------ * - Tests to verify Negative scenarios for the hipStreamGetFlags_spt API * Test source * ------------------------ * - /unit/stream/hipStreamGetFlags_spt.cc * Test requirements * ------------------------ * - HIP_VERSION >= 6.2 */ HIP_TEST_CASE(Unit_hipStreamGetFlags_spt_Negative) { hipStream_t validStream; unsigned int flags; HIP_CHECK(hipStreamCreate(&validStream)); SECTION("Nullptr Stream && Valid Flags") { #if HT_AMD HIP_CHECK_ERROR(hipStreamGetFlags_spt(nullptr, &flags), hipSuccess); #elif HT_NVIDIA HIP_CHECK(hipStreamGetFlags_spt(nullptr, &flags)); #endif } SECTION("Valid Stream && Nullptr Flags") { HIP_CHECK_ERROR(hipStreamGetFlags_spt(validStream, nullptr), hipErrorInvalidValue); } HIP_CHECK(hipStreamDestroy(validStream)); } /** * Test Description * ------------------------ * - Test flag value when streams created with CUMask * Test source * ------------------------ * - /unit/stream/hipStreamGetFlags_spt.cc * Test requirements * ------------------------ * - HIP_VERSION >= 6.2 */ #if HT_AMD HIP_TEST_CASE(Unit_hipStreamGetFlags_spt_StreamsCreatedWithCUMask) { hipStream_t stream; unsigned int flags; const uint32_t cuMask = 0xffffffff; HIP_CHECK(hipExtStreamCreateWithCUMask(&stream, 1, &cuMask)); HIP_CHECK(hipStreamGetFlags_spt(stream, &flags)); REQUIRE(flags == hipStreamDefault); HIP_CHECK(hipStreamDestroy(stream)); } #endif /** * End doxygen group StreamTest. * @} */