@@ -556,6 +556,221 @@ TEST(
556556 EXPECT_FALSE (zelCheckIsLoaderInTearDown ());
557557}
558558
559+ TEST (
560+ TracingLayerState,
561+ GivenNullPointerWhenCallingzelGetTracingLayerStateThenErrorInvalidNullPointerIsReturned) {
562+
563+ EXPECT_EQ (ZE_RESULT_ERROR_INVALID_NULL_POINTER, zelGetTracingLayerState (nullptr ));
564+ }
565+
566+ TEST (
567+ TracingLayerState,
568+ GivenValidPointerWhenCallingzelGetTracingLayerStateThenSuccessIsReturned) {
569+
570+ uint32_t pCount = 0 ;
571+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
572+ desc.flags = UINT32_MAX;
573+ desc.pNext = nullptr ;
574+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
575+ bool enabled = false ;
576+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
577+ }
578+
579+ TEST (
580+ TracingLayerState,
581+ GivenTracingLayerNotEnabledWhenCallingzelGetTracingLayerStateThenFalseIsReturned) {
582+
583+ uint32_t pCount = 0 ;
584+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
585+ desc.flags = UINT32_MAX;
586+ desc.pNext = nullptr ;
587+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
588+ bool enabled = true ;
589+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
590+ EXPECT_FALSE (enabled);
591+ }
592+
593+ TEST (
594+ TracingLayerState,
595+ GivenTracingLayerEnabledWhenCallingzelGetTracingLayerStateThenTrueIsReturned) {
596+
597+ uint32_t pCount = 0 ;
598+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
599+ desc.flags = UINT32_MAX;
600+ desc.pNext = nullptr ;
601+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
602+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
603+ bool enabled = false ;
604+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
605+ EXPECT_TRUE (enabled);
606+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
607+ }
608+
609+ TEST (
610+ TracingLayerState,
611+ GivenTracingLayerEnabledThenDisabledWhenCallingzelGetTracingLayerStateThenFalseIsReturned) {
612+
613+ uint32_t pCount = 0 ;
614+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
615+ desc.flags = UINT32_MAX;
616+ desc.pNext = nullptr ;
617+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
618+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
619+ bool enabled = false ;
620+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
621+ EXPECT_TRUE (enabled);
622+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
623+ enabled = true ;
624+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
625+ EXPECT_FALSE (enabled);
626+ }
627+
628+ TEST (
629+ TracingLayerState,
630+ GivenMultipleEnableCallsWhenCallingzelGetTracingLayerStateThenTrueIsReturned) {
631+
632+ uint32_t pCount = 0 ;
633+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
634+ desc.flags = UINT32_MAX;
635+ desc.pNext = nullptr ;
636+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
637+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
638+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
639+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
640+ bool enabled = false ;
641+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
642+ EXPECT_TRUE (enabled);
643+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
644+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
645+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
646+ }
647+
648+ TEST (
649+ TracingLayerState,
650+ GivenMultipleEnableAndPartialDisableWhenCallingzelGetTracingLayerStateThenTrueIsReturned) {
651+
652+ uint32_t pCount = 0 ;
653+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
654+ desc.flags = UINT32_MAX;
655+ desc.pNext = nullptr ;
656+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
657+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
658+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
659+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
660+ bool enabled = false ;
661+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
662+ EXPECT_TRUE (enabled);
663+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
664+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
665+ EXPECT_TRUE (enabled);
666+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
667+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
668+ EXPECT_TRUE (enabled);
669+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
670+ enabled = true ;
671+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
672+ EXPECT_FALSE (enabled);
673+ }
674+
675+ TEST (
676+ TracingLayerState,
677+ GivenMultipleCallsTozelGetTracingLayerStateWhenTracingEnabledThenAllReturnTrue) {
678+
679+ uint32_t pCount = 0 ;
680+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
681+ desc.flags = UINT32_MAX;
682+ desc.pNext = nullptr ;
683+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
684+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
685+ bool enabled1 = false , enabled2 = false , enabled3 = false ;
686+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled1));
687+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled2));
688+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled3));
689+ EXPECT_TRUE (enabled1);
690+ EXPECT_TRUE (enabled2);
691+ EXPECT_TRUE (enabled3);
692+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
693+ }
694+
695+ TEST (
696+ TracingLayerState,
697+ GivenMultipleCallsTozelGetTracingLayerStateWhenTracingDisabledThenAllReturnFalse) {
698+
699+ uint32_t pCount = 0 ;
700+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
701+ desc.flags = UINT32_MAX;
702+ desc.pNext = nullptr ;
703+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
704+ bool enabled1 = true , enabled2 = true , enabled3 = true ;
705+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled1));
706+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled2));
707+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled3));
708+ EXPECT_FALSE (enabled1);
709+ EXPECT_FALSE (enabled2);
710+ EXPECT_FALSE (enabled3);
711+ }
712+
713+ TEST (
714+ TracingLayerState,
715+ GivenTracingLayerEnabledViaEnvironmentWhenCallingzelGetTracingLayerStateThenTrueIsReturned) {
716+
717+ uint32_t pCount = 0 ;
718+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
719+ desc.flags = UINT32_MAX;
720+ desc.pNext = nullptr ;
721+ putenv_safe ( const_cast <char *>( " ZE_ENABLE_TRACING_LAYER=1" ) );
722+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
723+ bool enabled = false ;
724+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
725+ EXPECT_TRUE (enabled);
726+ }
727+
728+ TEST (
729+ TracingLayerState,
730+ GivenTracingLayerEnabledViaEnvironmentWhenCallingzelEnableTracingLayerThenStateRemainsTrue) {
731+
732+ uint32_t pCount = 0 ;
733+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
734+ desc.flags = UINT32_MAX;
735+ desc.pNext = nullptr ;
736+ putenv_safe ( const_cast <char *>( " ZE_ENABLE_TRACING_LAYER=1" ) );
737+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
738+ bool enabled = false ;
739+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
740+ EXPECT_TRUE (enabled);
741+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
742+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
743+ EXPECT_TRUE (enabled);
744+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
745+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
746+ EXPECT_TRUE (enabled);
747+ }
748+
749+ TEST (
750+ TracingLayerState,
751+ GivenTracingLayerEnabledViaEnvironmentAndDynamicallyWhenDisablingDynamicTracingThenStateRemainsTrue) {
752+
753+ uint32_t pCount = 0 ;
754+ ze_init_driver_type_desc_t desc = {ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC};
755+ desc.flags = UINT32_MAX;
756+ desc.pNext = nullptr ;
757+ putenv_safe ( const_cast <char *>( " ZE_ENABLE_TRACING_LAYER=1" ) );
758+ EXPECT_EQ (ZE_RESULT_SUCCESS, zeInitDrivers (&pCount, nullptr , &desc));
759+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
760+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelEnableTracingLayer ());
761+ bool enabled = false ;
762+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
763+ EXPECT_TRUE (enabled);
764+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
765+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
766+ EXPECT_TRUE (enabled);
767+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelDisableTracingLayer ());
768+ EXPECT_EQ (ZE_RESULT_SUCCESS, zelGetTracingLayerState (&enabled));
769+ EXPECT_TRUE (enabled);
770+ }
771+
772+
773+
559774class CaptureOutput {
560775private:
561776 int original_fd;
0 commit comments