hashicorp / packer

Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.
http://www.packer.io
Other
14.98k stars 3.33k forks source link

packer_test: make packer test suite modular #13041

Open lbajolet-hashicorp opened 2 weeks ago

lbajolet-hashicorp commented 2 weeks ago

Having only one test suite for the whole of Packer makes it harder to segregate between test types, and makes for a longer runtime as no tests run in parallel by default.

This commit splits the packer_test suite into several components in order to make extension easier.

First we have lib: this package embeds the core for running Packer test suites. This ships facilities to build your own test suite for Packer core, and exposes convenience methods and structures for building plugins, packer core, and use it to run a test suite in a temporary directory.

Then we have two separate test suites: one for plugins, and one for core itself, the latter of which does not depend on plugins being compiled at all.

This sets the stage for more specialised test suites in the future, each of which can run in parallel on different parts of the code.