From 391c93dd98fb994ded8208b48791796186c4aa98 Mon Sep 17 00:00:00 2001 From: Julio Montes Date: Wed, 4 Apr 2018 09:33:22 -0500 Subject: [PATCH] mockreaper: implement mock reaper mockreaper is a helpful struct to write unit tests fixes #208 Signed-off-by: Julio Montes --- mockreaper.go | 43 +++++++++++++++++++++++++++++ mockreaper_test.go | 69 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 mockreaper.go create mode 100644 mockreaper_test.go diff --git a/mockreaper.go b/mockreaper.go new file mode 100644 index 0000000000..67178d61f3 --- /dev/null +++ b/mockreaper.go @@ -0,0 +1,43 @@ +// +// Copyright (c) 2018 Intel Corporation +// +// SPDX-License-Identifier: Apache-2.0 +// + +package main + +import "os/exec" + +type mockreaper struct { +} + +func (r *mockreaper) init() { +} + +func (r *mockreaper) getExitCodeCh(pid int) (chan<- int, error) { + return nil, nil +} + +func (r *mockreaper) setExitCodeCh(pid int, exitCodeCh chan<- int) { +} + +func (r *mockreaper) deleteExitCodeCh(pid int) { +} + +func (r *mockreaper) reap() error { + return nil +} + +func (r *mockreaper) start(c *exec.Cmd) (<-chan int, error) { + return nil, nil +} + +func (r *mockreaper) wait(exitCodeCh <-chan int, proc waitProcess) (int, error) { + return 0, nil +} + +func (r *mockreaper) lock() { +} + +func (r *mockreaper) unlock() { +} diff --git a/mockreaper_test.go b/mockreaper_test.go new file mode 100644 index 0000000000..a2eb61875f --- /dev/null +++ b/mockreaper_test.go @@ -0,0 +1,69 @@ +// +// Copyright (c) 2018 Intel Corporation +// +// SPDX-License-Identifier: Apache-2.0 +// + +package main + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestMockReaperInit(t *testing.T) { + m := &mockreaper{} + m.init() +} + +func TestMockReaperGetExitCodeCh(t *testing.T) { + assert := assert.New(t) + m := &mockreaper{} + c, e := m.getExitCodeCh(0) + assert.Nil(c) + assert.NoError(e) +} + +func TestMockReaperSetExitCodeCh(t *testing.T) { + m := &mockreaper{} + m.setExitCodeCh(0, nil) +} + +func TestMockReaperDeleteExitCodeCh(t *testing.T) { + m := &mockreaper{} + m.deleteExitCodeCh(0) +} + +func TestMockReaperReap(t *testing.T) { + assert := assert.New(t) + m := &mockreaper{} + err := m.reap() + assert.NoError(err) +} + +func TestMockReaperStart(t *testing.T) { + assert := assert.New(t) + m := &mockreaper{} + c, e := m.start(nil) + assert.Nil(c) + assert.NoError(e) +} + +func TestMockReaperWait(t *testing.T) { + assert := assert.New(t) + m := &mockreaper{} + e, err := m.wait(nil, &reaperOSProcess{}) + assert.Equal(0, e) + assert.NoError(err) +} + +func TestMockReaperLock(t *testing.T) { + m := &mockreaper{} + m.lock() +} + +func TestMockReaperUnlock(t *testing.T) { + m := &mockreaper{} + m.unlock() +}