From 9dd6681a7a8c0e338d172fe8376dab363f135de1 Mon Sep 17 00:00:00 2001 From: Yonghwan SO Date: Sun, 8 Aug 2021 15:17:03 +0900 Subject: [PATCH] reconfigured travis-ci and fixed some tests/codes --- .travis.yml | 28 ++++++++++++++++------------ README.md | 1 + adapters/device.go | 4 +++- adapters/device_test.go | 34 +++++++++++++++++++++++++++++++--- cmd/goul/run_private_test.go | 8 +++++--- utils_test.go | 6 +++++- 6 files changed, 61 insertions(+), 20 deletions(-) diff --git a/.travis.yml b/.travis.yml index b2d03db..5d0c4d0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,18 @@ language: go +dist: bionic go: - - 1.8.x + - 1.16.x env: global: - CC_TEST_REPORTER_ID=9311a4b76692580fa889c7d2476a621b41f7ffb5554b8dabc5e818e572d0602c +before_install: + - sudo apt-get -qq update + - sudo apt-get install -y libpcap-dev + - env + before_script: - go get github.com/mattn/goveralls - go get github.com/AlekSi/gocoverutil @@ -14,20 +20,18 @@ before_script: - chmod +x ./cc-test-reporter - ./cc-test-reporter before-build -before_install: - - sudo apt-get -qq update - - sudo apt-get install -y libpcap-dev - - env - go_import_path: github.com/hyeoncheon/goul script: - - go build -o goul -ldflags "-X main.buildNumber=`git rev-parse --short HEAD`" ./cmd/goul - - ls -l goul - - ./goul -v - - ./supports/test-gocover.sh - - go test ./... -v - - goveralls -v -service=travis-ci + - > + go mod tidy && + cat go.mod go.sum && + go build -o goul -ldflags "-X main.buildNumber=`git rev-parse --short HEAD`" ./cmd/goul && + ls -l goul && + ./goul -v && + ./supports/test-gocover.sh && + go test ./... -v && + goveralls -v -service=travis-ci # cover.out was generated by test-gocover.sh, github.com/AlekSi/gocoverutil after_script: diff --git a/README.md b/README.md index 9eb987f..52356dc 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # Goul, Virtual Port Mirror over Internet (for Cloud) +[![Go Reference](https://pkg.go.dev/badge/github.com/hyeoncheon/goul.svg)](https://pkg.go.dev/github.com/hyeoncheon/goul) [![Build Status](https://travis-ci.org/hyeoncheon/goul.svg?branch=master)](https://travis-ci.org/hyeoncheon/goul) [![Go Report Card](https://goreportcard.com/badge/github.com/hyeoncheon/goul)](https://goreportcard.com/report/github.com/hyeoncheon/goul) [![Code Climate](https://codeclimate.com/github/hyeoncheon/goul/badges/gpa.svg)](https://codeclimate.com/github/hyeoncheon/goul) diff --git a/adapters/device.go b/adapters/device.go index 8c817f0..93471af 100644 --- a/adapters/device.go +++ b/adapters/device.go @@ -171,7 +171,9 @@ func NewDevice(dev string, isTest bool) (*DeviceAdapter, error) { Adapter: &goul.BaseAdapter{}, isTest: isTest, } - a.inactiveHandle, a.err = pcap.NewInactiveHandle(a.device) + if !isTest { + a.inactiveHandle, a.err = pcap.NewInactiveHandle(a.device) + } return a, a.err } diff --git a/adapters/device_test.go b/adapters/device_test.go index 7334a51..069ad2c 100644 --- a/adapters/device_test.go +++ b/adapters/device_test.go @@ -9,12 +9,12 @@ import ( "github.com/hyeoncheon/goul/adapters" ) -func Test_DeviceAdapter_1_NormalFlow(t *testing.T) { +func Test_DeviceAdapter_11_NormalFlowReader(t *testing.T) { var err error var adapter goul.Adapter r := require.New(t) - adapter, err = adapters.NewDevice("eth0", true) + adapter, err = adapters.NewDevice("lo", false) r.NoError(err) r.NotNil(adapter) @@ -38,6 +38,34 @@ func Test_DeviceAdapter_1_NormalFlow(t *testing.T) { r.EqualError(err, adapters.ErrCouldNotActivate) // permission denied r.Contains(adapter.GetError().Error(), "Permission Denied") + adapter.Close() +} + +func Test_DeviceAdapter_12_NormalFlowWriterTestmode(t *testing.T) { + var err error + var adapter goul.Adapter + r := require.New(t) + + adapter, err = adapters.NewDevice("lo", true) + r.NoError(err) + r.NotNil(adapter) + + logger := goul.NewLogger("debug") + err = adapter.SetLogger(logger) + r.NoError(err) + + lgr := adapter.GetLogger() + r.NotNil(lgr) + + in := make(chan goul.Item) + go func() { + defer func() { + recover() + }() + in <- &goul.ItemGeneric{Meta: "Message", DATA: []byte{1}} + return + }() + done, err := adapter.Write(in, nil) // with testmode r.NoError(err) close(in) @@ -50,7 +78,7 @@ func Test_DeviceAdapter_2_AdapterSpecific(t *testing.T) { r := require.New(t) // get instance as adapters.DeviceAdapter instead of goul.Adapter - adapter, err := adapters.NewDevice("eth0", false) + adapter, err := adapters.NewDevice("lo", false) r.NoError(err) r.NotNil(adapter) diff --git a/cmd/goul/run_private_test.go b/cmd/goul/run_private_test.go index 42b4707..6436dde 100644 --- a/cmd/goul/run_private_test.go +++ b/cmd/goul/run_private_test.go @@ -18,12 +18,14 @@ func Test_RunServer(t *testing.T) { isTest: false, isServer: true, port: 6060, - device: "bond9", + device: "bond9", // does not exist filter: "port 80", } err := run(svrOpts) - r.EqualError(err, ErrCouldNotStartTheRouter) // permission + r.Error(err) + //r.EqualError(err, ErrCouldNotStartTheRouter) // in my local + //r.EqualError(err, ErrCouldNotCreateDeviceReader) // in travis-ci } func Test_RunTestServer(t *testing.T) { @@ -62,7 +64,7 @@ func Test_RunClient(t *testing.T) { isServer: false, addr: "localhost", port: 6060, - device: "bond9", + device: "lo", filter: "port 80", } diff --git a/utils_test.go b/utils_test.go index 46b3024..20e8a3e 100644 --- a/utils_test.go +++ b/utils_test.go @@ -20,7 +20,11 @@ func Test_PrintDevices_1_Normal(t *testing.T) { err = goul.PrintDevices() if isTravis { - r.Error(err) + // Ah... I don't remember but it seems like this was an workaround + // for Travis CI. but not it works as the same as local env. + // just leave it as is as a history. + //r.Error(err) + r.NoError(err) } else { r.NoError(err) }