@@ -954,6 +954,62 @@ namespace
954954 destroyTracer (hTracer);
955955 }
956956
957+ TEST_P (TracingParameterizedTest,
958+ GivenLoaderWithDynamicTracingEnabledAndZerApisUnsupportedAndBothZeAndZerCallbacksRegisteredWhenCallingBothApisThenTracingWorksForZeOnly)
959+ {
960+ putenv_safe (const_cast <char *>(" ZEL_TEST_NULL_DRIVER_DISABLE_ZER_API=1" ));
961+ InitMethod initMethod = GetParam ();
962+
963+ std::vector<ze_driver_handle_t > drivers;
964+ initializeLevelZero (initMethod, drivers);
965+
966+ zel_tracer_handle_t hTracer = createTracer ();
967+ registerZerPrologueCallbacks (hTracer);
968+ registerZerEpilogueCallbacks (hTracer);
969+ registerZePrologueCallbacks (hTracer);
970+ registerZeEpilogueCallbacks (hTracer);
971+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelTracerSetEnabled (hTracer, true ));
972+
973+ callBasicZeApis (drivers);
974+ verifyBasicZeApisCalledBothCallbackTypes (0 );
975+
976+ EXPECT_EQ (ZE_RESULT_SUCCESS, enableDynamicTracing ());
977+
978+ const char *errorString = nullptr ;
979+ ze_result_t result = zerGetLastErrorDescription (&errorString);
980+ EXPECT_EQ (ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, result);
981+ EXPECT_EQ (0 , tracingData.getZerPrologueCallCount (" zerGetLastErrorDescription" ));
982+ EXPECT_EQ (0 , tracingData.getZerEpilogueCallCount (" zerGetLastErrorDescription" ));
983+
984+ callBasicZeApis (drivers);
985+ verifyBasicZeApisCalledBothCallbackTypes (1 );
986+
987+ EXPECT_EQ (ZE_RESULT_SUCCESS, disableDynamicTracing ());
988+ callBasicZeApis (drivers);
989+ verifyBasicZeApisCalledBothCallbackTypes (1 );
990+
991+ EXPECT_EQ (ZE_RESULT_SUCCESS, enableDynamicTracing ());
992+
993+ errorString = nullptr ;
994+ result = zerGetLastErrorDescription (&errorString);
995+ EXPECT_EQ (ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, result);
996+ EXPECT_EQ (0 , tracingData.getZerPrologueCallCount (" zerGetLastErrorDescription" ));
997+ EXPECT_EQ (0 , tracingData.getZerEpilogueCallCount (" zerGetLastErrorDescription" ));
998+
999+ uint32_t deviceCount = 1 ;
1000+ std::vector<ze_device_handle_t > devices (deviceCount);
1001+ result = zeDeviceGet (drivers[0 ], &deviceCount, devices.data ());
1002+ EXPECT_EQ (ZE_RESULT_SUCCESS, result);
1003+
1004+ uint32_t queueGroupCount = 0 ;
1005+ result = zeDeviceGetCommandQueueGroupProperties (devices[0 ], &queueGroupCount, nullptr );
1006+ EXPECT_EQ (ZE_RESULT_SUCCESS, result);
1007+ EXPECT_EQ (2 , tracingData.getZePrologueCallCount (" zeDeviceGetCommandQueueGroupProperties" ));
1008+ EXPECT_EQ (2 , tracingData.getZeEpilogueCallCount (" zeDeviceGetCommandQueueGroupProperties" ));
1009+
1010+ destroyTracer (hTracer);
1011+ }
1012+
9571013 INSTANTIATE_TEST_SUITE_P (
9581014 InitMethods,
9591015 TracingParameterizedTest,
0 commit comments