add mactime plugin unit / code coverage tests 38/19438/3
authorDave Barach <dave@barachs.net>
Wed, 8 May 2019 23:18:18 +0000 (19:18 -0400)
committerFlorin Coras <florin.coras@gmail.com>
Thu, 9 May 2019 20:08:58 +0000 (20:08 +0000)
commit7d31ab2a5cc2124ddd973ac5dfac2219619f345a
treec348cd84cf2c4edc0bb73890830ed2bc280117bf
parent016d4cc327f1980605db7a9e436597e8f36fe9ed
add mactime plugin unit / code coverage tests

The unit and code coverage tests are boring. The rest of the patch
involves test and packet-generator infra cleanups.

Teach the "make test-xxx" family of targets to set the api test plugin
path correctly, to make "binary-api <api-message-name> <args>" debug
CLI commands work correctly in the "make test"
environment. Unfortunately involves both the top-level and test
Makefiles.

Add a minor pg cli feature, a CLI to manually set
s->sw_if_index[VLIB_TX].

Consider the case where one configures an interface with both a
device-input and an output feature. To test the output feature using
the pg, it's necessary to inject packets into the interface output
node with both b->sw_if_index[VLIB_TX] and b->sw_if_index[VLIB_RX] set
correctly. For example:

packet-generator new {
 name tx
 limit 15
 size 128-128
 interface local0  # rx: device input feature not configured on local0
 tx-interface loop0 # tx: output node requires b->sw_if_index[VLIB_TX]
 node loop0-output
 data {
   hex 0x01005e7ffffa000dead0000008000102030405060708090a0b0c0d0e0f0102030405
   }
}

Fix a longstanding bug in the packet generator stream setup.  Remove
kludges which set b->sw_if_index[VLIB_TX] to ~0 [in multiple places]
instead of using the stream value s->sw_if_index[VLIB_TX], and setting
THAT datum correctly.

Change-Id: I1097a18e8db73661ded6b822c1d718f7e5cf36ed
Signed-off-by: Dave Barach <dave@barachs.net>
12 files changed:
Makefile
src/plugins/mactime/mactime.c
src/plugins/unittest/CMakeLists.txt
src/plugins/unittest/mactime_test.c [new file with mode: 0644]
src/vnet/pg/cli.c
src/vnet/pg/input.c
src/vnet/pg/stream.c
src/vpp/api/plugin.c
src/vpp/vnet/main.c
test/Makefile
test/framework.py
test/test_mactime.py [new file with mode: 0644]