mirror of
https://github.com/lxc/incus
synced 2026-08-02 05:26:46 +00:00
shared: Checks or explicitly ignores errors.
Signed-off-by: Mark Laing <mark.laing@canonical.com>
This commit is contained in:
parent
ca0da3f6ea
commit
7524bb279d
@ -13,7 +13,7 @@ func DetectCompression(fname string) ([]string, string, []string, error) {
|
||||
if err != nil {
|
||||
return nil, "", nil, err
|
||||
}
|
||||
defer f.Close()
|
||||
defer func() { _ = f.Close() }()
|
||||
|
||||
return DetectCompressionFile(f)
|
||||
}
|
||||
|
||||
@ -259,15 +259,32 @@ func GenCert(certf string, keyf string, certtype bool, addHosts bool) error {
|
||||
if err != nil {
|
||||
return fmt.Errorf("Failed to open %s for writing: %w", certf, err)
|
||||
}
|
||||
certOut.Write(certBytes)
|
||||
certOut.Close()
|
||||
|
||||
_, err = certOut.Write(certBytes)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Failed to write cert file: %w", err)
|
||||
}
|
||||
|
||||
err = certOut.Close()
|
||||
if err != nil {
|
||||
return fmt.Errorf("Failed to close cert file: %w", err)
|
||||
}
|
||||
|
||||
keyOut, err := os.OpenFile(keyf, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Failed to open %s for writing: %w", keyf, err)
|
||||
}
|
||||
keyOut.Write(keyBytes)
|
||||
keyOut.Close()
|
||||
|
||||
_, err = keyOut.Write(keyBytes)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Failed to write key file: %w", err)
|
||||
}
|
||||
|
||||
err = keyOut.Close()
|
||||
if err != nil {
|
||||
return fmt.Errorf("Failed to close key file: %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ func TestKeyPairAndCA(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Errorf("failed to create temporary dir: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(dir)
|
||||
defer func() { _ = os.RemoveAll(dir) }()
|
||||
|
||||
info, err := shared.KeyPairAndCA(dir, "test", shared.CertServer, true)
|
||||
if err != nil {
|
||||
|
||||
@ -706,7 +706,7 @@ func getFromShadow(fname string, username string) ([][]int64, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer f.Close()
|
||||
defer func() { _ = f.Close() }()
|
||||
|
||||
scanner := bufio.NewScanner(f)
|
||||
for scanner.Scan() {
|
||||
@ -756,7 +756,7 @@ func getFromProc(fname string) ([][]int64, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer f.Close()
|
||||
defer func() { _ = f.Close() }()
|
||||
|
||||
scanner := bufio.NewScanner(f)
|
||||
for scanner.Scan() {
|
||||
|
||||
@ -477,8 +477,8 @@ func SupportsVFS3Fscaps(prefix string) bool {
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
tmpfile.Close()
|
||||
defer os.Remove(tmpfile.Name())
|
||||
defer func() { _ = tmpfile.Close() }()
|
||||
defer func() { _ = os.Remove(tmpfile.Name()) }()
|
||||
|
||||
err = os.Chmod(tmpfile.Name(), 0001)
|
||||
if err != nil {
|
||||
|
||||
@ -146,7 +146,7 @@ func (ctw *InstanceTarWriter) WriteFile(name string, srcPath string, fi os.FileI
|
||||
if err != nil {
|
||||
return fmt.Errorf("Failed to open file %q: %w", srcPath, err)
|
||||
}
|
||||
defer f.Close()
|
||||
defer func() { _ = f.Close() }()
|
||||
|
||||
r := io.Reader(f)
|
||||
if ignoreGrowth {
|
||||
|
||||
@ -23,7 +23,7 @@ func WebsocketExecMirror(conn *websocket.Conn, w io.WriteCloser, r io.ReadCloser
|
||||
for {
|
||||
buf, ok := <-in
|
||||
if !ok {
|
||||
r.Close()
|
||||
_ = r.Close()
|
||||
logger.Debugf("Sending write barrier")
|
||||
err := conn.WriteMessage(websocket.TextMessage, []byte{})
|
||||
if err != nil {
|
||||
@ -41,9 +41,9 @@ func WebsocketExecMirror(conn *websocket.Conn, w io.WriteCloser, r io.ReadCloser
|
||||
}
|
||||
|
||||
closeMsg := websocket.FormatCloseMessage(websocket.CloseNormalClosure, "")
|
||||
conn.WriteMessage(websocket.CloseMessage, closeMsg)
|
||||
_ = conn.WriteMessage(websocket.CloseMessage, closeMsg)
|
||||
readDone <- true
|
||||
r.Close()
|
||||
_ = r.Close()
|
||||
}(conn, r)
|
||||
|
||||
return readDone, writeDone
|
||||
|
||||
@ -72,7 +72,7 @@ func NetnsGetifaddrs(initPID int32) (map[string]api.InstanceStateNetwork, error)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer f.Close()
|
||||
defer func() { _ = f.Close() }()
|
||||
|
||||
netnsID = C.netns_get_nsid(C.__s32(f.Fd()))
|
||||
if netnsID < 0 {
|
||||
|
||||
@ -44,8 +44,8 @@ func RFC3493Dialer(network string, address string) (net.Conn, error) {
|
||||
}
|
||||
|
||||
if tc, ok := c.(*net.TCPConn); ok {
|
||||
tc.SetKeepAlive(true)
|
||||
tc.SetKeepAlivePeriod(3 * time.Second)
|
||||
_ = tc.SetKeepAlive(true)
|
||||
_ = tc.SetKeepAlivePeriod(3 * time.Second)
|
||||
}
|
||||
|
||||
return c, nil
|
||||
@ -200,7 +200,7 @@ func WebsocketSendStream(conn *websocket.Conn, r io.Reader, bufferSize int) chan
|
||||
break
|
||||
}
|
||||
}
|
||||
conn.WriteMessage(websocket.TextMessage, []byte{})
|
||||
_ = conn.WriteMessage(websocket.TextMessage, []byte{})
|
||||
ch <- true
|
||||
}(conn, r)
|
||||
|
||||
@ -269,7 +269,7 @@ func WebsocketProxy(source *websocket.Conn, target *websocket.Conn) chan struct{
|
||||
}
|
||||
|
||||
_, err = io.Copy(w, r)
|
||||
w.Close()
|
||||
_ = w.Close()
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
@ -293,8 +293,8 @@ func WebsocketProxy(source *websocket.Conn, target *websocket.Conn) chan struct{
|
||||
case <-chRecv:
|
||||
}
|
||||
|
||||
source.Close()
|
||||
target.Close()
|
||||
_ = source.Close()
|
||||
_ = target.Close()
|
||||
|
||||
close(ch)
|
||||
}()
|
||||
@ -311,9 +311,9 @@ func defaultReader(conn *websocket.Conn, r io.ReadCloser, readDone chan<- bool)
|
||||
for {
|
||||
buf, ok := <-in
|
||||
if !ok {
|
||||
r.Close()
|
||||
_ = r.Close()
|
||||
logger.Debug("Sending write barrier")
|
||||
conn.WriteMessage(websocket.TextMessage, []byte{})
|
||||
_ = conn.WriteMessage(websocket.TextMessage, []byte{})
|
||||
readDone <- true
|
||||
return
|
||||
}
|
||||
@ -325,9 +325,9 @@ func defaultReader(conn *websocket.Conn, r io.ReadCloser, readDone chan<- bool)
|
||||
}
|
||||
}
|
||||
closeMsg := websocket.FormatCloseMessage(websocket.CloseNormalClosure, "")
|
||||
conn.WriteMessage(websocket.CloseMessage, closeMsg)
|
||||
_ = conn.WriteMessage(websocket.CloseMessage, closeMsg)
|
||||
readDone <- true
|
||||
r.Close()
|
||||
_ = r.Close()
|
||||
}
|
||||
|
||||
func DefaultWriter(conn *websocket.Conn, w io.WriteCloser, writeDone chan<- bool) {
|
||||
@ -364,7 +364,7 @@ func DefaultWriter(conn *websocket.Conn, w io.WriteCloser, writeDone chan<- bool
|
||||
}
|
||||
}
|
||||
writeDone <- true
|
||||
w.Close()
|
||||
_ = w.Close()
|
||||
}
|
||||
|
||||
// WebsocketIO is a wrapper implementing ReadWriteCloser on top of websocket
|
||||
@ -417,14 +417,13 @@ func (w *WebsocketIO) Write(p []byte) (n int, err error) {
|
||||
if err != nil {
|
||||
return -1, err
|
||||
}
|
||||
defer wr.Close()
|
||||
|
||||
n, err = wr.Write(p)
|
||||
if err != nil {
|
||||
return -1, err
|
||||
}
|
||||
|
||||
return n, nil
|
||||
return n, wr.Close()
|
||||
}
|
||||
|
||||
// Close sends a control message indicating the stream is finished, but it does not actually close
|
||||
@ -475,10 +474,10 @@ func WebsocketConsoleMirror(conn *websocket.Conn, w io.WriteCloser, r io.ReadClo
|
||||
for {
|
||||
buf, ok := <-in
|
||||
if !ok {
|
||||
r.Close()
|
||||
_ = r.Close()
|
||||
logger.Debugf("Sending write barrier")
|
||||
conn.WriteMessage(websocket.BinaryMessage, []byte("\r"))
|
||||
conn.WriteMessage(websocket.TextMessage, []byte{})
|
||||
_ = conn.WriteMessage(websocket.BinaryMessage, []byte("\r"))
|
||||
_ = conn.WriteMessage(websocket.TextMessage, []byte{})
|
||||
readDone <- true
|
||||
return
|
||||
}
|
||||
@ -491,9 +490,9 @@ func WebsocketConsoleMirror(conn *websocket.Conn, w io.WriteCloser, r io.ReadClo
|
||||
}
|
||||
|
||||
closeMsg := websocket.FormatCloseMessage(websocket.CloseNormalClosure, "")
|
||||
conn.WriteMessage(websocket.CloseMessage, closeMsg)
|
||||
_ = conn.WriteMessage(websocket.CloseMessage, closeMsg)
|
||||
readDone <- true
|
||||
r.Close()
|
||||
_ = r.Close()
|
||||
}(conn, r)
|
||||
|
||||
return readDone, writeDone
|
||||
@ -514,6 +513,6 @@ func AllocatePort() (int, error) {
|
||||
if err != nil {
|
||||
return -1, err
|
||||
}
|
||||
defer l.Close()
|
||||
return l.Addr().(*net.TCPAddr).Port, nil
|
||||
|
||||
return l.Addr().(*net.TCPAddr).Port, l.Close()
|
||||
}
|
||||
|
||||
@ -13,11 +13,11 @@ func WriteTempFile(s suite.Suite, dir string, prefix string, content string) (st
|
||||
if err != nil {
|
||||
s.T().Errorf("Failed to create temporary file: %v", err)
|
||||
}
|
||||
defer f.Close()
|
||||
defer func() { _ = f.Close() }()
|
||||
|
||||
_, err = f.WriteString(content)
|
||||
if err != nil {
|
||||
s.T().Errorf("Failed to write string to temp file: %v", err)
|
||||
}
|
||||
return f.Name(), func() { os.Remove(f.Name()) }
|
||||
return f.Name(), func() { _ = os.Remove(f.Name()) }
|
||||
}
|
||||
|
||||
@ -72,13 +72,13 @@ func (s *SimpleStreams) readCache(path string) ([]byte, bool) {
|
||||
|
||||
fi, err := os.Stat(cacheName)
|
||||
if err != nil {
|
||||
os.Remove(cacheName)
|
||||
_ = os.Remove(cacheName)
|
||||
return nil, false
|
||||
}
|
||||
|
||||
body, err := ioutil.ReadFile(cacheName)
|
||||
if err != nil {
|
||||
os.Remove(cacheName)
|
||||
_ = os.Remove(cacheName)
|
||||
return nil, false
|
||||
}
|
||||
|
||||
@ -121,7 +121,7 @@ func (s *SimpleStreams) cachedDownload(path string) ([]byte, error) {
|
||||
|
||||
return nil, err
|
||||
}
|
||||
defer r.Body.Close()
|
||||
defer func() { _ = r.Body.Close() }()
|
||||
|
||||
if r.StatusCode != http.StatusOK {
|
||||
// On local connectivity error, return from cache anyway
|
||||
@ -140,8 +140,8 @@ func (s *SimpleStreams) cachedDownload(path string) ([]byte, error) {
|
||||
// Attempt to store in cache
|
||||
if s.cachePath != "" {
|
||||
cacheName := filepath.Join(s.cachePath, fileName)
|
||||
os.Remove(cacheName)
|
||||
ioutil.WriteFile(cacheName, body, 0644)
|
||||
_ = os.Remove(cacheName)
|
||||
_ = ioutil.WriteFile(cacheName, body, 0644)
|
||||
}
|
||||
|
||||
return body, nil
|
||||
|
||||
@ -49,7 +49,7 @@ func TestSignalHandling(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Error("Could not open file ", err)
|
||||
}
|
||||
defer file.Close()
|
||||
defer func() { _ = file.Close() }()
|
||||
|
||||
var text = make([]byte, 1024)
|
||||
for {
|
||||
@ -159,7 +159,7 @@ func TestProcessStartWaitExit(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Error("Could not open file: ", err)
|
||||
}
|
||||
defer file.Close()
|
||||
defer func() { _ = file.Close() }()
|
||||
|
||||
exp = "hello again\nwaiting now\n"
|
||||
// Read file, line by line
|
||||
|
||||
@ -143,11 +143,11 @@ func (p *Process) start(fds []*os.File) error {
|
||||
}
|
||||
|
||||
if p.Stdout != nil && p.closeFds {
|
||||
defer p.Stdout.Close()
|
||||
defer func() { _ = p.Stdout.Close() }()
|
||||
}
|
||||
|
||||
if p.Stderr != nil && p.Stderr != p.Stdout && p.closeFds {
|
||||
defer p.Stderr.Close()
|
||||
defer func() { _ = p.Stderr.Close() }()
|
||||
}
|
||||
|
||||
// Start the process.
|
||||
|
||||
@ -37,7 +37,7 @@ func Load() {
|
||||
}
|
||||
return
|
||||
}
|
||||
defer usbids.Close()
|
||||
defer func() { _ = usbids.Close() }()
|
||||
|
||||
ids, cls, err := ParseIDs(usbids)
|
||||
if err != nil {
|
||||
|
||||
@ -8,6 +8,7 @@ import (
|
||||
"encoding/gob"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"github.com/lxc/lxd/lxd/revert"
|
||||
"hash"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
@ -76,7 +77,7 @@ func PathIsEmpty(path string) (bool, error) {
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
defer f.Close()
|
||||
defer func() { _ = f.Close() }()
|
||||
|
||||
// read in ONLY one file
|
||||
_, err = f.Readdir(1)
|
||||
@ -404,7 +405,7 @@ func FileMove(oldPath string, newPath string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
os.Remove(oldPath)
|
||||
_ = os.Remove(oldPath)
|
||||
|
||||
return nil
|
||||
}
|
||||
@ -447,7 +448,7 @@ func FileCopy(source string, dest string) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer s.Close()
|
||||
defer func() { _ = s.Close() }()
|
||||
|
||||
d, err := os.Create(dest)
|
||||
if err != nil {
|
||||
@ -460,7 +461,6 @@ func FileCopy(source string, dest string) error {
|
||||
return err
|
||||
}
|
||||
}
|
||||
defer d.Close()
|
||||
|
||||
_, err = io.Copy(d, s)
|
||||
if err != nil {
|
||||
@ -469,10 +469,13 @@ func FileCopy(source string, dest string) error {
|
||||
|
||||
/* chown not supported on windows */
|
||||
if runtime.GOOS != "windows" {
|
||||
return d.Chown(uid, gid)
|
||||
err = d.Chown(uid, gid)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
return d.Close()
|
||||
}
|
||||
|
||||
// DirCopy copies a directory recursively, overwriting the target if it exists.
|
||||
@ -743,7 +746,7 @@ func RunningInUserNS() bool {
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
defer file.Close()
|
||||
defer func() { _ = file.Close() }()
|
||||
|
||||
buf := bufio.NewReader(file)
|
||||
l, _, err := buf.ReadLine()
|
||||
@ -753,7 +756,7 @@ func RunningInUserNS() bool {
|
||||
|
||||
line := string(l)
|
||||
var a, b, c int64
|
||||
fmt.Sscanf(line, "%d %d %d", &a, &b, &c)
|
||||
_, _ = fmt.Sscanf(line, "%d %d %d", &a, &b, &c)
|
||||
if a == 0 && b == 0 && c == 4294967295 {
|
||||
return false
|
||||
}
|
||||
@ -790,20 +793,34 @@ func TextEditor(inPath string, inContent []byte) ([]byte, error) {
|
||||
if err != nil {
|
||||
return []byte{}, err
|
||||
}
|
||||
reverter := revert.New()
|
||||
defer reverter.Fail()
|
||||
reverter.Add(func() { _ = f.Close() })
|
||||
reverter.Add(func() { _ = os.Remove(f.Name()) })
|
||||
|
||||
err = os.Chmod(f.Name(), 0600)
|
||||
if err != nil {
|
||||
f.Close()
|
||||
os.Remove(f.Name())
|
||||
return []byte{}, err
|
||||
}
|
||||
|
||||
f.Write(inContent)
|
||||
f.Close()
|
||||
_, err = f.Write(inContent)
|
||||
if err != nil {
|
||||
return []byte{}, err
|
||||
}
|
||||
|
||||
err = f.Close()
|
||||
if err != nil {
|
||||
return []byte{}, err
|
||||
}
|
||||
|
||||
path = fmt.Sprintf("%s.yaml", f.Name())
|
||||
os.Rename(f.Name(), path)
|
||||
defer os.Remove(path)
|
||||
err = os.Rename(f.Name(), path)
|
||||
if err != nil {
|
||||
return []byte{}, err
|
||||
}
|
||||
|
||||
reverter.Success()
|
||||
reverter.Add(func() { _ = os.Remove(path) })
|
||||
} else {
|
||||
path = inPath
|
||||
}
|
||||
@ -1027,7 +1044,7 @@ func SetProgressMetadata(metadata map[string]any, stage, displayPrefix string, p
|
||||
|
||||
func DownloadFileHash(ctx context.Context, httpClient *http.Client, useragent string, progress func(progress ioprogress.ProgressData), canceler *cancel.HTTPRequestCanceller, filename string, url string, hash string, hashFunc hash.Hash, target io.WriteSeeker) (int64, error) {
|
||||
// Always seek to the beginning
|
||||
target.Seek(0, 0)
|
||||
_, _ = target.Seek(0, 0)
|
||||
|
||||
var req *http.Request
|
||||
var err error
|
||||
@ -1051,7 +1068,7 @@ func DownloadFileHash(ctx context.Context, httpClient *http.Client, useragent st
|
||||
if err != nil {
|
||||
return -1, err
|
||||
}
|
||||
defer r.Body.Close()
|
||||
defer func() { _ = r.Body.Close() }()
|
||||
defer close(doneCh)
|
||||
|
||||
if r.StatusCode != http.StatusOK {
|
||||
@ -1103,7 +1120,7 @@ func ParseNumberFromFile(file string) (int64, error) {
|
||||
if err != nil {
|
||||
return int64(0), err
|
||||
}
|
||||
defer f.Close()
|
||||
defer func() { _ = f.Close() }()
|
||||
|
||||
buf := make([]byte, 4096)
|
||||
n, err := f.Read(buf)
|
||||
|
||||
@ -17,6 +17,7 @@ import (
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
|
||||
"github.com/lxc/lxd/lxd/revert"
|
||||
"github.com/lxc/lxd/shared/logger"
|
||||
"github.com/lxc/lxd/shared/units"
|
||||
)
|
||||
@ -294,7 +295,7 @@ func DeviceTotalMemory() (int64, error) {
|
||||
if err != nil {
|
||||
return -1, err
|
||||
}
|
||||
defer f.Close()
|
||||
defer func() { _ = f.Close() }()
|
||||
|
||||
// Read it line by line
|
||||
scan := bufio.NewScanner(f)
|
||||
@ -324,7 +325,8 @@ func DeviceTotalMemory() (int64, error) {
|
||||
|
||||
// OpenPtyInDevpts creates a new PTS pair, configures them and returns them.
|
||||
func OpenPtyInDevpts(devpts_fd int, uid, gid int64) (*os.File, *os.File, error) {
|
||||
revert := true
|
||||
reverter := revert.New()
|
||||
defer reverter.Fail()
|
||||
var fd int
|
||||
var ptx *os.File
|
||||
var err error
|
||||
@ -339,11 +341,7 @@ func OpenPtyInDevpts(devpts_fd int, uid, gid int64) (*os.File, *os.File, error)
|
||||
return nil, nil, err
|
||||
}
|
||||
ptx = os.NewFile(uintptr(fd), "/dev/pts/ptmx")
|
||||
defer func() {
|
||||
if revert {
|
||||
ptx.Close()
|
||||
}
|
||||
}()
|
||||
reverter.Add(func() { _ = ptx.Close() })
|
||||
|
||||
// Unlock the ptx and pty.
|
||||
val := 0
|
||||
@ -382,11 +380,7 @@ func OpenPtyInDevpts(devpts_fd int, uid, gid int64) (*os.File, *os.File, error)
|
||||
return nil, nil, err
|
||||
}
|
||||
}
|
||||
defer func() {
|
||||
if revert {
|
||||
pty.Close()
|
||||
}
|
||||
}()
|
||||
reverter.Add(func() { _ = pty.Close() })
|
||||
|
||||
// Configure both sides
|
||||
for _, entry := range []*os.File{ptx, pty} {
|
||||
@ -433,7 +427,7 @@ func OpenPtyInDevpts(devpts_fd int, uid, gid int64) (*os.File, *os.File, error)
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
revert = false
|
||||
reverter.Success()
|
||||
return ptx, pty, nil
|
||||
}
|
||||
|
||||
|
||||
@ -22,15 +22,15 @@ func TestGetAllXattr(t *testing.T) {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
defer os.Remove(xattrFile.Name())
|
||||
xattrFile.Close()
|
||||
defer func() { _ = os.Remove(xattrFile.Name()) }()
|
||||
_ = xattrFile.Close()
|
||||
|
||||
xattrDir, err := ioutil.TempDir("", "")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
defer os.Remove(xattrDir)
|
||||
defer func() { _ = os.Remove(xattrDir) }()
|
||||
|
||||
for k, v := range testxattr {
|
||||
err = unix.Setxattr(xattrFile.Name(), k, []byte(v), 0)
|
||||
|
||||
@ -47,22 +47,22 @@ func TestFileCopy(t *testing.T) {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
defer os.Remove(source.Name())
|
||||
defer func() { _ = os.Remove(source.Name()) }()
|
||||
|
||||
if err := WriteAll(source, helloWorld); err != nil {
|
||||
source.Close()
|
||||
_ = source.Close()
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
source.Close()
|
||||
_ = source.Close()
|
||||
|
||||
dest, err := ioutil.TempFile("", "")
|
||||
defer os.Remove(dest.Name())
|
||||
defer func() { _ = os.Remove(dest.Name()) }()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
dest.Close()
|
||||
_ = dest.Close()
|
||||
|
||||
if err := FileCopy(source.Name(), dest.Name()); err != nil {
|
||||
t.Error(err)
|
||||
@ -90,7 +90,7 @@ func TestFileCopy(t *testing.T) {
|
||||
func TestDirCopy(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "lxd-shared-util-")
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(dir)
|
||||
defer func() { _ = os.RemoveAll(dir) }()
|
||||
|
||||
source := filepath.Join(dir, "source")
|
||||
dest := filepath.Join(dir, "dest")
|
||||
@ -127,7 +127,7 @@ func TestDirCopy(t *testing.T) {
|
||||
|
||||
func TestReaderToChannel(t *testing.T) {
|
||||
buf := make([]byte, 1*1024*1024)
|
||||
rand.Read(buf)
|
||||
_, _ = rand.Read(buf)
|
||||
|
||||
offset := 0
|
||||
finished := false
|
||||
|
||||
Loading…
Reference in New Issue
Block a user