From 68a04dce41a7d9a42a87ff5aa7ad2b7206e69b02 Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Thu, 19 Nov 2015 14:45:17 +0100 Subject: tests-api: new 'dtf prereq pkg missing' added * bin/dtf-gen (DG): Allow to be overridden from environment. * share/dtf/lib/tests (dtf_pkg): Merge similar functions into one. (dtf_pkg_install): Use dtf_pkg. (dtf_pkg_remove): New function. (__dtf_prereq_pkg): Handle 'missing' argument. --- share/dtf/lib/tests | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) (limited to 'share/dtf/lib') diff --git a/share/dtf/lib/tests b/share/dtf/lib/tests index 1aa376a..3f104cb 100644 --- a/share/dtf/lib/tests +++ b/share/dtf/lib/tests @@ -95,16 +95,42 @@ dtf_assert () } -dtf_pkg_install () +dtf_pkg () { - __dtf_assert_nargs 1 'dtf_pkg_install' ${1+"$@"} - - _d_pkg_inst=$1 ; shift + __dtf_assert_nargs 2 'dtf_pkg' ${1+"$@"} + _d_action=$1 ; shift + _d_pkg=$1 ; shift dtf_assert root - # {{ "\n " + commands.pkginstaller.install(['"$_d_pkg_inst"'], {'docs': True}) }} + case $_d_action in + remove) + # {{ "\n " + commands.pkginstaller.remove(['"$_d_pkg"'], {'docs': True}) }} + ;; + install) + # {{ "\n " + commands.pkginstaller.install(['"$_d_pkg"'], {'docs': True}) }} + ;; + *) + dtf_fail "dtf_pkg: unimplemented action '$_d_action'" + ;; + esac +} + + +dtf_pkg_install () +{ + __dtf_assert_nargs 2 'dtf_pkg_install' ${1+"$@"} + _d_pkg_rem=$1 ; shift + dtf_pkg remove "$_d_pkg_inst" + test $? -eq 0 || dtf_fail "can't remove '$_d_pkg_inst' package" +} + +dtf_pkg_remove () +{ + __dtf_assert_nargs 1 'dtf_pkg_install' ${1+"$@"} + _d_pkg_inst=$1 ; shift + dtf_pkg install "$_d_pkg_inst" test $? -eq 0 || dtf_fail "can't install '$_d_pkg_inst' package" } @@ -116,11 +142,17 @@ __dtf_prereq_pkg () _d_subaction=$1 ; shift _d_pkg=$1 ; shift + __dtf_debug "making sure $_d_pkg is $_d_subaction" + case $_d_subaction in installed) dtf_pkg_installed "$_d_pkg" && return 0 dtf_pkg_install "$_d_pkg" ;; + missing) + dtf_pkg_installed "$_d_pkg" || return 0 + dtf_pkg_remove "$_d_pkg" + ;; *) dtf_fail "dtf_prereq pkg: not implemented action $_d_subaction" ;; -- cgit