From 06a3949b87cb8981999128ef1c017e83e4ef4353 Mon Sep 17 00:00:00 2001 From: Lantao Liu Date: Wed, 28 Jun 2017 08:40:00 +0000 Subject: [PATCH] Add cri-containerd test document for developer. Signed-off-by: Lantao Liu --- docs/testing.md | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 docs/testing.md diff --git a/docs/testing.md b/docs/testing.md new file mode 100644 index 000000000..2f7ad09c7 --- /dev/null +++ b/docs/testing.md @@ -0,0 +1,66 @@ +CRI-Containerd Testing Guide +============================ +This document assumes you have already setup the development environment (go, git, `cri-containerd` repo etc.). + +Before sending pull requests you should at least make sure your changes have passed code verification, unit and CRI validation tests. +## Code Verification +Code verification includes lint, code formatting, boilerplate check etc. + +* Install tools used by code verification: +```shell +make install.tools +``` +* Run code verification: +```shell +make verify +``` +## Unit Test +Run all unit tests in `cri-containerd` repo. +``` +make test +``` +## CRI Validation Test +[CRI validation test](https://github.com/kubernetes/community/blob/master/contributors/devel/cri-validation.md) is a test framework for validating that a Container Runtime Interface (CRI) implementation such as `cri-containerd` meets all the requirements necessary to manage pod sandboxes, containers, images etc. + +CRI validation test makes it possible to verify CRI conformance of `cri-containerd` without setting up Kubernetes components or running Kubernetes end-to-end tests. +* [Install dependencies](../README.md#install-dependencies). +* Build `cri-containerd`: +```shell +make +``` +* Run CRI validation test: +```shell +make test-cri +``` +* Focus or skip specific CRI validation test: +```shell +make test-cri FOCUS=REGEXP_TO_FOCUS SKIP=REGEXP_TO_SKIP +``` +[More information](https://github.com/kubernetes-incubator/cri-tools) about CRI validation test. +## Node E2E Test +[Node e2e test](https://github.com/kubernetes/community/blob/master/contributors/devel/e2e-node-tests.md) is a test framework testing Kubernetes node level functionalities such as managing pods, mounting volumes etc. It starts a local cluster with Kubelet and a few other minimum dependencies, and runs node functionality tests against the local cluster. + +* Setup Kubernetes development environment following [Kubernetes Development Guide](https://github.com/kubernetes/community/blob/master/contributors/devel/development.md). +* [Install dependencies](../README.md#install-dependencies). +* Build and install `cri-containerd`: +```shell +make +sudo make install +``` +* Start `containerd` in 1st terminal: +```shell +sudo containerd +``` +* Start `cri-containerd` in 2nd terminal: +```shell +sudo cri-containerd -v 2 --alsologtostderr +``` +* Run node e2e test **from Kubernetes project directory** in 3rd terminal: +```shell +make test-e2e-node RUNTIME=remote CONTAINER_RUNTIME_ENDPOINT=/var/run/cri-containerd.sock +``` +*Note that `cri-containerd` is still in alpha, it can only pass part of node e2e tests now.* + + +[More information](https://github.com/kubernetes/community/blob/master/contributors/devel/e2e-node-tests.md) about Kubernetes node e2e test. +