{-# LANGUAGE OverloadedStrings #-}
module TestCommon where
import Data.Word
import OpenTelemetry.Common
import OpenTelemetry.SpanContext
import OpenTelemetry.Tracer
mkTestSpan :: Word64 -> Word64 -> Span
mkTestSpan sid tid =
Span
{ spanContext = SpanContext (SId sid) (TId tid),
spanStartedAt = 0,
spanFinishedAt = 10,
spanTags = mempty,
spanEvents = mempty,
spanStatus = OK,
spanOperation = "foo",
spanParentId = Nothing
}
prop_tracer_push_does_something :: Word64 -> Word64 -> Int -> Bool
prop_tracer_push_does_something sid tid threadid =
let tracer0 = Tracer mempty
sp0 = mkTestSpan sid tid
tracer1 = tracerPushSpan tracer0 threadid sp0
in tracer0 /= tracer1
prop_tracer_push_pop :: Word64 -> Word64 -> Int -> Bool
prop_tracer_push_pop sid tid threadid =
let tracer0 = Tracer mempty
sp0 = mkTestSpan sid tid
tracer1 = tracerPushSpan tracer0 threadid sp0
(Just sp1, tracer2) = tracerPopSpan tracer1 threadid
in tracer0 == tracer2 && sp0 == sp1