Commit Graph

717 Commits

Author SHA1 Message Date
Matus Fabian
d086a3650e http: state machine fix
When client sends second request without waiting for response of the
first request http_ts_rx_callback should drop request (pipelining is
not supported) instead of invoking return to state machine which can
lead to erroneous state, e.g. reading random data from server app
fifo.

Added simple http static server url handler for testing to simulate
long running request processing, for now hardcoded delay 5 seconds.

Type: fix

Change-Id: Ied9f7e2e4ee64c982f045c0f7f99a2dc5d7a2108
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-23 20:37:16 +00:00
Matus Fabian
8ca6ce6fe1 http: return more than data from server app
Server app could return headers in front of body/data buffer.
Offers apis for building and serialization of headers section.
HTTP layer now only add Date, Server and Content-Lengths headers,
rest is up to app. Well known header names are predefined.

Type: improvement

Change-Id: If778bdfc9acf6b0d11a48f0a745a3a56c96c2436
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-23 15:22:34 +00:00
Matus Fabian
e99d266612 hs-test: memory leak testing
add infra for memory leak testing

Type: test

Change-Id: I882e8dbb360597cdb82ad52682725f7d39b2df24
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-22 17:44:42 +00:00
Adrian Villin
09b19fe8a3 hs-test: fix docker log output when logs are empty
- removed "==> /dev/null <==" and "tail: cannot open..." lines
  when docker logs are empty

Type: test

Change-Id: Ia51f7aa41d2c6c04c0adcb82142abfd45fbe2728
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-19 14:08:19 +00:00
Adrian Villin
2514001377 hs-test: use docker sdk
Type: test

Change-Id: I9d6b15ca6a9aac3343e10f480dec43c4c538f1b7
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-17 18:20:54 +02:00
Adrian Villin
b69ee00c34 hs-test: minor cpu pinning suite improvements
- added max cpu check for CI
- added a check for Ip4AddrAllocator: fixes a case where teardown panics
  if a test crashes before allocator gets initialized

Type: test

Change-Id: Ica12366cd79d77801964dfbdc8ee7c9969b4a9ce
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-17 16:10:29 +00:00
Adrian Villin
aedfd7ca3d hs-test: exit immediately if docker build fails
Type: test

Change-Id: I299d023ce59b931697352c54e4796ba0af2ab1af
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-17 16:07:32 +00:00
Adrian Villin
63bdb31963 hs-test: quick fix for CpuPinningSuite
Type: test

Change-Id: Iaed08fe23a63562c99012bd469ca3f3271be2564
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-10 22:26:39 +00:00
Hadi Rayan Al-Sandid
e0e85134ad hs-test: Add CPU pinning test suite
Type: test

Added suite to verify that VPP launches with provided
CPU pinning configurations. CPU configuration is
specified per-test.

Change-Id: Ic283339676d3b24636fc21156a09a192c1a8d8da
Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
2024-07-09 20:14:28 +00:00
Dave Wallace
5874dd0365 hs-test: add missing packages to install-deps
Type: test

Change-Id: I2730debc7ea9256bf27208a2662f920edcd6826c
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-07-08 16:30:12 +00:00
Adrian Villin
5d171ebdc2 hs-test: CPU allocation improvements
- Release build runs on numa node0, debug on node1.
  Using the last digit of a build number to reserve 4 cores per test
  mmeans we can run 20 jobs (10 release, 10 debug) on the same machine,
  assuming we have 111 cores available (not counting core 0).
  Can be increased if needed, there are still some cores left.
- Added separate numa aware cpu allocation
- Added CPU0=true|false (useful for users with 4c/8t)

Type: test

Change-Id: Iba8e492a4e01a7f457e49112303887a2a27f6af9
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-08 16:27:38 +00:00
Adrian Villin
6d44aabe8d hs-test: cat summary file after a failed test run
- as per Florin's request

Type: test

Change-Id: Id76fda0e2dfac7e58b703a8d6f096aa7b5be31c7
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-28 05:38:07 +00:00
Hadi Rayan Al-Sandid
0eccf453c6 hs-test: return error if connecting to vpp fails
Type: fix

Fix case where no error code would be returned if vpp was launched,
but then exited due to invalid configuration.

Change-Id: I54d526629a2ee0206227615ffb6cb658779f93a0
Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
2024-06-25 14:59:36 +00:00
Matus Fabian
ed9843826a hs-test: move nginx tests into one file
Type: test

Change-Id: Ie525636c6299a8306cba45e72f8ee6c9da6d6e4f
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-06-24 19:05:38 +02:00
Adrian Villin
1fde999eec hs-test: added interrupt mode tests
Type: test

Change-Id: I327fa1a4ea23a3af3aa33e5260367426a11e7b4f
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-24 16:06:40 +00:00
Dave Wallace
5eaa15dd0e hs-test: cache docker build in local filesystem
- when running in the CI, cache the docker build layers
  in the local filesystem to allow docker executor images
  to contain cached docker build layers

Type: test
Change-Id: Ie728a8370d3fb8144d01dff566aaa846ca6fd81b
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-06-21 19:30:54 +00:00
Adrian Villin
b4516bbccf hs-test: fix LDPreloadIperfVppTest
- fixed ldpreload path (debug build)

Type: test

Change-Id: Ib2ab58b32ffd87a78189464b599f7bbc4f05c175
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-19 16:14:12 +00:00
Dave Wallace
bee28afbb2 hs-test: output docker build command for ci console log
- clean up shellcheck warnings
- rename extras/hs-test/test script
- add -x attribute to compress script for consistancy

Type: test

Change-Id: I5d1a9d16eeaff18562461b1e445e32ac696266d3
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-06-14 20:14:59 +00:00
Adrian Villin
4677d920c0 hs-test: separate infra from tests
- most functions and vars now start with a capital letter:
  needed to access them outside the package that declares
  them
- updated README.md
- very minor changes in MAKEFILE

Type: test

Change-Id: I4b5a194f08f09d59e372e57da6451fbb5a1de4da
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-14 18:10:26 +00:00
Adrian Villin
7d1e4a4ddb hs-test: added cleanup target
- Also added checkstyle-go and fixstyle-go to 'make help'

Type: make

Change-Id: I5402efa02bbbc54a20db8f54b0488c58a62ffaa1
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-13 16:28:56 +00:00
Matus Fabian
82ad9660be http: return more than url to server app
Provide all bytes as received from transport as data in the http
message to server. Additionally provide offset and length of target
path, target query, headers and body. Offers apis for parsing of
headers, percent decoding, target path/query syntax verification.

Type: improvement

Change-Id: Idbe6f13afa378650cc5212ea7d3f9319183ebbbe
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-06-13 06:35:26 +00:00
Adrian Villin
eaa7d91ad7 hs-test: improved suite teardown and replaced PIDs with PPIDs
- Fixed an issue where containers wouldn't stop and get removed when
  a test run is interrupted
- Replaced PIDs with Ginkgo process indexes + PPIDs
- Fixed CPU allocation for envoy and nginx-ldp containers
- All container logs should now get saved properly

Type: test

Change-Id: I4c737c1d326390494c0dda1ec6d3fc1f04f51663
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-12 23:38:25 +00:00
Adrian Villin
56387407c3 hs-test: added go style targets
- added checkstyle-go and fixstyle-go
- comments in stats_fs.go were missing a space

Type: make

Change-Id: I520acab5ff61eaf9d0ccfd9425bdc41f74559198
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-12 16:08:49 +00:00
Adrian Villin
681ff3a02a hs-test: added filenames to test names
- It is now possible to only run tests that are in a certain file

Type: test

Change-Id: I41665dd2bc0942c283be36a5af3e560fd65e9d03
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-10 16:42:38 +00:00
Matus Fabian
2d1f0e6c73 hs-test: HTTP download benchmarking
HttpTpsTest now use Gomega's gmeasure package and go internal http
client. With gmeasure you can create "Experiments" which can produce
reports to show the statistical distribution of measurement.
Potentially experiments can also be cached and used to identify
regression in performance.

Type: test

Change-Id: Id049fb0344d8ebed71b15e706b053b5c2a18e0de
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-06-10 15:28:53 +00:00
Renato Botelho do Couto
893dacae3f build: Use $(MAKE) instead of direct call to make
No functional changes, just make it to respect original make binary
name used to start building

Type: improvement

Change-Id: Ic8568237fbb39c6a0d3b7405a9670e9410aeb752
Signed-off-by: Renato Botelho do Couto <renato@netgate.com>
2024-06-10 13:13:31 +00:00
Florin Coras
07994a25e8 hs-test: more debug output in http3 test
Type: test

Change-Id: I4d2b949f5ef5446c04ca6f35b0bd659ce389170f
Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-06-06 03:08:27 -04:00
Adrian Villin
7ad37b5cf5 hs-test: keep ab/wrk containers alive until teardown
- Fixes errors while obtaining container logs on test failure
  (NginxPerf tests), ab/wrk containers are now stopped on test teardown
  like other containers.

Type: test

Change-Id: Ic336fcd3ed6bf68dd345d378262cb28eb5efc789
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-05 16:57:00 +00:00
Adrian Villin
f4972f9232 hs-test: fix coverage integration
- fixed 'make test-cov' not generating gcda files

Type: test

Change-Id: I9745c6501a97248ab343a5dbb39dddcc75f715fd
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-04 15:20:05 +00:00
Adrian Villin
05b0307962 hs-test: add libunwind dependency to nginx dockerfile
- Libunwind was missing in Dockerfile.nginx, causing some tests to fail.
  Tests that were temporarily disabled because of that issue
  are now re-enabled.

Type: test

Change-Id: I3f544be483784e8a7a1f22737cafca615b9f836b
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-03 04:58:58 -04:00
Adrian Villin
00e35ce8e0 hs-test: temp skip some tests
- Some tests are broken in the CI, skipping them
  for now

Type: test

Change-Id: I3d4efeee63b819956e5ffa1b3920e81962a2fcc9
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-05-31 10:55:40 -04:00
Adrian Villin
fd366b4da6 hs-test: container logging improvements
- Reduced the amount of error messages while obtaining container logs
  when a test fails by keeping track of started containers. NginxPerf
  tests still have those error messages, because wrk/ab containers shut
  themselves down before the test ends.

Type: test

Change-Id: I40a193345e5b46aec1834774f23aebc822eee885
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-05-31 06:46:52 -04:00
Dave Wallace
d1a5161200 hs-test: add libunwind dependency to vpp dockerfile
- missing from https://gerrit.fd.io/r/c/vpp/+/40929 due to hst not running in CI yet.

Type: fix

Change-Id: Ib5d9b877725624ef7de9f2be5e517609aec7c5a1
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-05-31 00:23:54 +00:00
adrianvillin
8512145d7c hs-test: added targets to makefiles to get coverage from HS tests
Type: make

Change-Id: Iae7998692890264dfeea98c165617d0efa024d42
Signed-off-by: adrianvillin <avillin@cisco.com>
2024-05-30 15:59:07 +00:00
Adrian Villin
93974e281e hs-test: set longer timeouts while debugging
Type: test

Change-Id: I87baba7efa36dd40f086523b35bc6d3b0a26a1b5
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-05-30 15:59:01 +00:00
Adrian Villin
b9464cde7d hs-test: pin CPUs to containers
Type: test

Change-Id: I412be2dec7ff352740e50e838e0ac466bf0a6674
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-05-30 15:58:18 +00:00
Matus Fabian
5409d33002 http_static: sanitize path before file read
Romove dot segments from requested target path before start reading
file in file handler to prevent path traversal.

Type: fix

Change-Id: I3bdd3e9d7fffd33c9c8c608169c1dc73423b7078
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-05-28 20:42:30 +00:00
Adrian Villin
0df582e8ec hs-test: fix CPU alloc when running in parallel
Type: test

Change-Id: I6062eddffb938880d9ec004c8418a9a731891989
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-05-23 15:48:50 +00:00
Adrian Villin
688ac5ae55 hs-test: fixed timed out tests passing in the CI
Type: test

Change-Id: Id05ea56bc5dfd80d42b8600cf11e763e25420bd0
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-05-17 16:47:00 +00:00
Matus Fabian
595d8cb668 http: ignore http_proxy env in tests
Type: test

Change-Id: I45a091a43e7ecb3f321fc9ecc761df2b44c9c351
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-05-17 11:28:43 +02:00
Adrian Villin
46d66000fb hs-test: updated api calls
Type: test

Change-Id: I2583ee74426ef154d03d4991b78ab57c5cec436f
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-05-17 03:11:13 +00:00
Matus Fabian
3d00893c37 http: notify client when connection failed
Type: fix

Change-Id: I87054e9667fe990d9a2dc3950bc3ce348460018a
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-05-14 22:38:23 +00:00
Matus Fabian
b7a9ed75fb http: fix server sending all status codes
Type: fix

Change-Id: I4bc748e3091c2fbe0142d1b74d21a543a62c4ce0
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-05-14 22:36:31 +00:00
Tom Jones
16cc51b88a netmap: Reinstate and update netmap plugin
Thet netmap plugin was moved to depreciated in commit 998b8fe.

On FreeBSD netmap offers a natively supported kernel interface for
userspace networking and enables VPP without the use of DPDK.

Reinstate the netmap plugin and adapt it to the newer plugin interface.

Type: improvement
Change-Id: I113daa33a490f04cbb29909f9789fa66284ac80e
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-05-14 07:15:12 +00:00
Adrian Villin
637edda132 hs-test: logging improvements
Type: test

Change-Id: Iffefe085e846b6ba614b0d74c4ba9907080a9a59
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-05-10 03:53:42 +00:00
Matus Fabian
2d1bc4c9fe hs-test: add make test-debug target
Run tests on vpp debug build.

Type: test

Change-Id: I51e6f4ac9449c1c5b7eb649af91347188f9227e1
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-05-09 10:46:58 +02:00
Matus Fabian
616201abe2 http: fix http server in response
App name is used in HTTP response Server header.

Type: fix

Change-Id: Ie3b2d985dd7d554a0352f7e602891f878bebd031
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-05-03 08:17:16 +02:00
Filip Tehlar
d894438f04 http: fix client receiving large data
HTTP client was relying on synchronous rx notifications to the client
app when moving lage data from underlying transport proto.
Recent change in session layer made such notifications asynchronous
making http client not working. This patch fixes the issue.

Type: fix

Change-Id: I4b24c6185a594a0fe8d5d87c149c53d3b40d7110
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-05-01 05:07:26 +00:00
Adrian Villin
fd9efaec17 hs-test: disable color output
Jenkins cannot display colors in console output

Type: fix

Change-Id: I5365dec471d773dae1f139c5fabd0711298f8bea
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-05-01 00:24:55 +00:00
Matus Fabian
18c9f14037 hs-test: fix cpu allocator
Effective CPUs file is different between cgroups v1 and v2.

Type: test

Change-Id: Ic1b9059435b3f0944624120f57e72da45adca223
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-04-29 15:44:41 +00:00