Git init
[pkgs/e/elektra.git] / tests / test_script.sh
1 #!/bin/sh
2 #test_script.sh
3 #shell test suite for kdb command
4
5 #variables
6 nbError=0
7 nbTest=0
8
9 if [ "z$srcdir" = 'z' ]; then
10   HOME=.
11 else
12   HOME=$srcdir
13 fi
14 export HOME
15
16 VALUE="value"
17 ROOT="user/tests/script"
18 FILE="$HOME/.kdb/$ROOT/value"
19 DIR="$HOME/.kdb/$ROOT"
20 USER="`id -un`"
21 GROUP="`id -gn`"
22 DATE="`date \"+%b %d %H:%M\"`"
23
24 export KDB_DIR=".kdb"
25
26 #define succeed_if(x,y) nbTest++; if (!(x)) { nbError++; printf("%s:%d: error in %s: %s\n", __FILE__, __LINE__, __FUNCTION__, y);}
27 #succeed if the previous command was successful
28 succeed_if ()
29 {
30         if [ $? != "0" ]
31         then
32                 nbError=$(( $nbError + 1 ))
33                 echo error: $*
34         fi
35         nbTest=$(( $nbTest + 1 ))
36 }
37
38 #define exit_if_fail(x,y) nbTest++; if (!(x)) { printf("%s:%d: fatal in %s: %s\n", __FILE__, __LINE__, __FUNCTION__, y); exit(1); }
39 #fails and exits the program if the previous command failed
40 exit_if_fail ()
41 {
42         if [ $? != "0" ]
43         then
44                 echo fatal: $*
45                 exit 1
46         fi
47         nbTest=$(( $nbTest + 1 ))
48 }
49
50 echo
51 echo ELEKTRA SCRIPTS TESTS
52 echo
53
54 echo "testing set and get keys"
55
56 kdb -m "775" set $ROOT
57 exit_if_fail "could not set root"
58
59 [ -d "$DIR" ]
60 succeed_if "Directory not existing"
61
62 kdb set "$ROOT/value" "$VALUE"
63 exit_if_fail "could not set value"
64
65 [ -f "$FILE" ]
66 succeed_if "File not existing"
67
68 #echo "testing ls subcommand"
69
70 #[ "x`kdb ls $ROOT 2> /dev/null`" = "x$ROOT/value" ]
71 #succeed_if "cant ls $ROOT (may mean that $ROOT folder is not clean)"
72
73 #[ "x`kdb get $ROOT/value 2> /dev/null`" = "x$VALUE" ]
74 #exit_if_fail "cant get $ROOT/value"
75
76 #[ "x`kdb get -f $ROOT/value 2> /dev/null`" = "x$VALUE" ]
77 #succeed_if "-f option"
78
79 #[ "x`kdb get -d $ROOT/value 2> /dev/null`" = "x$ROOT/value=$VALUE" ]
80 #succeed_if "-d option"
81
82 #[ "x`kdb get -l $ROOT/value 2> /dev/null`" = "x$ROOT/value=$VALUE" ]
83 #succeed_if "-l option"
84
85 #[ "x`kdb get -s $ROOT/value 2> /dev/null`" = "xvalue=\"$VALUE\"" ]
86 #succeed_if "-s option"
87
88 kdb rm $ROOT/value
89 succeed_if "can remove user/test/value"
90
91 [ ! -f "$FILE" ]
92 succeed_if "File yet existing after delete"
93
94 kdb rm $ROOT
95
96 [ ! -d "$DIR" ]
97 succeed_if "Directory yet existing after delete"
98
99
100 #############
101 # xml tests
102 #############
103
104 echo "testing xml importing and exporting"
105
106 kdb import fstab.xml
107 succeed_if "importing fstab.xml failed"
108
109 kdb export user/tests/fstab > fstab-gen.xml
110 succeed_if "exporting user/tests/fstab failed"
111
112 diff fstab-gen.xml fstab-cmp.xml
113 succeed_if "xml files are not the same"
114
115 rm fstab-gen.xml
116 succeed_if "could not rm key-gen.xml"
117
118 kdb rm -r user/tests/fstab
119
120 echo test_script.sh RESULTS: $nbTest "test(s)" done $nbError "error(s)".
121 #exit $nbError
122