@@ -326,7 +326,47 @@ TEST_P(umfProviderTest, purge_force_INVALID_POINTER) {
326326 UMF_DEVDAX_RESULT_ERROR_PURGE_FORCE_FAILED);
327327}
328328
329- // negative tests
329+ // params tests
330+
331+ TEST_F (test, params_protection_flag) {
332+ umf_devdax_memory_provider_params_handle_t params = nullptr ;
333+ umf_result_t ret =
334+ umfDevDaxMemoryProviderParamsCreate (¶ms, " /dev/dax0.0" , 4096 );
335+ ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
336+ ASSERT_NE (params, nullptr );
337+
338+ // test all valid combinations
339+ for (unsigned protection = UMF_PROTECTION_NONE;
340+ protection < (UMF_PROTECTION_MAX - 1 ) << 1 ; ++protection) {
341+ ret = umfDevDaxMemoryProviderParamsSetProtection (params, protection);
342+ ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
343+ }
344+
345+ umfDevDaxMemoryProviderParamsDestroy (params);
346+ }
347+
348+ // negative params tests
349+
350+ TEST_F (test, params_invalid_protection_flag) {
351+ umf_devdax_memory_provider_params_handle_t params = nullptr ;
352+ umf_result_t ret =
353+ umfDevDaxMemoryProviderParamsCreate (¶ms, " /dev/dax0.0" , 4096 );
354+ ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
355+ ASSERT_NE (params, nullptr );
356+
357+ ret = umfDevDaxMemoryProviderParamsSetProtection (params, 0 );
358+ ASSERT_EQ (ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);
359+
360+ for (unsigned protection = UMF_PROTECTION_NONE;
361+ protection < (UMF_PROTECTION_MAX - 1 ) << 1 ; ++protection) {
362+ unsigned invalid_protection = protection | (UMF_PROTECTION_MAX << 1 );
363+ ret = umfDevDaxMemoryProviderParamsSetProtection (params,
364+ invalid_protection);
365+ ASSERT_EQ (ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);
366+ }
367+
368+ umfDevDaxMemoryProviderParamsDestroy (params);
369+ }
330370
331371TEST_F (test, params_null_handle) {
332372 auto ret =
0 commit comments