span = $tracerProvider->getTracer('test')->spanBuilder('my-local-root-span')->startSpan(); } public function test_active_root_span_is_local_root(): void { $scope = $this->span->activate(); try { $this->assertSame($this->span, LocalRootSpan::current()); } finally { $scope->detach(); } $this->assertSame(Span::getInvalid(), LocalRootSpan::current(), 'root span ended, a local root span does not exist'); } public function test_root_span_stored_in_context_is_local_root(): void { $root = Context::getRoot(); Context::storage()->attach($this->span->storeInContext($root)); $this->assertSame($this->span, LocalRootSpan::current()); $scope = Context::storage()->scope(); $this->assertNotNull($scope); $this->assertSame($this->span, Span::fromContext($scope->context())); $scope->detach(); $this->assertSame(Span::getInvalid(), LocalRootSpan::current(), 'root span ended, a local root span does not exist'); } }