gnmic testbed — parity

Generated 2026-08-22 07:13 UTC. History lives on the results branch.

Latest run

nightly run 32557121520 2026-08-22T07:13:06Z

go: openconfig/gnmic@main
rust: gnmic/gnmic.rs@main

both pass 196 both fail 0 diverge 28 other 15 total 239

Suites

suitetestsboth passboth faildivergego failrust failskip
001-targets1900191900
002-subscriptions313100000
003-outputs343400000
004-processors282602002
005-cluster11000001
006-tunnel-targets222200000
007-inputs212001100
008-apply181800000
009-validation494504004
010-profiling4000004
011-gnmi-server2002002

001-targets

tests 19 both pass 0 go fail 19 rust fail 0 skip 0

testgorustnote
TestAddExplicitOutputgo: Failed
TestAddExplicitSubscriptiongo: Failed
TestAddImplicitOutputgo: Failed
TestChangeSubscriptionAddPathgo: Failed
TestExplicitListIgnoresImplicitgo: Failed
TestRemoveExplicitOutputgo: Failed
TestRemoveExplicitSubscriptiongo: Failed
TestRuntimeAPIAndMetricsSmokego: Failed
TestRuntimeStateRouteParitygo: Failed
TestTargetAdminStatego: Failed
TestTargetDeletionTearsDowngo: Failed
TestTargetEventTagsgo: Failed
TestTargetRestartedgo: Failed
TestTargetSubscriptionListChangego: Failed
TestTargetTLSChangego: Failed
TestUnreachableTargetErrorStatego: Failed
TestUnreachableTargetRecoversgo: Failed
TestUpdateTargetAddressgo: Failed
TestUpdateTargetCredentialsgo: Failed

002-subscriptions

tests 31 both pass 31 go fail 0 rust fail 0 skip 0

testgorustnote
TestAddOnChangeToStream
TestAddPathDifferentInterval
TestAddPathToStream
TestAddPrefixAndPath
TestAddRemoveSubscriptions
TestChangeEncoding
TestChangeSampleInterval
TestChangeStreamMode
TestChangeSubscriptionPath
TestDeleteReferencedSubscription
TestHeartbeatInterval
TestInvalidSubscriptionRejected
TestInvalidSubscriptionRejected/bad-sample-interval
TestInvalidSubscriptionRejected/empty-paths
TestInvalidSubscriptionRejected/missing-name
TestInvalidSubscriptionRejected/unknown-encoding
TestInvalidSubscriptionRejected/unknown-mode
TestInvalidSubscriptionRejected/unknown-stream-mode
TestOnceMode
TestPollMode
TestRemovePathFromStream
TestRuntimeSubscriptionMembership
TestStreamSubscriptionValidation
TestStreamSubscriptionValidation/child-invalid-stream-mode
TestStreamSubscriptionValidation/child-missing-path
TestStreamSubscriptionValidation/paths-and-stream-subscriptions
TestStreamSubscriptionValidation/stream-children-under-once
TestSubscriptionScopedOutputRouting
TestSuppressRedundant
TestTargetDefinedStreamMode
TestUpdatesOnly

003-outputs

tests 34 both pass 34 go fail 0 rust fail 0 skip 0

testgorustnote
TestClickHouseOutput
TestCollectorRestartResumesOutput
TestFileOutputAddTargetTemplate
TestFileOutputCreateDelete
TestFileOutputFilenameChange
TestFileOutputFormatChange
TestFileOutputInvalidReplacementPreservesOld
TestFileOutputMissingDirRecovers
TestFileOutputProcessorInPlace
TestFileOutputProcessorsAddRemove
TestInfluxDBOutput
TestInfluxDBOutputChangeBucket
TestJetstreamOutput
TestJetstreamOutputChangeStream
TestKafkaOutput
TestKafkaOutputChangeTopic
TestNatsOutput
TestNatsOutputChangeSubject
TestOTLPOutput
TestPrometheusChangeAddress
TestPrometheusChangeExpiration
TestPrometheusChangeMetricPrefix
TestPrometheusChangePath
TestPrometheusOutputCreateDelete
TestPrometheusProcessorsAddRemove
TestPrometheusProcessorsModify
TestPrometheusRemoteWrite
TestPrometheusRemoteWriteChangePrefix
TestPrometheusRemoteWriteProcessors
TestShutdownGateDeleteUnderLoad
TestShutdownGateDeleteUnderLoad/file
TestShutdownGateDeleteUnderLoad/kafka
TestShutdownGateDeleteUnderLoad/prometheus
TestShutdownGateDeleteUnderLoad/remote-write

004-processors

tests 28 both pass 26 go fail 0 rust fail 0 skip 2

testgorustnote
TestProcessorCombineCycleRejectedgo: === RUN TestProcessorCombineCycleRejected processors_test.go:672: combine cycle accepted (200); cycle rejection is not enforced at POST: --- SKIP: TestProcessorCombineCycleRejected (0.00s)
TestProcessorCombineNestedUpdatego: === RUN TestProcessorCombineNestedUpdate processors_test.go:615: event-combine kept the old nested processor after an in-place update; see suite/BUGS.md --- SKIP: TestProcessorCombineNestedUpdat
TestProcessorAddTagDataPath
TestProcessorAllowDataPath
TestProcessorChainOrdering
TestProcessorCombineConditional
TestProcessorConvertDataPath
TestProcessorCreateUpdateDelete
TestProcessorDataConvertDataPath
TestProcessorDateStringDataPath
TestProcessorDeleteDataPath
TestProcessorDropDataPath
TestProcessorDurationConvertDataPath
TestProcessorExtractTagsDataPath
TestProcessorGroupByDataPath
TestProcessorIeeeFloat32DataPath
TestProcessorInvalidUpdateNonDestructive
TestProcessorJQDataPath
TestProcessorMergeDataPath
TestProcessorOverrideTsDataPath
TestProcessorRateLimitDataPath
TestProcessorSharedFanoutUpdate
TestProcessorStringsDataPath
TestProcessorTimeEpochDataPath
TestProcessorToTagDataPath
TestProcessorValueTagDataPath
TestProcessorValueTagV2DataPath
TestProcessorWriteDataPath

005-cluster

tests 11 both pass 0 go fail 0 rust fail 0 skip 1

testgorustnote
TestManualAssignmentOverridesPlacementgo: === RUN TestManualAssignmentOverridesPlacement cluster_test.go:713: manual assignment did not move lock from gnmic3 to gnmic1; see suite/BUGS.md --- SKIP: TestManualAssignmentOverridesPlacement
TestAddRemoveMembers
TestAddTargetToRunningCluster
TestClusterFormation
TestDrainMember
TestFailoverWithTargets
TestLeaderSwitchover
TestLeaderTakeover
TestRebalanceSkewedAssignments
TestRemoveAssignedTarget
TestTargetAssignment

006-tunnel-targets

tests 22 both pass 22 go fail 0 rust fail 0 skip 0

testgorustnote
TestAddExplicitOutput
TestAddExplicitSubscription
TestAddImplicitOutput
TestChangeSubscriptionAddPath
TestExplicitListIgnoresImplicit
TestRuntimeStateRouteParity
TestTargetDeletionTearsDown
TestTargetEventTags
TestTargetRestarted
TestTargetSubscriptionListChange
TestTargetTLSChange
TestTunnelTargetDeregisterOnDrop
TestTunnelTargetMatchCRUD
TestTunnelTargetMatchDeleteRemovesConfig
TestTunnelTargetMatchReeval
TestTunnelTargetNoMgmtLeak
TestTunnelTargetRegisters
TestTunnelTargetStreamsTelemetry
TestUnreachableTargetErrorState
TestUnreachableTargetRecovers
TestUpdateTargetAddress
TestUpdateTargetCredentials

007-inputs

tests 21 both pass 20 go fail 1 rust fail 0 skip 0

testgorustnote
TestNatsInputMalformedIsolationgo: Failed
TestJetstreamInputAddressChange
TestJetstreamInputCreateDelete
TestJetstreamInputFormatChange
TestJetstreamInputProcessorModify
TestJetstreamInputProcessorsAddRemove
TestJetstreamInputSubjectChange
TestKafkaInputAddressChange
TestKafkaInputCreateDelete
TestKafkaInputFormatChange
TestKafkaInputProcessorModify
TestKafkaInputProcessorsAddRemove
TestKafkaInputTopicChange
TestNatsInputAddressChange
TestNatsInputCreateDelete
TestNatsInputFanoutTwoOutputs
TestNatsInputFormatChange
TestNatsInputOutputListChange
TestNatsInputProcessorModify
TestNatsInputProcessorsAddRemove
TestNatsInputSubjectChange

008-apply

tests 18 both pass 18 go fail 0 rust fail 0 skip 0

testgorustnote
TestAddRemoveOutputs
TestAddRemoveSubscriptions
TestAddRemoveTargets
TestApplyDependentSectionsTogether
TestApplyInputs
TestApplyProcessors
TestApplyReset
TestApplyResetDrainsRuntime
TestApplyTunnelTargetMatches
TestGzipApply
TestNoopApplyPreservesSessions
TestSwitchOutputs
TestSwitchSubAndOutput
TestSwitchSubscriptions
TestSwitchTargetAndOutput
TestSwitchTargetAndSub
TestSwitchTargetSubAndOutput
TestSwitchTargets

009-validation

tests 49 both pass 45 go fail 0 rust fail 0 skip 4

testgorustnote
TestProcessorDeleteInUseByInputgo: === RUN TestProcessorDeleteInUseByInput validation_test.go:479: processor still in use after input update (last 400 {"errors":["processor is in use by inputs"]}); input manager may not untrack (
TestSecretsRedactedgo: === RUN TestSecretsRedacted validation_test.go:564: GET /config leaks target secrets on Go; see suite/BUGS.md --- SKIP: TestSecretsRedacted (0.00s)
TestTunnelMatchInvalidExpression/bad-id-regexgo: === RUN TestTunnelMatchInvalidExpression/bad-id-regex validation_test.go:661: bad-id-regex accepted (200); regex validation is not enforced at POST: --- SKIP: TestTunnelMatchInvalidExpressi
TestTunnelMatchInvalidExpression/missing-idgo: === RUN TestTunnelMatchInvalidExpression/missing-id validation_test.go:661: missing-id accepted (200); regex validation is not enforced at POST: --- SKIP: TestTunnelMatchInvalidExpression/m
TestApplyInputsWithoutOutputs
TestApplyInvalidJSON
TestApplyTargetsWithoutSubscriptions
TestApplyTunnelMatchesWithoutSubscriptions
TestApplyValidationPreservesState
TestClusterRoutesWithoutClustering
TestConfigSnapshotConsistency
TestDeleteReferencedOutputOrSubscription
TestFailedOutputReplacementPreservesConfig
TestHealthz
TestInputDeleteUnknown
TestInputGetUnknown
TestInputOutputsPatchNotImplemented
TestInputPostInvalidJSON
TestInputPostMissingName
TestInputPostMissingType
TestInputPostUnknownType
TestInputProcessorsPatchNotImplemented
TestMethodAndMediaType
TestOutputGetUnknown
TestOutputPostInvalidJSON
TestOutputPostMissingName
TestOutputPostUnknownType
TestOutputProcessorsPatchNotImplemented
TestProcessorDeleteInUse
TestProcessorGetUnknown
TestProcessorPostInvalidJSON
TestProcessorPostMissingName
TestProcessorPostMissingType
TestSSEInvalidQuery
TestSubscriptionDeleteUnknown
TestSubscriptionGetUnknown
TestSubscriptionPostInvalidJSON
TestTargetGetUnknown
TestTargetPatchOutputsUnknownTarget
TestTargetPatchSubscriptionsUnknownSub
TestTargetPatchSubscriptionsUnknownTarget
TestTargetPostInvalidJSON
TestTargetPostMissingAddress
TestTargetPostMissingName
TestTargetPostUnknownOutput
TestTargetPostUnknownSubscription
TestTargetStateMissingState
TestTargetStateUnknownTarget
TestTunnelMatchInvalidExpression

010-profiling

tests 4 both pass 0 go fail 0 rust fail 0 skip 4

testgorustnote
TestCRUDOutputsgo: === RUN TestCRUDOutputs profiling_test.go:150: profiling/soak suite; set RUN_PROFILING=1 to run --- SKIP: TestCRUDOutputs (0.00s)
TestCRUDProcessorsgo: === RUN TestCRUDProcessors profiling_test.go:170: profiling/soak suite; set RUN_PROFILING=1 to run --- SKIP: TestCRUDProcessors (0.00s)
TestCRUDSubscriptionsgo: === RUN TestCRUDSubscriptions profiling_test.go:136: profiling/soak suite; set RUN_PROFILING=1 to run --- SKIP: TestCRUDSubscriptions (0.00s)
TestCRUDTargetsgo: === RUN TestCRUDTargets profiling_test.go:186: profiling/soak suite; set RUN_PROFILING=1 to run --- SKIP: TestCRUDTargets (0.00s)

011-gnmi-server

tests 2 both pass 0 go fail 0 rust fail 0 skip 2

testgorustnote
TestGNMIServerCapabilitiesgo: === RUN TestGNMIServerCapabilities gnmi_server_test.go:157: gnmi-server did not listen on clab-gnmi-server-011-gnmic:57400; Go collector does not start the listener (see suite/BUGS.md): tcp clab
TestGNMIServerStreamCachego: === RUN TestGNMIServerStreamCache gnmi_server_test.go:171: gnmi-server did not listen on clab-gnmi-server-011-gnmic:57400; Go collector does not start the listener (see suite/BUGS.md): tcp clab-

History

whenworkflowrunboth passdivergetotalgorust
2026-08-22T07:13:06Znightly3255712152019628239openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-22T00:06:56Znightly3253713057118912217openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-21T08:23:16Ztunnel-nightly3246148124021122openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-21T07:12:48Znightly3245508050918912217openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-20T08:24:46Ztunnel-nightly3234699243621122openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-20T07:13:01Znightly3234026257518912217openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-19T08:22:15Ztunnel-nightly3223061658421122openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-19T07:10:36Znightly3222393955718813217openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-18T08:22:44Ztunnel-nightly3211431360121122openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-18T07:11:29Znightly3210738721019011217openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-17T08:24:00Ztunnel-nightly3200877089318018openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-17T07:11:02Znightly320026844101610171openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-16T09:59:49Zsrl-weekly31936910602680171openconfig/gnmic@main (TARGET_BACKEND=srl)gnmic/gnmic.rs@main (TARGET_BACKEND=srl)
2026-08-16T08:11:10Ztunnel-nightly3193503790118018openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-16T06:58:29Znightly319315679501081173openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-15T08:09:18Ztunnel-nightly3187302280418018openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-15T06:57:07Znightly318694955611610171openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-14T09:00:42Ztunnel-nightly3178504190918018openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-14T07:44:44Znightly317792557231610171openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-13T09:07:12Ztunnel-nightly3168380885416218openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-13T07:46:51Znightly316771910141610171openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-12T09:03:05Ztunnel-nightly3157984516217118openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-12T07:43:53Znightly3157327158513521171openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-12T06:44:09Zon-demand315690703041731189openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-12T01:55:19Zon-demand315534000371510189openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-11T07:17:36Znightly3146699487510213147openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-11T01:17:40Zon-demand314476102081141147openconfig/gnmic@maingnmic/gnmic.rs@main
2026-08-10T17:29:59Zon-demand3141346592638038openconfig/gnmic@maingnmic/gnmic.rs@main