diff --git a/.travis.yml b/.travis.yml index 31292e5..27c23c7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,25 @@ language: go go: - "1.14" -script: - - go test -race -coverprofile=coverage.txt -coverpkg=./... -covermode=atomic ./... +services: + - docker -after_success: - - bash <(curl -s https://codecov.io/bash) +env: + global: + secure: Iidyp9e/IdH26KxE1aQfrdTLPDKQlGndfEiGXAo6Kw57DP7AXeC99c6TxQv1AGK71Qtorufvps0FVYrfTWT86OXw6ncNWaaCNDicPg1Sy/PmljqpnC/2sfkOgZ0CFOnlfL2qxUIZoNi4r6BwaKrd2cffSaq8+kCr0LPWyRTZIE8Q67LoHVEcEJcnOOp887GxIAAj8KSYpN2qu1hBS/NN6znPUxToT3az11g9Ik88Ut9iQmbwVf56+QJD+kD/RMkwhw5FmZh8fj1JaeLw6IIxmKd5g1FuAIC4lRb7fkv+zRpApFfVsPgEOk425a/g1hk5cKox5m6qRrq+REngWam3TSiDsdpsNHT+nUmAbXCXOijC59yNYffQ05DLUugChtmqdWPfCoJfWaVPH5T8Kc610thcovQmIXrJyBeGJQSwzyZvSGoreyon2klk+2Dpp2XSqN9Htwkeldy0kibCPlRO7dR12rrMP8mASda0hTqK8TV2CV2LWdDVcJHmOh6KpWP+grwSKJh6NbxdCJKjSejNp7f39DsqiW5W36AQoA4iFewjG4IwCqtdlJQMLbnZrGmLBF/c6yJ6DUnJZp4p5DcOmMGFzggEPLs8kB1f/kYJ6HBgAGlLpJ+swhUtSPKyf0jQ7Of7zsjFOrC+MTyfrxyGckPpQm1RUrj7c6jwOwasbZo= + +jobs: + include: + - script: go test -race -coverprofile=coverage.txt -coverpkg=./... -covermode=atomic ./... + - after_success: bash <(curl -s https://codecov.io/bash) + + - stage: Build, Unit-Tests & Fuzz-Tests + go: 1.14 + script: + - ./fuzzit.sh local-regression + + - stage: Fuzzit (Fuzzing) + if: branch = master AND type IN (push) + go: 1.14 + script: + - ./fuzzit.sh fuzzing diff --git a/fuzzit.sh b/fuzzit.sh new file mode 100644 index 0000000..d9ad025 --- /dev/null +++ b/fuzzit.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -xe + +## Build fuzzing targets +## go-fuzz doesn't support modules for now, so ensure we do everything +## in the old style GOPATH way +export GO111MODULE="off" + +## Install go-fuzz +go get -u github.com/dvyukov/go-fuzz/go-fuzz github.com/dvyukov/go-fuzz/go-fuzz-build + +# download dependencies into ${GOPATH} +# -d : only download (don't install)f +# -v : verbose +# -u : use the latest version +# will be different if you use vendoring or a dependency manager +# like godep +go get -d -v -u ./... + +cd internal/multiplex +go-fuzz-build -libfuzzer -o multiplex.a . +clang -fsanitize=fuzzer multiplex.a -o cloak-multiplex + +## Install fuzzit latest version: +wget -O fuzzit https://github.com/fuzzitdev/fuzzit/releases/latest/download/fuzzit_Linux_x86_64 +chmod a+x fuzzit + +## upload fuzz target for long fuzz testing on fuzzit.dev server or run locally for regression +./fuzzit create job --type ${1} cbeuw/cloak-multiplex cloak-multiplex \ No newline at end of file diff --git a/go.mod b/go.mod index 50ffb6b..b3ebe02 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/cbeuw/Cloak -go 1.13 +go 1.14 require ( github.com/cbeuw/connutil v0.0.0-20200411160121-c5a5c4a9de14