Age | Commit message (Collapse) | Author |
|
Change-Id: I8d262f9e9ba0d29b902c15f6dad3e75df3b0d75c
Signed-off-by: Josep Puigdemont <josep.puigdemont@linaro.org>
|
|
NGiNX can be installed in different places, and can be implemented using
different IP stacks (Linux IP stack, OFP, ANS...).
The nginx-server.sh script was meant to be used independently of he
NGiNX version in use. Due to this it contains several initialization and
configuration functions for each of the currently supported
implementations. This could grow a bit too large for one single file, so
we've opted for creating files with a set of required functions for each
implementation. The file is sourced and it should define some functions
used for the tests. The name of the file should be that of the
CONFIG_TYPE defined for the test definition, plus the .sh suffix.
The functions required to be implemented in the files are:
- do_configure_system(): used to initialize the tests. Here any
configuration required for the test, like NIC configuration,
kernel module loading, etc, should be done. It is called once
before any test starts.
- do_start_nginx(): this function is used to start NGiNX.
- do_stop_nginx(): this function is used to stop NGiNX. It may be
called even if NGiNX is not running.
- do_write_nginx_config(): this function is called before starting
NGiNX, and it is meant to write a proper nginx.conf file for the
current number of cores.
- do_pre_test_cb(): this function is called before starting NGiNX,
it can be used for anything deemed appropriate.
- do_post_test_cb(): this function is called right after the test
has finished, and before NGiNX is stopped. It can be used for
anything deemed appropriate.
All functions are called with the following parameters in this order:
- cores: number of cores of the current test. For
configure_sytem, this is the total number of physical cores
available.
- interface: this is the interface that NGiNX is expected to use.
- IP: the IP that the web server is expected to use.
The return value of the functions is not checked.
Change-Id: I0321697509f9ac628e705c69285a7478dd993ace
Signed-off-by: Josep Puigdemont <josep.puigdemont@linaro.org>
|
|
We will now use the add_key and add_repo functions provided by
sh-test-lib, also the repository used can be specified as one of the
test parameters.
Installation of release-specific packages has been removed. Any extra
packages from other repositories than the ones under test (currently
jessie-backports) will have to be installed by the calling LAVA job.
This way this test definition will work on newer versions of the
distribution without having to change anything.
See this lava job for an example:
https://lng.validation.linaro.org/scheduler/job/17262/multinode_definition
Change-Id: I6119b451c4921afde861f8b3473cdfdca140d3f5
Signed-off-by: Josep Puigdemont <josep.puigdemont@linaro.org>
|
|
Until now the test installed kernel headers from a hardcoded source. We
should require the job calling his test to install the kernel headers,
whether they come from a hw-pack, a private repo, or somewhere else.
At the same time define configurable parameters for the test.
Change-Id: I28dbaa55d71683c23b4d59b188fcebf5fd302a6e
Signed-off-by: Josep Puigdemont <josep.puigdemont@linaro.org>
|
|
To work around some limitation on the current port of NGiNX to OFP,
a private repo with specially built OFP and NGiNX was used by the test
script. This is not desirable in the long run, so we will resort to
installing the packages provided by LNG at deb.opendataplane.org, and
add the limitation that NGiNX for OFP will only be tested with one
worker for now.
When support for more workers is available, the limitation should be
removed.
Change-Id: I0f2d5f1c4efe9efb53c77270c0bebaeb03c709b6
Signed-off-by: Josep Puigdemont <josep.puigdemont@linaro.org>
|
|
The nginx-server.sh script implements the same protocol as the
httperf-client.sh script, namely:
client server
| |
|<----------- num_cores ---------| # server indicates num cores
|---------- client_ready ------->| # server is configured for 1 core
|<-- server_num_cores_1_ready ---| # client runs tests for 1 core
|--- client_num_cores_1_done --->| # client is finished testing
| | # server reconfigures for 2 cores
|<-- server_num_cores_2_ready ---| # client runs tests for 2 cores
|--- client_num_cores_2_done --->| # client is finished testing
| | # repeated until num_cores in
| | # increments of 2 (1, 2, 4, 6...)
...
Currently it supports testing NGiNX on plain linux IP stack, and a
special version of NGiNX compiled for OFP and ODP-DPDK, however the
latter is not too portable at the moment and will require further work.
Whether one or the other is tested is configured by the CONFIG_TYPE
environment variable in the test definition: linux-ip or odp-dpdk,
respectively.
Also the maximum amount of cores for which to test can be limited by
setting the MAX_CORES environment variable (0 meaning all cores).
This relies completely on VLAND and lava-{send,wait} for
synchronization.
Change-Id: I775083f7183895039064141b51172a3280249848
Signed-off-by: Josep Puigdemont <josep.puigdemont@linaro.org>
Signed-off-by: Milosz Wasilewski <milosz.wasilewski@linaro.org>
|