[Libguestfs] [PATCH] golang: make API idiomatic so that functions return (<val>, error)

Richard W.M. Jones rjones at redhat.com
Wed Feb 19 18:26:09 UTC 2020


On Wed, Feb 19, 2020 at 02:30:45PM +0100, Csaba Henk wrote:
> Go API functions returned (<val>, *GuestfsError) that made
> code like this fail to build:
> 
>     n, err := os.Stdin.Read(buf)
>     if err != nil {
>         log.Fatal(err)
>     }
>     n, err = g.Pwrite_device(dev, buf[:n], off)
>     ...
> 
> As err should be of error (interface) type as of the stdlib call,
> and should be of *GuestfsError type as of the libguestfs call.
> 
> The concrete error value that libguestfs functions return can be
> a *GuestfsError, but the function signature should have (<val>, error)
> as return value.

Thanks - pushed.

The bindtests fail with a rather obscure error.  I don't know what it
means or if it's related to this patch.

==============================================
   libguestfs 1.41.8: golang/test-suite.log
==============================================

# TOTAL: 2
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: run-bindtests
===================

panic: runtime error: cgo argument has Go pointer to Go pointer

goroutine 1 [running]:
libguestfs.org/guestfs.(*Guestfs).Internal_test.func7(0xc000010028, 0x107a430, 0x1078a20, 0xc000010050, 0xc000000000, 0x0, 0x0, 0x1079ec0, 0x1075190, 0x10751b0, ...)
	/home/rjones/d/libguestfs/golang/src/libguestfs.org/guestfs/guestfs.go:6667 +0xf7
libguestfs.org/guestfs.(*Guestfs).Internal_test(0xc000010028, 0x4f3f43, 0x3, 0xc000063b90, 0xc000063aa0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/home/rjones/d/libguestfs/golang/src/libguestfs.org/guestfs/guestfs.go:6667 +0x3cc
main.main()
	/home/rjones/d/libguestfs/golang/bindtests.go:77 +0x127d
exit status 2
FAIL run-bindtests (exit status: 1)


Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html




More information about the Libguestfs mailing list