dist: trusty language: go sudo: required go: - 1.14.6 addons: apt_packages: - libx11-dev - libgles2-mesa-dev script: - cd psiphon - go test -race -v ./common - go test -race -v ./common/accesscontrol - go test -race -v ./common/crypto/ssh - go test -race -v ./common/fragmentor - go test -race -v ./common/obfuscator - go test -race -v ./common/osl # TODO: enable all packetman tests with tag PACKET_MANIPULATOR_TEST; requires CAP_NETADMIN and CAP_RAW - go test -race -v ./common/packetman - go test -race -v ./common/parameters - go test -race -v ./common/protocol - go test -race -v ./common/quic - go test -race -v ./common/tactics # TODO: fix and reenable test, which is failing in TravisCI environment: # --- FAIL: TestTunneledTCPIPv4 # tun_test.go:226: startTestTCPClient failed: syscall.Connect failed: connection timed out # #- sudo -E env "PATH=$PATH" go test -race -v ./common/tun - go test -race -v ./common/values - go test -race -v ./common/wildcard - go test -race -v ./transferstats # TODO: seet "packetman" comment above - go test -race -v ./server - go test -race -v ./server/psinet - go test -race -v ../Server/logging/analysis - go test -race -v ../ClientLibrary/clientlib - go test -race -v - go test -v -covermode=count -coverprofile=common.coverprofile ./common - go test -v -covermode=count -coverprofile=accesscontrol.coverprofile ./common/accesscontrol - go test -v -covermode=count -coverprofile=ssh.coverprofile ./common/crypto/ssh - go test -v -covermode=count -coverprofile=fragmentor.coverprofile ./common/fragmentor - go test -v -covermode=count -coverprofile=obfuscator.coverprofile ./common/obfuscator - go test -v -covermode=count -coverprofile=osl.coverprofile ./common/osl - go test -v -covermode=count -coverprofile=parameters.coverprofile ./common/parameters - go test -v -covermode=count -coverprofile=packetman.coverprofile ./common/packetman - go test -v -covermode=count -coverprofile=protocol.coverprofile ./common/protocol - go test -v -covermode=count -coverprofile=quic.coverprofile ./common/quic - go test -v -covermode=count -coverprofile=tactics.coverprofile ./common/tactics # TODO: see "tun" test comment above #- sudo -E env "PATH=$PATH" go test -v -covermode=count -coverprofile=tun.coverprofile ./common/tun - go test -v -covermode=count -coverprofile=values.coverprofile ./common/values - go test -v -covermode=count -coverprofile=wildcard.coverprofile ./common/wildcard - go test -v -covermode=count -coverprofile=transferstats.coverprofile ./transferstats - go test -v -covermode=count -coverprofile=server.coverprofile ./server - go test -v -covermode=count -coverprofile=psinet.coverprofile ./server/psinet - go test -v -covermode=count -coverprofile=analysis.coverprofile ../Server/logging/analysis - go test -v -covermode=count -coverprofile=clientlib.coverprofile ../ClientLibrary/clientlib - go test -v -covermode=count -coverprofile=psiphon.coverprofile - go test -v ./memory_test -run TestReconnectTunnel - go test -v ./memory_test -run TestRestartController after_script: - $HOME/gopath/bin/gover - $HOME/gopath/bin/goveralls -coverprofile=gover.coverprofile -service=travis-ci -repotoken $COVERALLS_TOKEN before_install: - go get github.com/axw/gocov/gocov - go get github.com/modocache/gover - go get github.com/mattn/goveralls - if ! go get github.com/golang/tools/cmd/cover; then go get golang.org/x/tools/cmd/cover; fi - git rev-parse --short HEAD > psiphon/git_rev - openssl aes-256-cbc -K $encrypted_bf83b4ab4874_key -iv $encrypted_bf83b4ab4874_iv -in psiphon/controller_test.config.enc -out psiphon/controller_test.config -d - openssl aes-256-cbc -K $encrypted_560fd0d04977_key -iv $encrypted_560fd0d04977_iv -in feedback_test.config.enc -out feedback_test.config -d notifications: slack: rooms: secure: jVo/BZ1iFtg4g5V+eNxETwXPnbhwVwGzN1vkHJnCLAhV/md3/uHGsZQIMfitqgrX/T+9JBVRbRezjBwfJHYLs40IJTCWt167Lz8R1NlazLyEpcGcdesG05cTl9oEcBb7X52kZt7r8ZIBwdB7W6U/E0/i41qKamiEJqISMsdOoFA= on_success: always on_failure: always