MCPcopy Create free account
hub / github.com/prometheus/pushgateway / TestSplitLabels

Function TestSplitLabels

handler/handler_test.go:783–866  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

781}
782
783func TestSplitLabels(t *testing.T) {
784 scenarios := map[string]struct {
785 input string
786 expectError bool
787 expectedOutput map[string]string
788 }{
789 "regular labels": {
790 input: "/label_name1/label_value1/label_name2/label_value2",
791 expectedOutput: map[string]string{
792 "label_name1": "label_value1",
793 "label_name2": "label_value2",
794 },
795 },
796 "invalid label name": {
797 input: "/label_name1/label_value1/a=b/label_value2",
798 expectError: true,
799 },
800 "reserved label name": {
801 input: "/label_name1/label_value1/__label_name2/label_value2",
802 expectError: true,
803 },
804 "unencoded slash in label value": {
805 input: "/label_name1/label_value1/label_name2/label/value2",
806 expectError: true,
807 },
808 "encoded slash in first label value ": {
809 input: "/label_name1@base64/bGFiZWwvdmFsdWUx/label_name2/label_value2",
810 expectedOutput: map[string]string{
811 "label_name1": "label/value1",
812 "label_name2": "label_value2",
813 },
814 },
815 "encoded slash in last label value": {
816 input: "/label_name1/label_value1/label_name2@base64/bGFiZWwvdmFsdWUy",
817 expectedOutput: map[string]string{
818 "label_name1": "label_value1",
819 "label_name2": "label/value2",
820 },
821 },
822 "encoded slash in last label value with padding": {
823 input: "/label_name1/label_value1/label_name2@base64/bGFiZWwvdmFsdWUy==",
824 expectedOutput: map[string]string{
825 "label_name1": "label_value1",
826 "label_name2": "label/value2",
827 },
828 },
829 "invalid base64 encoding": {
830 input: "/label_name1@base64/foo.bar/label_name2/label_value2",
831 expectError: true,
832 },
833 "regular label and UTF-8 escaped label name with legacy validation": {
834 input: "/label_name1/label_value1/U__label_2e_name2/label_value2",
835 expectedOutput: map[string]string{
836 "label_name1": "label_value1",
837 "U__label_2e_name2": "label_value2",
838 },
839 },
840 }

Callers

nothing calls this directly

Calls 1

splitLabelsFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…