Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make e2e tests more robust #100

Merged
merged 6 commits into from
Feb 20, 2024
Merged

Commits on Feb 13, 2024

  1. test: Add NVME test

    This adds a NVME test to TestPCIIDs.
    
    Signed-off-by: Christophe Fergeau <[email protected]>
    cfergeau committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    373c318 View commit details
    Browse the repository at this point in the history
  2. test: Factor macOS version specific test code

    The loops over the macOS13-only tests and macOS14-only tests are exactly
    the same, this commit refactors them so that we have a single loop.
    
    Signed-off-by: Christophe Fergeau <[email protected]>
    cfergeau committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    a318dee View commit details
    Browse the repository at this point in the history
  3. test: Refactor ssh code

    This introduces a retrySSHDial and reworks the API used to connect to the
    VM over vsock/tcp. This will be useful in subsequent commits which will
    add a way to error out from the test if the vfkit process unexpectedly
    stopped.
    
    Signed-off-by: Christophe Fergeau <[email protected]>
    cfergeau committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    0253d86 View commit details
    Browse the repository at this point in the history
  4. test: Use select{} in retry loops

    Instead of a for{} loop with a time.Sleep, this commit switches to using
    select{} for retry loops. This is in preparation for catching unexpected
    exits of the vfkit process while running the test
    
    Signed-off-by: Christophe Fergeau <[email protected]>
    cfergeau committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    70b7406 View commit details
    Browse the repository at this point in the history
  5. test: Catch vfkit process exiting unexpectedly

    This commit an a go routine which will `Wait()` for the vfkit process.
    When it exits, it will push the corresponding error (or nil) to a
    channel.
    The code waiting for the VM to startup can then check for errors in
    their select{} retry loop, and fail acccordingly.
    
    This will make debugging test failures easier, as currently if the vfkit
    process dies early, the test appears to be taking a very long time
    without any indication as to what's going on.
    
    Signed-off-by: Christophe Fergeau <[email protected]>
    cfergeau committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    a38d84c View commit details
    Browse the repository at this point in the history
  6. test: Log vfkit output to a file

    This captures vfkit stdout/stderr to a file to help understand some test
    failures.
    This file is currently removed after the test ends, its path needs to be
    changed if one needs to look at it after.
    
    Signed-off-by: Christophe Fergeau <[email protected]>
    cfergeau committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    ae317e4 View commit details
    Browse the repository at this point in the history