Revert "ci: skip "lib/test-fork-safe-execvpe.sh" on Alpine Linux"
[libnbd.git] / golang / libnbd_410_pwrite_test.go
blobf2063b80982f2128c7c6d5be1a6a57ace1692e21
1 /* libnbd golang tests
2 * Copyright Red Hat
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 package libnbd
21 import "bytes"
22 import "testing"
24 func Test410PWrite(t *testing.T) {
25 h, err := Create()
26 if err != nil {
27 t.Fatalf("could not create handle: %s", err)
29 defer h.Close()
31 err = h.ConnectCommand([]string{
32 "nbdkit", "-s", "--exit-with-parent", "-v",
33 "memory", "size=512",
35 if err != nil {
36 t.Fatalf("could not connect: %s", err)
39 /* Write a pattern and read it back. */
40 buf := make([]byte, 512)
41 for i := 0; i < 512; i += 2 {
42 buf[i] = 0x55
43 buf[i+1] = 0xAA
45 err = h.Pwrite(buf, 0, nil)
46 if err != nil {
47 t.Fatalf("%s", err)
49 buf2 := make([]byte, 512)
50 err = h.Pread(buf2, 0, nil)
51 if err != nil {
52 t.Fatalf("%s", err)
55 if !bytes.Equal(buf, buf2) {
56 t.Fatalf("did not read back same data as written")