Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

to support system tests / code coverage #1032

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,11 @@ format:
gofmt -w $$gofile; \
done

## build-system-test: Building executable for system tests with code coverage enabled
build-system-test:
@echo Building executable for system tests with code coverage enabled
go test -c -covermode=count -coverpkg ./... -o ${GOPATH}/bin/kiali

## build-test: Run tests and installing test dependencies, excluding third party tests under vendor. Runs `go test -i` internally
build-test:
@echo Building and installing test dependencies to help speed up test runs.
Expand Down
25 changes: 25 additions & 0 deletions deploy/jenkins-ci/deploy-kiali-for-system-tests-code-coverage.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/bash

bash <(curl -L https://git.io/getLatestKialiOperator)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that I just did this "curl" download simply to pick up the released version. This is simply running the stock operator/deploy/deploy-kiali-operator.sh script. You can execute that script however you do it normally - if you are running this out of a git cloned repo, you could make this something like ../../operator/deploy/deploy-kiali-operator.sh instead.


echo -n "Waiting for Kiali to start"
for run in {1..60}
do
oc get pods -l app=kiali -n istio-system 2>/dev/null | grep "^kiali.*Running" > /dev/null && _STARTED=true && break
echo -n "."
sleep 5
done
echo

if [ -z ${_STARTED} ]; then
echo "ERROR: Kiali is not running yet. Please make sure it was deployed successfully."
exit 1
else
echo "Kiali is running - will now update for system tests/code coverage"
fi

oc patch deployment kiali -n istio-system --type=json -p='[{"op":"replace","path":"/spec/template/spec/containers/0/command", "value":["/opt/kiali/kiali", "-config", "/kiali-configuration/config.yaml", "-v", "4", "-systemTest", "-test.coverprofile", "/opt/kiali/console/coverage.cov"]}]'

oc delete pods -n istio-system --selector=app=kiali

echo "Kiali is running with system tests/code coverage enabled."
20 changes: 20 additions & 0 deletions main_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package main

// This file is mandatory as otherwise the kiali binary for system tests is not generated correctly.
import (
"flag"
"testing"
)

var systemTest *bool

func init() {
systemTest = flag.Bool("systemTest", false, "Set to true when running system tests")
}

// Test started when the test binary is started. Only calls main.
func TestSystem(t *testing.T) {
if *systemTest {
main()
}
}