This patch significantly overhauls the BATS tests for building mixes,
with the goal of reducing redundancy and increasing accuracy.
Each of the following concepts is only tested once:
- Building a mix with a full, real upstream bundle
- Updating the version of a mix (technically tested twice)
- Adding a bundle to a mix
- Removing a bundle from a mix
- Building a mix with a custom local bundle
- Adding a custom package to an upstream bundle
- Adding an upstream package to a custom bundle
Because all but one of the tests use stripped down versions of upstream
bundles for efficiency, they all test:
- Building a mix with a local, edited upstream bundle
This dramatically reduces the number of actual builds that occur.
The test descriptions accurately describe what the tests are actually
doing, and they report if they are using stripped down versions of upstream
bundles.
Signed-off-by: Kevin C. Wells <kevin.c.wells@intel.com>
The mixerlib file and the CLEANDIRS variable in all of the individual
bat Makefiles still pointed to the old "local" and "rpms" directories in
some locations.
This, made 'make batclean' not clean up directories correctly. This likely
made some of the tests not actually do what they were supposed to do, as it
was looking for rpms in 'local-rpms', but putting them in 'rpms'.
This patch also updates the url for the "json-c" rpm, as the previous url no
longer is active and was to a source rpm.
Signed-off-by: Kevin C. Wells <kevin.c.wells@intel.com>
Recent changes deprecated the use of individual bundle chroots when
building bundle contents and moved away from using yum to using dnf.
Because of this much of our variable and file names and comments were
inconsistent with the implementation.
This includes a change to make 'mixer build chroots' an alias to 'mixer
build bundles' and updates to the bat tests to call the new 'mixer build
bundles' command. This is not a breaking change since 'mixer build
chroots' behaves the way it always has (except internally with the
recent changes mentioned).
Signed-off-by: Matthew Johnson <matthew.johnson@intel.com>
Touch mixbundles so it does not get autopopulated by init, and use
os-core in the builder.conf so we do not have to include os-core-update.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
These tests should be reporting on the structure and correctness of mixer
and its user interface. Due to them running very slowly on the Travis CI
environment, they are not run by default, but can be run locally with
make batcheck.
This patch also introduces a docker container to do the build, so we do not
have to worry about running this in different environments such as Travis
CI. The tests are thus confined to a strict, well-known workspace,
and we can avoid many dependency problems.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>