MCPcopy
hub / github.com/buger/jsonparser / TestGetStringUnicodeEdgeCases

Function TestGetStringUnicodeEdgeCases

obligation_property_test.go:590–646  ·  view source on GitHub ↗

Verifies: SYS-REQ-093 MCDC SYS-REQ-093: getstring_input_has_unicode_edge_cases=T, getstring_handles_unicode_edges_safely=T => TRUE

(t *testing.T)

Source from the content-addressed store, hash-verified

588// Verifies: SYS-REQ-093
589// MCDC SYS-REQ-093: getstring_input_has_unicode_edge_cases=T, getstring_handles_unicode_edges_safely=T => TRUE
590func TestGetStringUnicodeEdgeCases(t *testing.T) {
591 cases := []struct {
592 name string
593 jsonData string
594 key string
595 wantErr bool
596 }{
597 {
598 name: "BOM character",
599 jsonData: `{"s":"\uFEFF"}`,
600 key: "s",
601 },
602 {
603 name: "zero-width joiner",
604 jsonData: `{"s":"\u200D"}`,
605 key: "s",
606 },
607 {
608 name: "replacement character",
609 jsonData: `{"s":"\uFFFD"}`,
610 key: "s",
611 },
612 {
613 name: "null character escape",
614 jsonData: `{"s":"\u0000"}`,
615 key: "s",
616 },
617 {
618 name: "max BMP codepoint",
619 jsonData: `{"s":"\uFFFF"}`,
620 key: "s",
621 },
622 {
623 name: "multi-byte UTF-8 literal in value",
624 jsonData: "{\"s\":\"\xe2\x80\x8b\"}", // zero-width space (U+200B) as raw UTF-8
625 key: "s",
626 },
627 }
628 for _, tc := range cases {
629 t.Run(tc.name, func(t *testing.T) {
630 defer func() {
631 if r := recover(); r != nil {
632 t.Fatalf("GetString panicked on %s: %v", tc.name, r)
633 }
634 }()
635
636 val, err := GetString([]byte(tc.jsonData), tc.key)
637 if tc.wantErr && err == nil {
638 t.Fatalf("Expected error for %s", tc.name)
639 }
640 if !tc.wantErr && err != nil {
641 t.Fatalf("GetString(%s) returned error: %v", tc.name, err)
642 }
643 _ = val
644 })
645 }
646}
647

Callers

nothing calls this directly

Calls 1

GetStringFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…