From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8314 invoked by alias); 10 Nov 2011 12:44:01 -0000 Received: (qmail 8292 invoked by uid 9737); 10 Nov 2011 12:44:01 -0000 Date: Thu, 10 Nov 2011 12:44:00 -0000 Message-ID: <20111110124401.8290.qmail@sourceware.org> From: zkabelac@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2/test/lib aux.sh Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2011-11/txt/msg00041.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: zkabelac@sourceware.org 2011-11-10 12:44:00 Modified files: test/lib : aux.sh Log message: Add generic function to check for target version So the test script may use a simple line like i.e.: aux target_at_least dm-thin-pool 1 0 0 || skip aux target_at_least snapshot-origin 1 6 || skip Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/lib/aux.sh.diff?cvsroot=lvm2&r1=1.33&r2=1.34 --- LVM2/test/lib/aux.sh 2011/10/23 15:43:10 1.33 +++ LVM2/test/lib/aux.sh 2011/11/10 12:44:00 1.34 @@ -448,6 +448,39 @@ fi } +# +# Check wheter kernel [dm module] target exist +# at least in expected version +# +# [dm-]target-name major minor revision +# +# i.e. dm_target_at_least dm-thin-pool 1 0 +target_at_least() +{ + case "$1" in + dm-*) modprobe "$1" ;; + esac + + version=$(dmsetup targets 2>/dev/null | grep "${1##dm-} " 2>/dev/null) + version=${version##* v} + shift + major=$(echo $version | cut -d. -f1) + minor=$(echo $version | cut -d. -f2) + revision=$(echo $version | cut -d. -f3) + + test -z "$1" && return 0 + test -z "$major" && return 1 + test "$major" -gt "$1" && return 0 + test "$major" -lt "$1" && return 1 + test -z "$2" && return 0 + test -z "$minor" && return 1 + test "$minor" -gt "$2" && return 0 + test "$minor" -lt "$2" && return 1 + test -z "$4" && return 0 + test -z "$revision" && return 1 + test "$revision" -lt "$3" && return 1 +} + test -f DEVICES && devs=$(cat DEVICES) test -f LOOP && LOOP=$(cat LOOP)