@@ -411,6 +411,221 @@ TEST(
411411 EXPECT_FALSE (zelCheckIsLoaderInTearDown ());
412412}
413413
414+ TEST (
415+ TracingLayerState,
416+ GivenNullPointerWhenCallingzelGetTracingLayerStateThenErrorInvalidNullPointerIsReturned) {
417+
418+ EXPECT_EQ (ZE_RESULT_ERROR_INVALID_NULL_POINTER, zelGetTracingLayerState (nullptr ));
419+ }
420+
421+ TEST (
422+ TracingLayerState,
423+ GivenValidPointerWhenCallingzelGetTracingLayerStateThenSuccessIsReturned) {
424+
425+ uint32_t pCount = 0 ;
426+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
427+ desc.flags = UINT32_MAX;
428+ desc.pNext = nullptr ;
429+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
430+ bool enabled = false ;
431+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
432+ }
433+
434+ TEST (
435+ TracingLayerState,
436+ GivenTracingLayerNotEnabledWhenCallingzelGetTracingLayerStateThenFalseIsReturned) {
437+
438+ uint32_t pCount = 0 ;
439+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
440+ desc.flags = UINT32_MAX;
441+ desc.pNext = nullptr ;
442+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
443+ bool enabled = true ;
444+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
445+ EXPECT_FALSE (enabled);
446+ }
447+
448+ TEST (
449+ TracingLayerState,
450+ GivenTracingLayerEnabledWhenCallingzelGetTracingLayerStateThenTrueIsReturned) {
451+
452+ uint32_t pCount = 0 ;
453+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
454+ desc.flags = UINT32_MAX;
455+ desc.pNext = nullptr ;
456+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
457+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
458+ bool enabled = false ;
459+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
460+ EXPECT_TRUE (enabled);
461+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
462+ }
463+
464+ TEST (
465+ TracingLayerState,
466+ GivenTracingLayerEnabledThenDisabledWhenCallingzelGetTracingLayerStateThenFalseIsReturned) {
467+
468+ uint32_t pCount = 0 ;
469+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
470+ desc.flags = UINT32_MAX;
471+ desc.pNext = nullptr ;
472+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
473+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
474+ bool enabled = false ;
475+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
476+ EXPECT_TRUE (enabled);
477+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
478+ enabled = true ;
479+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
480+ EXPECT_FALSE (enabled);
481+ }
482+
483+ TEST (
484+ TracingLayerState,
485+ GivenMultipleEnableCallsWhenCallingzelGetTracingLayerStateThenTrueIsReturned) {
486+
487+ uint32_t pCount = 0 ;
488+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
489+ desc.flags = UINT32_MAX;
490+ desc.pNext = nullptr ;
491+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
492+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
493+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
494+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
495+ bool enabled = false ;
496+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
497+ EXPECT_TRUE (enabled);
498+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
499+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
500+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
501+ }
502+
503+ TEST (
504+ TracingLayerState,
505+ GivenMultipleEnableAndPartialDisableWhenCallingzelGetTracingLayerStateThenTrueIsReturned) {
506+
507+ uint32_t pCount = 0 ;
508+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
509+ desc.flags = UINT32_MAX;
510+ desc.pNext = nullptr ;
511+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
512+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
513+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
514+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
515+ bool enabled = false ;
516+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
517+ EXPECT_TRUE (enabled);
518+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
519+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
520+ EXPECT_TRUE (enabled);
521+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
522+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
523+ EXPECT_TRUE (enabled);
524+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
525+ enabled = true ;
526+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
527+ EXPECT_FALSE (enabled);
528+ }
529+
530+ TEST (
531+ TracingLayerState,
532+ GivenMultipleCallsTozelGetTracingLayerStateWhenTracingEnabledThenAllReturnTrue) {
533+
534+ uint32_t pCount = 0 ;
535+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
536+ desc.flags = UINT32_MAX;
537+ desc.pNext = nullptr ;
538+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
539+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
540+ bool enabled1 = false , enabled2 = false , enabled3 = false ;
541+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled1));
542+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled2));
543+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled3));
544+ EXPECT_TRUE (enabled1);
545+ EXPECT_TRUE (enabled2);
546+ EXPECT_TRUE (enabled3);
547+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
548+ }
549+
550+ TEST (
551+ TracingLayerState,
552+ GivenMultipleCallsTozelGetTracingLayerStateWhenTracingDisabledThenAllReturnFalse) {
553+
554+ uint32_t pCount = 0 ;
555+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
556+ desc.flags = UINT32_MAX;
557+ desc.pNext = nullptr ;
558+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
559+ bool enabled1 = true , enabled2 = true , enabled3 = true ;
560+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled1));
561+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled2));
562+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled3));
563+ EXPECT_FALSE (enabled1);
564+ EXPECT_FALSE (enabled2);
565+ EXPECT_FALSE (enabled3);
566+ }
567+
568+ TEST (
569+ TracingLayerState,
570+ GivenTracingLayerEnabledViaEnvironmentWhenCallingzelGetTracingLayerStateThenTrueIsReturned) {
571+
572+ uint32_t pCount = 0 ;
573+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
574+ desc.flags = UINT32_MAX;
575+ desc.pNext = nullptr ;
576+ putenv_safe ( const_cast <char *>( " ZE_ENABLE_TRACING_LAYER=1" ) );
577+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
578+ bool enabled = false ;
579+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
580+ EXPECT_TRUE (enabled);
581+ }
582+
583+ TEST (
584+ TracingLayerState,
585+ GivenTracingLayerEnabledViaEnvironmentWhenCallingzelEnableTracingLayerThenStateRemainsTrue) {
586+
587+ uint32_t pCount = 0 ;
588+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
589+ desc.flags = UINT32_MAX;
590+ desc.pNext = nullptr ;
591+ putenv_safe ( const_cast <char *>( " ZE_ENABLE_TRACING_LAYER=1" ) );
592+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
593+ bool enabled = false ;
594+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
595+ EXPECT_TRUE (enabled);
596+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
597+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
598+ EXPECT_TRUE (enabled);
599+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
600+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
601+ EXPECT_TRUE (enabled);
602+ }
603+
604+ TEST (
605+ TracingLayerState,
606+ GivenTracingLayerEnabledViaEnvironmentAndDynamicallyWhenDisablingDynamicTracingThenStateRemainsTrue) {
607+
608+ uint32_t pCount = 0 ;
609+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
610+ desc.flags = UINT32_MAX;
611+ desc.pNext = nullptr ;
612+ putenv_safe ( const_cast <char *>( " ZE_ENABLE_TRACING_LAYER=1" ) );
613+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
614+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
615+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
616+ bool enabled = false ;
617+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
618+ EXPECT_TRUE (enabled);
619+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
620+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
621+ EXPECT_TRUE (enabled);
622+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
623+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
624+ EXPECT_TRUE (enabled);
625+ }
626+
627+
628+
414629class CaptureOutput {
415630private:
416631 int original_fd;
0 commit comments