| giolekva | 7be17df | 2020-03-21 13:57:02 +0400 | [diff] [blame] | 1 | package chunk |
| 2 | |
| giolekva | c5126d9 | 2020-03-21 16:39:56 +0400 | [diff] [blame] | 3 | import ( |
| 4 | "bytes" |
| 5 | "testing" |
| 6 | ) |
| giolekva | 7be17df | 2020-03-21 13:57:02 +0400 | [diff] [blame] | 7 | |
| 8 | func TestConcurrentReads(t *testing.T) { |
| giolekva | 1f6577a | 2020-03-25 12:53:06 +0400 | [diff] [blame] | 9 | c := InMemoryChunkFactory{}.New(4) |
| 10 | if _, err := c.WriterAt().WriteAt([]byte("abcd"), 0); err != nil { |
| giolekva | 7be17df | 2020-03-21 13:57:02 +0400 | [diff] [blame] | 11 | panic(err) |
| 12 | } |
| 13 | d1 := make([]byte, 2) |
| 14 | d2 := make([]byte, 3) |
| giolekva | 1f6577a | 2020-03-25 12:53:06 +0400 | [diff] [blame] | 15 | if _, err := c.ReaderAt().ReadAt(d1, 0); err != nil { |
| giolekva | 7be17df | 2020-03-21 13:57:02 +0400 | [diff] [blame] | 16 | t.Error(err) |
| 17 | } |
| 18 | if bytes.Compare(d1, []byte("ab")) != 0 { |
| 19 | t.Errorf("Expected: %s\nActual: %s", "ab", d1) |
| 20 | } |
| giolekva | 1f6577a | 2020-03-25 12:53:06 +0400 | [diff] [blame] | 21 | if _, err := c.ReaderAt().ReadAt(d2, 0); err != nil { |
| giolekva | 7be17df | 2020-03-21 13:57:02 +0400 | [diff] [blame] | 22 | t.Error(err) |
| 23 | } |
| 24 | if bytes.Compare(d2, []byte("abc")) != 0 { |
| 25 | t.Errorf("Expected: %s\nActual: %s", "abc", d2) |
| 26 | } |
| 27 | } |