# NOTE: source this file from a BATS test case file # This library defines functions to use in the BATS test files during a local # test run with 'make check'. LOGDIR="$BATS_TEST_DIRNAME/logs" LOCAL_BUNDLE_DIR="$BATS_TEST_DIRNAME/local-bundles" CLRVER=$(curl https://download.clearlinux.org/latest) CLR_BUNDLES="$BATS_TEST_DIRNAME/upstream-bundles/clr-bundles-$CLRVER/bundles" BUNDLE_LIST="$BATS_TEST_DIRNAME/mixbundles" mkdir -p $LOGDIR global_setup() { : # Put content here for it to run for all tests } localize_builder_conf() { mixer $MIXARGS config set Mixer.LOCAL_RPM_DIR $BATS_TEST_DIRNAME/local-rpms mixer $MIXARGS config set Mixer.LOCAL_REPO_DIR $BATS_TEST_DIRNAME/local-yum } # Initializes a mix with the desired versions. Then for efficiency converts # builder.conf to use os-core for the "update bundle", strips os-core to just # the filesystem, and adds only os-core to the mix mixer-init-stripped-down() { mixer $MIXARGS init --clear-version $1 --mix-version $2 --no-default-bundles sed -i 's/os-core-update/os-core/' $BATS_TEST_DIRNAME/builder.conf echo "filesystem" > $LOCAL_BUNDLE_DIR/os-core mixer $MIXARGS bundle add os-core } mixer-versions-update() { mixer $MIXARGS versions update --mix-version $1 --upstream-version $2 } mixer-mixversion-update() { mixer $MIXARGS versions update --mix-version $1 } mixer-upstream-update() { mixer $MIXARGS versions update --upstream-version $1 } mixer-build-bundles() { sudo -E mixer $MIXARGS build bundles --config $BATS_TEST_DIRNAME/builder.conf } mixer-build-update() { sudo -E mixer $MIXARGS build update --config $BATS_TEST_DIRNAME/builder.conf } mixer-build-update-minversion() { sudo -E mixer $MIXARGS build update --config $BATS_TEST_DIRNAME/builder.conf --min-version $1 } mixer-build-all() { sudo -E mixer $MIXARGS build all --config $BATS_TEST_DIRNAME/builder.conf } mixer-build-delta-packs() { sudo -E mixer $MIXARGS build delta-packs --config $BATS_TEST_DIRNAME/builder.conf --previous-versions $1 } mixer-build-delta-manifests() { sudo -E mixer $MIXARGS build delta-manifests --config $BATS_TEST_DIRNAME/builder.conf --previous-versions $1 } mixer-build-format-bump-new() { sudo -E mixer $MIXARGS build format-bump new --new-format $1 } mixer-build-format-bump-old() { sudo -E mixer $MIXARGS build format-bump old --new-format $1 } mixer-build-format-bump() { sudo -E mixer $MIXARGS build format-bump --new-format $1 } mixer-build-upstream-format-bump() { sudo -E mixer $MIXARGS build upstream-format --new-format $1 } mixer-add-rpms() { mkdir -p $BATS_TEST_DIRNAME/local-yum $BATS_TEST_DIRNAME/local-rpms sudo -E mixer $MIXARGS add-rpms --config $BATS_TEST_DIRNAME/builder.conf } create-empty-local-bundle() { mixer bundle create $1 } add-package-to-local-bundle() { echo $1 >> $LOCAL_BUNDLE_DIR/$2 } remove-package-from-local-bundle() { sed -i "/$1/d" $LOCAL_BUNDLE_DIR/$2 } mixer-bundle-add() { mixer $MIXARGS bundle add $1 } mixer-bundle-remove() { mixer $MIXARGS bundle remove $1 } get-current-version() { latest=$(curl https://download.clearlinux.org/latest) echo $latest } get-current-format() { latest=$(get-current-version) format=$(curl https://download.clearlinux.org/update/$latest/format) echo $format } get-last-format-boundary() { format=$(get-current-format) first=$(curl https://download.clearlinux.org/update/version/format$format/first) echo $(($first-10)) } setup-dnf() { mkdir -p $BATS_TEST_DIRNAME/../../dnf [ -f $BATS_TEST_DIRNAME/../../dnf/dnf-mix.conf ] && return cat > $BATS_TEST_DIRNAME/../../dnf/dnf-mix.conf <