734 Commits

Author SHA1 Message Date
Matus Fabian
82b3cc1826 http: connection upgrade mechanism
Handle "Connection" and "Upgrade" headers in http transport layer which
are used to create a tunnel for some other protocol on the same
connection.

Type: improvement

Change-Id: Icf5479f36fbcc7259b157eaad957211be5ea2aae
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-12-10 05:10:41 +00:00
Matus Fabian
c4b4cd5e77 hs-test: arm support
CPU arch dependencies cleanup. Everything works fine apart from
redis-benchmark test.

Type: test

Change-Id: I4a1e7d3bce994f6ea0681e06955ef9c621468642
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-12-10 05:06:06 +00:00
Adrian Villin
8b2a67c8f3 hs-test: improved iperf testing
- set iperf to json output
- added iperf json parsing function
- we can now check if iperf transferred more than X megabytes
  (other asserts can be added)

Type: test

Change-Id: I560104a153456b46f22a1affee4301018063b99d
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-12-10 05:03:54 +00:00
Adrian Villin
a661b90a4c hs-test: remove client app retries
- simple fix to avoid apps trying to start after a test
  timeout/interrupt

Type: test

Change-Id: I4e6fcbb2bb00c07e35cda1ebf6fcb76a913f7a32
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-12-10 05:03:54 +00:00
Matus Fabian
3d0b4ab20c http: http_decap_udp_payload_datagram fix
Properly handle incomplete capsule.

Type: fix

Change-Id: Ied7fca861f02e401451beaff09e612bcf471d8e0
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-12-08 22:56:40 +00:00
Adrian Villin
3628353e09 hs-test: added ldp iperf tcp test
- renamed other iperf tests

Type: test

Change-Id: I9cc7b49f23e9e0c6a01d2f74aef722d580478f75
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-11-27 16:52:42 +00:00
Adrian Villin
f9f5717633 hs-test: don't use reserved UDP ports for binding
Type: test

Change-Id: Ief0d238bbbf533779618b971f01099aa113c1c08
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-11-27 16:51:38 +00:00
Adrian Villin
d05f16d124 hs-test: added multithreaded vpp proxy tests
- if a test is named '...MTTest', 3 cpus will be allocated to vpp
- updated docs

Type: test

Change-Id: I756dfb6cdbff4368d606ca3abbc1a510cd1d6b51
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-11-22 22:24:37 +00:00
Adrian Villin
ff36307b5b hs-test: added tls tcp iperf test
Type: test

Change-Id: I7ed1a6dea644eb19b8022db07344503121e61517
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-11-21 19:03:12 +00:00
Adrian Villin
d74e440f2f hsa: added request repeating to http client
- added request repeating (repeat <count>|duration <seconds>)
- added basic stats

Type: feature

Change-Id: Ic69eac8029eac31ea5ace5b5c0da1ce7a3543ac0
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-11-21 07:52:58 +00:00
Matus Fabian
aa488dd3f7 hs-test: udp proxy testing infra
Type: test

Change-Id: Ib32a48429312a771c6ebe8022c7bdbccdde3a36f
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-11-18 20:06:40 +00:00
Matus Fabian
80ae7e5307 hs-test: reduce curl image size
before:
REPOSITORY    TAG      IMAGE ID       CREATED          SIZE
hs-test/curl  latest   4eededa5f68a   27 minutes ago   973MB

now:
REPOSITORY    TAG      IMAGE ID       CREATED              SIZE
hs-test/curl  latest   1a8faf0cbf8b   About a minute ago   110MB

Type: improvement

Change-Id: I7da5f5f26c3738e022225b1bb66d75f748074496
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-11-14 19:00:59 +00:00
Matus Fabian
1c9d1de9bc http: state machine improvement
Split in two, one for rx and second for tx, which is more suitable for
http tunnels. Updated state names too, some of them were bit confusing.

Type: improvement

Change-Id: I2310deaa49196819f9d8147a5d9af188465dbd65
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-11-14 18:59:45 +00:00
Matus Fabian
1fe2501702 hs-test: fix memleak testing
Type: fix

Change-Id: I8d88fc5ccb37cc18c785b5dca47c7f66afefb73a
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-11-14 18:25:31 +00:00
Adrian Villin
5a612a4699 hsa: added GET method to client
Type: improvement

Change-Id: I46f7e1e2b509a463ff4b2492bf6412b67a1afdc4
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-11-04 18:07:10 +00:00
Matus Fabian
afce287645 http: CONNECT method for tunnelling
Type: improvement

Change-Id: I6af16ddcc6734bb831227ce65cb39e87294fc4cd
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-11-01 22:25:45 +00:00
Matus Fabian
769a3b7256 http: "absolute-form" target URL parsing
Type: improvement

Change-Id: If39680a148d39add40433547369b2ddad3c2e226
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-29 17:26:04 +01:00
Ole Troan
8987d3a4ca vppapigen: fix f-string in crcchecker
Type: fix
Change-Id: I9ae35b34cfd7de96726aa0b45987a896783ef7e0
Signed-off-by: Ole Troan <otroan@employees.org>
2024-10-26 02:17:10 +00:00
Matus Fabian
841672258a http: pass timeout using extended config
App can now pass http connection timeout using extended configuration,
ext cfg type TRANSPORT_ENDPT_EXT_CFG_HTTP, value (in seconds) set in ext
cfg member opaque.
It is optional, default value is 60 seconds.

Type: improvement

Change-Id: Ibeff4bbd3153421be350ff564ec3c8e52e5b9639
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-25 23:33:15 +00:00
Adrian Villin
514098ee82 hs-test: various improvements
- fixed timed out/panicked tests not copying logs to CI archives
- fixed log formatting
- renamed SuiteTimeout to TestTimeout
- fixed ginkgo node leak on test timeout -> added AssertChannelClosed
- updated docs

Type: test

Change-Id: Ia71d765bd61576230a4cfd26d4b14fd1be1692c7
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-10-15 16:49:40 +00:00
Matus Fabian
15106becc5 http: Content-Length value parsing improvement
Type: improvement

Change-Id: Ida8ca43b5fed41fc0b13a2dde97e7e35c55283c9
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-14 19:26:45 +00:00
Matus Fabian
6885d5f9eb hs-test: http_static wrk tests
Type: test

Change-Id: I87cddb88f2a62e79d66832827134ddaa95740839
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-14 17:05:49 +00:00
Adrian Villin
2acdf1e629 hs-test: added dry run mode
- DRYRUN=true will set up most containers. Some need to be started
  manually (curl, nginx...). The framework will create a vpp-config
  file with interface configs that will get executed on VPP startup.
- set Ginkgo to use -v instead of -vv when running a single test
- s.Log() now supports formatting
- added 'useEnvVars' parameter to container.Exec

Type: test

Change-Id: Id1da7947a1448ee4b74b86cc4f243442256a5ba8
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-10-10 15:50:15 +00:00
Adrian Villin
f151640bb1 hs-test: support running multiple specific tests
- make test TEST=[test1],[test2] runs those two tests in random order

Type: test

Change-Id: I1a1af7c99ef7867ca94cec4175605f428dcd58fd
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-10-09 11:03:35 +02:00
Matus Fabian
a3efc38e15 hs-test: force test failure when vpp core present
Type: test

Change-Id: I874ee185a51dda9b620f3b783e466b8e88600d18
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-07 17:27:26 +00:00
Florin Coras
89969288d3 hs-test: fix core_pattern volume mounts
If system is configured to use something like apport, avoid mounting.

Type: fix

Change-Id: I6af900bd334acba974c9c4ae30c3b2ce26d1f49b
Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-10-04 05:40:15 +00:00
Matus Fabian
fa5defdc2d hs-test: prom consecutive connections test
Type: test
Change-Id: Ide4571dd8ac9bcb64fcd5ba408b6d1f99d34185f
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-03 19:25:21 +00:00
Adrian Villin
46ab0b22bb hs-test: added nginx multi-thread tests
- added Dockerfile.envoy
- removed nginx vcl.conf file as it's created by
  the framework now

Type: test

Change-Id: I5f2be015c864c8d2aa938a22b1abece64989999b
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-10-03 19:23:49 +00:00
Adrian Villin
7bae9b0e82 hs-test: use nginx 1.26.2 for NginxHttp3Test
- test is no longer marked as extended
- no building required -> removed nginx build scripts

Type: test

Change-Id: I1814b1e4b7e514f81797efa3b5c1e818d2fe4cda
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-10-03 04:56:10 +00:00
Adrian Villin
5a4c7a9ce4 hs-test: replaced gofmt with goimports
- goimports properly formats imports

Type: test

Change-Id: I78c162dd552fd3ee3d59955d7ea215af30601425
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-09-28 02:11:59 +00:00
Matus Fabian
05f7137389 hs-test: proxy testing improvements
- nginx and curl timeouts are extended if debug flag is set
- added write-out for curl (outputs extra info after transfer is done)

Type: test

Change-Id: I3f6c336a14cd00b9ae8669d2fa26e00709162100
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-09-20 16:06:17 +00:00
Matus Fabian
147585e7f6 hs-test: debugging utility methods
Type: test

Change-Id: I0c7e8424e53f1ad1896cd8439027e6081ccfeb28
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-09-20 10:44:08 +02:00
Adrian Villin
3ecd6840af hs-test: containerize iperf tests
Type: test

Change-Id: I2c0bb76d96ccadd5ecfd6a04565420855043699e
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-09-18 18:09:44 +00:00
Aritra Basu
70d2a08e7e vcl: add http support to vcl_test_protos
Type: improvement

Change-Id: Ibb493f1d7713d0e10b8bd1d5ff17b89967b53b8a
Signed-off-by: Aritra Basu <aritrbas@cisco.com>
2024-09-17 15:59:00 +00:00
Matus Fabian
5b175eca2d hs-test: upload via proxy tests
Type: test
Change-Id: Id6b4e2348735081c827f814a814c976b601432ec
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-09-10 16:35:23 +00:00
Matus Fabian
9bb0762357 http: large POST handling
Type: improvement
Change-Id: I28b8e8ccbff6f97e669b0048011b187decbfc892
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-09-08 22:41:27 +00:00
Matus Fabian
56cefc89e2 http: http_state_wait_app_reply improvement
set http status according to whether app also sent the body

Type: improvement
Change-Id: Ia41603cc21b410ca6929ec3d3e7c4c6808305769
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-08-28 06:08:04 +00:00
Adrian Villin
d01a63abd4 hs-test: added a redis-benchmark test
- basically a copy of LdpIperf test
- small update of LdpIperf test
- new LDP suite

Type: test

Change-Id: I3f8653288c6fc6dfd6a061315e983c000974d3ff
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-08-27 19:05:36 +00:00
Matus Fabian
a647a83496 hs-test: http tests improvement
- added http specific asserts
- added helper functions to NoTopoSuite

Type: test
Change-Id: I0a7e77ed3ffd938aa3eaa37ed5432fbaab0dab64
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-08-26 18:03:31 +02:00
Matus Fabian
62b508b396 hs-test: failed summary fix
Remove failed-summary.log from the previous run, otherwise it might be
displayed if all tests pass.

Type: test
Change-Id: I435de37e298105ed5b92012fe4da3cda3a0670b6
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-08-26 11:59:16 +02:00
Matus Fabian
69123a3f67 http: status line parsing fix
Request line must only start with method name and server should
ignore at least one empty line (CRLF) received prior to the
request-line.

Type: fix
Change-Id: Ifebd992dc4c13df1a3fabfcdef9e7ee644150a21
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-08-23 17:59:46 +00:00
Matus Fabian
4306a3e8f4 hs-test: core dump improvement
- load vpp plugin libraries path in gdb
- if core dump deceted change message in summary and show bt

Type: test
Change-Id: If5d44d29703edd16c816efc9d29e6a7a1b20613a
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-08-23 15:52:54 +02:00
Matus Fabian
225e6f86a4 hs-test: assert improvement
Use ExpectWithOffset so Ginkgo's output point to the line in your test.

Type: test
Change-Id: Icb32c5be683f935a5e86f25c2ec5a6dfad2ec1ea
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-08-23 05:56:33 +00:00
Adrian Villin
399d44074b hs-test: fix incorrect exit status
- exit status was incorrect when tests didn't compile
- better summary formatting
- removed "full stack trace: null" from summary when a test times out

Type: test

Change-Id: Idd6b6bf3429fc8b704dd2345d257e9bdce1b82b7
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-08-22 11:53:13 +00:00
Matus Fabian
56f5bd9985 hs-test: fix after merge
Type: test
Change-Id: I2a1d35a9e7a6c8e8026388a0baacbc18310f0ba1
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-08-22 11:40:10 +00:00
Matus Fabian
7301abe9ba hs-test: nginx proxy/mirroring test cleanup
- test moved to proxy_test.go
- topology and suite updated to be vpp/envoy proxy compliant

Type: test
Change-Id: Iabee50b76bb8d96851f831c0b57d0e98dc4b3a5f
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-08-22 07:08:20 +00:00
Adrian Villin
7e6606ab4e http_static: added last-modified header
Type: improvement

Change-Id: I492df92ef25f9c0cd57fc8980500b58bebaa94c6
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-08-22 06:09:43 +00:00
Matus Fabian
8792e5c5c5 hs-test: proxy testing improvement
- new container topologies and suites for VPP proxy and Envoy proxy
- removed build docker image since it can't be used with CI cache
  builder, container builders are designed to be stateless, they
  only preserve build-cache, but not images

Type: test
Change-Id: I93e4d079780d18d6aa3b5ce807adc4707b6f2d9b
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-08-22 03:25:19 +00:00
Adrian Villin
58cb6ba818 hs-test: fix vppinstance logs and disable trace
- fixed a bug where vppinstance logs would concatenate -> each test now
  has its own bind mount
- removed "--trace" flag to avoid skipped tests printing a full
  stack trace. They are now only printed in the summary.

Type: test

Change-Id: Ib7f4254717cc798e456b9fca6f81685c8153ee2d
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-08-21 15:38:19 +00:00
Adrian Villin
4995d0da8c hs-test: generate core dump, fix docker logs in CI
Type: test

Change-Id: Ie1f66cdc061d3eccefc2ce58e977d88a33340038
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-08-21 15:38:19 +00:00