tsetup - tomb - the crypto undertaker
HTML git clone git://parazyd.org/tomb.git
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
tsetup (3315B)
---
1 #!/usr/bin/env zsh
2 #
3 # Copyright (C) 2007-2016 Dyne.org Foundation
4 #
5 # Tomb test units by Denis Roio <jaromil@dyne.org>
6 #
7 # This source code is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU Public License as published by
9 # the Free Software Foundation; either version 3 of the License, or
10 # (at your option) any later version.
11 #
12 # This source code is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Please refer
15 # to the GNU Public License for more details.
16 #
17 # You should have received a copy of the GNU Public License along with
18 # this source code; if not, write to: Free Software Foundation, Inc.,
19 # 675 Mass Ave, Cambridge, MA 02139, USA.
20 #
21
22 #
23 # This file should be sourced by all test-scripts
24 #
25
26 # Project directory
27 TEST_HOME="$(pwd)"
28 EXT_HOME="$(dirname "$TEST_HOME")"
29 PROJECT_HOME="$(dirname "$EXT_HOME")"
30
31
32 # Sharness config
33 export SHARNESS_TEST_EXTENSION="sh"
34 source ./sharness
35 TMP="/tmp/tomb"
36
37
38 # Check Tomb sources
39 T="$PROJECT_HOME/tomb" # Can link to old tomb version
40 TOMB_BIN="${T}" # Always to the dev version
41 if [[ ! -e "${T}" ]]; then
42 echo "Could not find tomb command"
43 exit 1
44 fi
45
46 MEDIA="/media"
47 [[ -d "/media" ]] || MEDIA="/run/media/$USER"
48
49 # Check for auxiliary programs
50 command -v steghide > /dev/null && test_set_prereq STEGHIDE
51 command -v e2fsck resize2fs > /dev/null && test_set_prereq RESIZER
52 command -v tomb-kdb-pbkdf2 > /dev/null && test_set_prereq KDF
53 command -v qrencode > /dev/null && test_set_prereq QRENCODE
54 command -v lsof > /dev/null && test_set_prereq LSOF
55
56
57 # GnuPG config
58 unset GNUPGHOME
59 unset GPG_AGENT_INFO
60 export GNUPGHOME="$TEST_HOME/gnupg/"
61 export KEY1="A4857CD176B31435F9709D25F0E573B8289439CD"
62 export KEY2="0B2235E660753AB0475FB3E23DC836481F44B31E"
63 chmod 700 "$GNUPGHOME"
64
65
66 # Dummy passwords used in the tests suite
67 export DUMMYPASS=test
68 export DUMMYPASSNEW=changetest
69
70
71 # Test helpers
72
73 test_cleanup() {
74 "${T}" slam all &> /dev/null
75 rm -f "/home/$USER/dyne-tomb-bind-test-"*
76 sudo rm -rf "$TMP"
77 mkdir -p "$TMP"
78 }
79
80 test_export() {
81 export testname="$1"
82 export tomb="$TMP/$testname.tomb"
83 export tomb_key="$TMP/$testname.tomb.key"
84 export tomb_key_new="$TMP/$testname.new.tomb.key"
85 export tomb_key_steg="$TMP/$testname.steg.tomb.key"
86 export tomb_img="$TMP/$testname.jpg"
87 }
88
89 tt() {
90 start_loops=(`sudo losetup -a |cut -d: -f1`)
91 start_temps=(`find /dev/shm -name 'tomb*'`)
92 "${T}" -D ${=@}
93 res=$?
94 loops=(`sudo losetup -a |cut -d: -f1`)
95 temps=(`find /dev/shm -name 'tomb*'`)
96
97 { test "${#start_loops}" = "${#loops}" } || {
98 print "loop device usage change to ${#loops}" }
99 { test "${#start_temps}" = "${#temps}" } || {
100 print "temp files usage change to ${#temps}" }
101 print " Tomb command returns $res"
102 return $res
103 }
104
105 tt_dig() { tt dig "$tomb" "${@}"; }
106 tt_forge() { tt forge "$tomb_key" --ignore-swap --unsafe --use-urandom "${@}"; }
107 tt_lock() { tt lock "$tomb" -k "$tomb_key" --ignore-swap --unsafe "${@}"; }
108 tt_open() { tt open "$tomb" -k "$tomb_key" --ignore-swap --unsafe "${@}"; }
109 tt_close() { tt close "$testname" "${@}"; }
110
111 tt_set_ownership() {
112 local dir="$1"
113 local uid=$(id -u $USERNAME)
114 local gid=$(id -g $USERNAME)
115 sudo chown -R "$uid:$gid" "$dir"
116 sudo chmod 0711 "$dir"
117 }