MCPcopy Create free account
hub / github.com/cockroachdb/redact / Example_mixed_writes

Function Example_mixed_writes

internal/buffer/buffer_test.go:500–1159  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

498}
499
500func Example_mixed_writes() {
501 testCases := []struct {
502 startMode, endMode OutputMode
503 }{
504 {UnsafeEscaped, SafeEscaped},
505 {SafeEscaped, UnsafeEscaped},
506 {UnsafeEscaped, SafeRaw},
507 {SafeRaw, UnsafeEscaped},
508 {SafeEscaped, SafeRaw},
509 {SafeRaw, SafeEscaped},
510 }
511
512 doWritesFn := []func(*Buffer){
513 // Noop
514 func(b *Buffer) {},
515 func(b *Buffer) { b.WriteByte('a') },
516 func(b *Buffer) { b.WriteRune('a') },
517 func(b *Buffer) { b.WriteString("bc") },
518 func(b *Buffer) { b.Write([]byte("bc")) },
519 func(b *Buffer) { b.WriteString("safe‹unsafe›") },
520 func(b *Buffer) { b.WriteByte('\n') },
521 func(b *Buffer) { b.WriteRune('\n') },
522 func(b *Buffer) { b.WriteString("\nx\ny\n") },
523 func(b *Buffer) { b.Write([]byte("\nx\ny\n")) },
524 }
525
526 for i, tc := range testCases {
527 if i > 0 {
528 fmt.Println()
529 }
530 fmt.Println(tc.startMode, " -> ", tc.endMode)
531 for j, doWrites := range doWritesFn {
532 var b Buffer
533 b.SetMode(tc.startMode)
534 doWrites(&b)
535 for k, doWrites2 := range doWritesFn {
536 copy := b.clone()
537 copy.SetMode(tc.endMode)
538 doWrites2(copy)
539 var b2 Buffer
540 b2.SetMode(tc.endMode)
541 doWrites2(&b2)
542 fmt.Printf("fn%d+fn%d: %q (%q + %q)\n", j, k, copy.RedactableString(), b.RedactableString(), b2.RedactableString())
543 }
544 }
545 }
546
547 // Output:
548 // 0 -> 1
549 // fn0+fn0: "" ("" + "")
550 // fn0+fn1: "a" ("" + "a")
551 // fn0+fn2: "a" ("" + "a")
552 // fn0+fn3: "bc" ("" + "bc")
553 // fn0+fn4: "bc" ("" + "bc")
554 // fn0+fn5: "safe?unsafe?" ("" + "safe?unsafe?")
555 // fn0+fn6: "\n" ("" + "\n")
556 // fn0+fn7: "\n" ("" + "\n")
557 // fn0+fn8: "\nx\ny\n" ("" + "\nx\ny\n")

Callers

nothing calls this directly

Calls 8

WriteByteMethod · 0.95
WriteRuneMethod · 0.95
WriteStringMethod · 0.95
WriteMethod · 0.95
SetModeMethod · 0.95
cloneMethod · 0.95
RedactableStringMethod · 0.95
PrintfMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…