1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
From dac703b26c71cd8479b71d101c4e1ddb8eadc194 Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Mon, 24 Mar 2008 03:14:02 -0400
Subject: [PATCH] add back KV_* funcs
---
sh/functions.sh.in | 35 +++++++++++++++++++++++++++++++++++
sh/runtests.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 80 insertions(+), 0 deletions(-)
diff --git a/sh/functions.sh.in b/sh/functions.sh.in
index 140f6dc..0522792 100644
--- a/sh/functions.sh.in
+++ b/sh/functions.sh.in
@@ -65,6 +65,41 @@ get_bootparam()
return 1
}
+KV_major() {
+ [ -z "$*" ] && return 1
+ local KV="$*"
+ echo ${KV%%.*}
+}
+
+KV_minor() {
+ [ -z "$*" ] && return 1
+ local KV="$*"
+ KV=${KV#*.}
+ echo ${KV%%.*}
+}
+
+KV_micro() {
+ [ -z "$*" ] && return 1
+ local KV="$*"
+ KV=${KV#*.*.}
+ echo ${KV%%[![:digit:]]*}
+}
+
+KV_to_int() {
+ [ -z "$*" ] && return 1
+ local KV_MAJOR="$(KV_major "$*")"
+ local KV_MINOR="$(KV_minor "$*")"
+ local KV_MICRO="$(KV_micro "$*")"
+ local KV_int="$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO ))"
+ echo "${KV_int}"
+}
+
+_RC_GET_KV_CACHE=""
+get_KV() {
+ [ -z ${_RC_GET_KV_CACHE} ] && _RC_GET_KV_CACHE=$(uname -r)
+ echo $(KV_to_int "${_RC_GET_KV_CACHE}")
+}
+
_sanitize_path()
{
local IFS=":" p= path=
diff --git a/sh/runtests.sh b/sh/runtests.sh
index d0d6a17..debcf4f 100755
--- a/sh/runtests.sh
+++ b/sh/runtests.sh
@@ -3,6 +3,19 @@
top_srcdir=${top_srcdir:-..}
. ${top_srcdir}/test/setup_env.sh
+checkit() {
+ local output=$($1 $3)
+ local lret=$?
+ if [ ${lret} -ne 0 ] ; then
+ ((tret+=lret))
+ echo "FAIL: exec: $*"
+ fi
+ if [ "${output}" != "$2" ] ; then
+ ((tret+=lret))
+ echo "FAIL: output: $* : got='${output}' wanted='$2'"
+ fi
+}
+
ret=0
tret=0
@@ -22,4 +35,36 @@ done
eend ${tret}
((ret+=tret))
+compare_int() {
+ local got=$(KV_to_int $1)
+ local exp=$(KV_to_int $3)
+ if ! [ ${got} $2 ${exp} ] ; then
+ ((tret+=1))
+ echo "FAIL: KV_to_int '${v}'(${got}) $2 '1.2.2'(${exp})"
+ fi
+}
+
+tret=0
+ebegin "Testing KV_{major,minor,micro,to_int}"
+for v in \
+ 1.2.3 1.2.3-rc0 1.2.3_rc0 "1.2.3 rc0" \
+ 1.2.3.4 1.2.3.4-rc0 1.2.3.4_rc0 "1.2.3.4 rc0"
+do
+ checkit KV_major 1 ${v}
+ checkit KV_minor 2 ${v}
+ checkit KV_micro 3 ${v}
+
+ compare_int 1.2.2 -lt ${v}
+ compare_int 1.2.2.10 -lt ${v}
+ compare_int 1.2.4 -gt ${v}
+ compare_int 1.2.4-rc0 -gt ${v}
+ compare_int 1.2.3 -eq ${v}
+ compare_int 1.2.3-rc0 -eq ${v}
+ compare_int 1.2.3.2 -eq ${v}
+ compare_int 1.2.3.3 -eq ${v}
+ compare_int 1.2.3.4 -eq ${v}
+done
+eend ${tret}
+((ret+=tret))
+
exit ${ret}
--
1.5.4.4
|