TestGetSpinner
Vladimir Bauer
9 years ago
| 128 | 128 | } |
| 129 | 129 | } |
| 130 | 130 | |
| 131 | func TestGetSpinner(t *testing.T) { | |
| 132 | var buf bytes.Buffer | |
| 133 | p := mpb.New().SetOut(&buf) | |
| 134 | bar := p.AddBar(0).TrimLeftSpace().TrimRightSpace() | |
| 135 | ||
| 136 | for i := 0; i < 100; i++ { | |
| 137 | time.Sleep(10 * time.Millisecond) | |
| 138 | bar.Incr(1) | |
| 139 | } | |
| 140 | ||
| 141 | p.Stop() | |
| 142 | ||
| 143 | spinnerChars := []byte(`-\|/`) | |
| 144 | seen := make(map[byte]bool) | |
| 145 | for _, b := range buf.Bytes() { | |
| 146 | if !seen[b] { | |
| 147 | seen[b] = true | |
| 148 | } | |
| 149 | } | |
| 150 | for _, b := range spinnerChars { | |
| 151 | if !seen[b] { | |
| 152 | t.Errorf("Char %#U not found in bar's output\n", b) | |
| 153 | } | |
| 154 | } | |
| 155 | } | |
| 156 | ||
| 131 | 157 | func removeLastRune(bytes []byte) []byte { |
| 132 | 158 | _, size := utf8.DecodeLastRune(bytes) |
| 133 | 159 | return bytes[:len(bytes)-size] |