Skip to content

Automate test harness and integrate into build process #1416

@binarylogic

Description

@binarylogic

The Vector test harness is a blackbox test suite that allows for full end-to-end integration testing on log forwarders/routers (not just Vector). It allows for 3 types of tests:

  1. Ephemeral performance tests
  2. Ephemeral correctness tests
  3. Long-running reliability tests

1 and 2 should are finite tests, 3 runs indefinitely. Each time Vector is released we should test it on this suite and compare it to previous versions. Keep in mind, test data is persisted on S3, and standard Athena SQL queries can be run to compare results. This is what the compare and cohort commands do.

Prior art

  1. Option::{expect,unwrap} and Result::{expect, expect_err, unwrap, unwrap_err} have #[track_caller] rust-lang/rust#67887 (comment)

Design

  1. I'm open to the design of this features. We use CircleCI for Vector itself, but I would not be oppsed to experimenting with Github actions if we find it to be easier. Especially if it's easier to comment on pull requests, etc.
  2. You have liberty to change anything in the vector-test-harness repo. I originally built that and I am not an operations expert.

Requirements

  • Ability to manually test new Vector versions, ideally within a pull request. We would then wait to merge the PR until we have manually verified that there are no regressions.
  • Bonus points if we can post the results as a comment on the PR or in a Slack message.

Metadata

Metadata

Assignees

Labels

domain: testsAnything related to Vector's internal teststype: taskGeneric non-code related tasks

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions