/usr/share/gocode/src/github.com/peterh/liner/line_test.go is in golang-github-peterh-liner-dev 0.0~git20171122.3681c2a-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | package liner
import (
"bytes"
"fmt"
"strings"
"testing"
)
func TestAppend(t *testing.T) {
var s State
s.AppendHistory("foo")
s.AppendHistory("bar")
var out bytes.Buffer
num, err := s.WriteHistory(&out)
if err != nil {
t.Fatal("Unexpected error writing history", err)
}
if num != 2 {
t.Fatalf("Expected 2 history entries, got %d", num)
}
s.AppendHistory("baz")
num, err = s.WriteHistory(&out)
if err != nil {
t.Fatal("Unexpected error writing history", err)
}
if num != 3 {
t.Fatalf("Expected 3 history entries, got %d", num)
}
s.AppendHistory("baz")
num, err = s.WriteHistory(&out)
if err != nil {
t.Fatal("Unexpected error writing history", err)
}
if num != 3 {
t.Fatalf("Expected 3 history entries after duplicate append, got %d", num)
}
s.AppendHistory("baz")
}
func TestHistory(t *testing.T) {
input := `foo
bar
baz
quux
dingle`
var s State
num, err := s.ReadHistory(strings.NewReader(input))
if err != nil {
t.Fatal("Unexpected error reading history", err)
}
if num != 5 {
t.Fatal("Wrong number of history entries read")
}
var out bytes.Buffer
num, err = s.WriteHistory(&out)
if err != nil {
t.Fatal("Unexpected error writing history", err)
}
if num != 5 {
t.Fatal("Wrong number of history entries written")
}
if strings.TrimSpace(out.String()) != input {
t.Fatal("Round-trip failure")
}
// clear the history and re-write
s.ClearHistory()
num, err = s.WriteHistory(&out)
if err != nil {
t.Fatal("Unexpected error writing history", err)
}
if num != 0 {
t.Fatal("Wrong number of history entries written, expected none")
}
// Test reading with a trailing newline present
var s2 State
num, err = s2.ReadHistory(&out)
if err != nil {
t.Fatal("Unexpected error reading history the 2nd time", err)
}
if num != 5 {
t.Fatal("Wrong number of history entries read the 2nd time")
}
num, err = s.ReadHistory(strings.NewReader(input + "\n\xff"))
if err == nil {
t.Fatal("Unexpected success reading corrupted history", err)
}
if num != 5 {
t.Fatal("Wrong number of history entries read the 3rd time")
}
}
func TestColumns(t *testing.T) {
list := []string{"foo", "food", "This entry is quite a bit longer than the typical entry"}
output := []struct {
width, columns, rows, maxWidth int
}{
{80, 1, 3, len(list[2]) + 1},
{120, 2, 2, len(list[2]) + 1},
{800, 14, 1, 0},
{8, 1, 3, 7},
}
for i, o := range output {
col, row, max := calculateColumns(o.width, list)
if col != o.columns {
t.Fatalf("Wrong number of columns, %d != %d, in TestColumns %d\n", col, o.columns, i)
}
if row != o.rows {
t.Fatalf("Wrong number of rows, %d != %d, in TestColumns %d\n", row, o.rows, i)
}
if max != o.maxWidth {
t.Fatalf("Wrong column width, %d != %d, in TestColumns %d\n", max, o.maxWidth, i)
}
}
}
// This example demonstrates a way to retrieve the current
// history buffer without using a file.
func ExampleState_WriteHistory() {
var s State
s.AppendHistory("foo")
s.AppendHistory("bar")
buf := new(bytes.Buffer)
_, err := s.WriteHistory(buf)
if err == nil {
history := strings.Split(strings.TrimSpace(buf.String()), "\n")
for i, line := range history {
fmt.Println("History entry", i, ":", line)
}
}
// Output:
// History entry 0 : foo
// History entry 1 : bar
}
|