aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorDamjan Marion <damarion@cisco.com>2017-01-10 10:39:21 +0100
committerDamjan Marion <dmarion.lists@gmail.com>2017-01-10 09:40:45 +0000
commit6bbf83a01b813b3d50b27ab9001d25cae5c4592a (patch)
tree0d7c64c55966b1f32ad166768aa5eedff7fbe4fb /Makefile
parent842b9c59cc21b3e2917aaa25069fb15addf976f1 (diff)
Revert "vppctl: bash completion for vppctl commands"
This patch is causing build failures This reverts commit d995c757f05f78aa759b0a65c0a7e38088e690a9. Change-Id: I0c8d5a4208135d77aaa3a6a470d26140f7b74733 Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile46
1 files changed, 7 insertions, 39 deletions
diff --git a/Makefile b/Makefile
index 7c3dded21d0..6af33b08c06 100644
--- a/Makefile
+++ b/Makefile
@@ -32,8 +32,8 @@ endif
DEB_DEPENDS = curl build-essential autoconf automake bison libssl-dev ccache
DEB_DEPENDS += debhelper dkms git libtool libganglia1-dev libapr1-dev dh-systemd
-DEB_DEPENDS += libconfuse-dev git-review exuberant-ctags cscope pkg-config doxygen graphviz
-DEB_DEPENDS += python-dev python-virtualenv python-pip python-pyparsing python-jinja2 lcov chrpath autoconf
+DEB_DEPENDS += libconfuse-dev git-review exuberant-ctags cscope pkg-config
+DEB_DEPENDS += python-dev python-virtualenv python-pip lcov chrpath autoconf
ifeq ($(OS_VERSION_ID),14.04)
DEB_DEPENDS += openjdk-8-jdk-headless
else
@@ -41,9 +41,9 @@ else
endif
RPM_DEPENDS_GROUPS = 'Development Tools'
-RPM_DEPENDS = redhat-lsb glibc-static java-1.8.0-openjdk-devel yum-utils doxygen graphviz
+RPM_DEPENDS = redhat-lsb glibc-static java-1.8.0-openjdk-devel yum-utils
RPM_DEPENDS += openssl-devel https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm apr-devel
-RPM_DEPENDS += python-devel python-virtualenv pyparsing python-jinja2 lcov chrpath
+RPM_DEPENDS += python-devel python-virtualenv lcov chrpath
EPEL_DEPENDS = libconfuse-devel ganglia-devel
ifneq ($(wildcard $(STARTUP_DIR)/startup.conf),)
@@ -183,35 +183,6 @@ distversion: $(BR)/scripts/.version
$(BR)/scripts/verdist ${BR} ${prefix}-$(shell $(BR)/scripts/version rpm-version) ${verstring}
mv $(verstring).tar.gz $(BR)/rpm
-deb-depends-check:
-ifeq ($(OS_ID),ubuntu)
- @MISSING=$$(apt-get install -y -qq -s $(DEB_DEPENDS) | grep "^Inst ") ; \
- if [ -n "$$MISSING" ] ; then \
- echo "\nPlease install missing packages: \n$$MISSING\n" ; \
- echo "by executing \"make install-dep\"\n" ; \
- exit 1 ; \
- fi; \
- exit 0
-endif
-
-rpm-depends-check:
-ifeq ($(OS_ID),centos)
- @RPM_DEPENDS_ARRAY=($(RPM_DEPENDS)) ; \
- for i in "$${!RPM_DEPENDS_ARRAY[@]}"; do \
- if ! yum list installed "$${RPM_DEPENDS_ARRAY[$$i]}" >/dev/null 2>&1; then \
- if ! [[ "$${RPM_DEPENDS_ARRAY[$$i]}" == *"://"* ]] ; then \
- MISSING="$$MISSING $${RPM_DEPENDS_ARRAY[$$i]}" ; \
- fi; \
- fi; \
- done; \
- if [ -n "$$MISSING" ] ; then \
- echo "\nPlease install missing packages: \n$$MISSING\n" ; \
- echo "by executing \"make install-dep\"\n" ; \
- exit 1 ; \
- fi; \
- exit 0
-endif
-
build: $(BR)/.bootstrap.ok
$(call make,$(PLATFORM)_debug,vpp-install)
@@ -315,10 +286,10 @@ build-vat:
run-vat:
@sudo $(BR)/install-$(PLATFORM)_debug-native/vpp/bin/vpp_api_test
-pkg-deb: deb-depends-check doxygen-siphon-list
+pkg-deb:
$(call make,$(PLATFORM),install-deb)
-pkg-rpm: dist rpm-depends-check doxygen-siphon-list
+pkg-rpm: dist
$(call make,$(PLATFORM),install-rpm)
ctags: ctags.files
@@ -350,7 +321,7 @@ endef
.PHONY: bootstrap-doxygen doxygen wipe-doxygen
-bootstrap-doxygen: deb-depends-check rpm-depends-check
+bootstrap-doxygen:
$(call make-doxy)
doxygen:
@@ -359,9 +330,6 @@ doxygen:
wipe-doxygen:
$(call make-doxy)
-doxygen-siphon-list:
- $(call make-doxy)
-
define banner
@echo "========================================================================"
@echo " $(1)"
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
# CSIT - Continuous System Integration Testing

1. [Architecture](#architecture)
1. [Directory Structure](#directory-structure)
   1. [Tests](#tests)
   1. [Keywords](#keywords)
   1. [Other Resources](#other-resources)
1. [Quickstart](#quick-start)
   1. [Vagrant](#vagrant)
   1. [Physical Testbed](#physical-testbed)
1. [Report](#report)
1. [Trending](#trending)
1. [Code Documentation](#code-documentation)
1. [Coding Guidelines](#coding-guidelines)

## Architecture

FD.io CSIT system design needs to meet continuously expanding requirements of
FD.io projects including VPP, related sub-systems (e.g. plugin applications,
DPDK drivers) and FD.io applications (e.g. DPDK applications), as well as
growing number of compute platforms running those applications. With CSIT
project scope and charter including both FD.io continuous testing AND
performance trending/comparisons, those evolving requirements further amplify
the need for CSIT framework modularity, flexibility and usability.

CSIT follows a hierarchical system design with SUTs and DUTs at the bottom level
of the hierarchy, presentation level at the top level and a number of functional
layers in-between. The current CSIT system design including CSIT framework is
depicted in the figure below.

![csit design](docs/report/csit_framework_documentation/csit_design_picture.svg "CSIT architecture")

A brief bottom-up description is provided here:

1. SUTs, DUTs, TGs
   - SUTs - Systems Under Test;
   - DUTs - Devices Under Test;
   - TGs - Traffic Generators;
1. Level-1 libraries - Robot and Python
   - Lowest level CSIT libraries abstracting underlying test environment, SUT,
     DUT and TG specifics;
   - Used commonly across multiple L2 KWs;
   - Performance and functional tests:
     - L1 KWs (KeyWords) are implemented as RF libraries and Python
       libraries;
   - Performance TG L1 KWs:
     - All L1 KWs are implemented as Python libraries:
       - Support for TRex only today;
   - Performance data plane traffic profiles:
     - TG-specific stream profiles provide full control of:
       - Packet definition – layers, MACs, IPs, ports, combinations thereof
         e.g. IPs and UDP ports;
       - Stream definitions - different streams can run together, delayed,
         one after each other;
       - Stream profiles are independent of CSIT framework and can be used
         in any T-rex setup, can be sent anywhere to repeat tests with
         exactly the same setup;
       - Easily extensible – one can create a new stream profile that meets
         tests requirements;
       - Same stream profile can be used for different tests with the same
         traffic needs;
   - Functional data plane traffic scripts:
     - Scapy specific traffic scripts;
1. Level-2 libraries - Robot resource files
   - Higher level CSIT libraries abstracting required functions for executing
     tests;
   - L2 KWs are classified into the following functional categories:
     - Configuration, test, verification, state report;
     - Suite setup, suite teardown;
     - Test setup, test teardown;
1. Tests - Robot
   - Device tests using containerized environment with SR-IOV access to a NIC;
     - VPP;
   - Performance tests using physical testbed environment:
     - VPP;
     - DPDK-Testpmd;
     - DPDK-L3Fwd;
   - Tools:
     - Documentation generator;
     - Report generator;
     - Testbed environment setup ansible playbooks;
     - Operational debugging scripts;

## Directory Structure

### Tests

```
.
└── tests
    ├── dpdk
    │   └── perf                    # DPDK performance tests
    └── vpp
        ├── device                  # VPP device tests
        └── perf                    # VPP performance tests
```

### Keywords

```
.
resources
└── libraries
    ├── bash                        # Contains a dependency of KubernetesUtils
    │   ├── config                  # Config for KubernetesUtils dependency
    │   ├── entry                   # Main bootstrap entry directory
    │   ├── function                # Bootstrap function library
    │   └── shell                   # Various functions for KubernetesUtils
    ├── python                      # Python L1 KWs
    └── robot                       # Robot Framework L2 KWs
```

### Other Resources

```
.
├── docs                            # Main documentaion
│── csit.infra.vagrant              # VPP device vagrant environment
|── fdio.infra.ansible              # Infrastructure provisioning
|── fdio.infra.pxe                  # Preboot eXecution Environment
|── fdio.infra.terraform            # Virtual infrastructure deployment
|── GPL                             # Files licensed under GPL
│   ├── traffic_profiles            # Performance tests traffic profiles
│   │   └── trex
│   └── traffic_scripts             # Functional tests traffic profiles
├── PyPI                            # PyPI packages provided by CSIT
│   ├── jumpavg
│   └── MLRsearch
├── resources
│   ├── api                         # API coverage
│   ├── templates                   # Templates (vpp_api_test, kubernetes, ...)
│   ├── test_data                   # Robot Test configuration
│   ├── tools
│   │   ├── doc_gen                 # Code documentation generator
│   │   ├── papi                    # PAPI driver
│   │   ├── presentation            # Report generator
│   │   ├── scripts                 # Various tools
│   │   ├── topology                # Helper scripts for topology manipulation
│   │   ├── trex                    # TRex driver
│   ├── topology_schemas
└── topologies                      # Linux Foundation topology files
    ├── available
    └── enabled
```

## Quickstart

### Vagrant

[Vagrant environment preparation](docs/testing_in_vagrant.rst) documentaion is
describing local VPP Device functional testing.

## Report

[CSIT Report](https://s3-docs.fd.io/csit/master/report/).

## Trending

[CSIT Trending](https://s3-docs.fd.io/csit/master/trending/).

## Code Documentation

[CSIT Code Documentation](https://s3-docs.fd.io/csit/master/docs/).

## Coding Guidelines

If you are interested in contributing, please see the
[coding guidelines](docs/test_code_guidelines.rst).