File: regtest

package info (click to toggle)
rsyncrypto 1.14-1.2
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 1,552 kB
  • sloc: cpp: 3,459; sh: 1,221; makefile: 29
file content (132 lines) | stat: -rwxr-xr-x 3,793 bytes parent folder | download | duplicates (4)
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
121
122
123
124
125
126
127
128
129
130
131
132
#!/bin/bash

set -e

RSC=$1
options=$2

if [ -n "$SRC" ] && !( echo "$SRC" | grep -q '/$' )
then
   SRC="$SRC/"
fi

if [ ! "$1" ]
then
    cat <<EOF
Usage: $0 <path> <options>
path - path to rsyncrypto to run regression tests on
options - specify "v" for verbose output
EOF
    exit 1
fi

compare()
{
    echo -n "Comparing $1 to $2:"
    if (diff $1 $2 >/dev/null)
    then
        echo " identical"
    else
        echo " diff failed"
        exit 1
    fi
}

runreg()
{
    cmdline=$1
    testname=$2
    shift 2
    if [ "$options" = "v" ]
    then
        echo "Testing $testname: $cmdline"
    else
        echo "Testing $testname:"
    fi
    if /bin/sh -c "$cmdline"
    then
        while [ "$1" ]
        do
            compare $1 $2
            shift 2
        done
        echo "$testname passed"
    else
        echo "rsyncrypto failed to run"
        exit 1
    fi
}

dotest()
{
    echo "Running regressions on $1"
    runreg "$RSC -d ${SRC}$1.enc $1.dec ${SRC}$1.key ${SRC}cert.crt" "decryption using symmetric key" ${SRC}$1 $1.dec
    rm $1.dec
    runreg "$RSC -d ${SRC}$1.enc $1.dec $1.key2 ${SRC}cert.key" "decryption using asymmetric key" ${SRC}$1 $1.dec ${SRC}$1.key $1.key2
    rm $1.dec $1.key2
    runreg "$RSC ${SRC}$1 $1.enc2 ${SRC}$1.key ${SRC}cert.key" "encryption using existing key"
    runreg "$RSC -d $1.enc2 $1.dec ${SRC}$1.key ${SRC}cert.crt" "decryption of our own encryption - symmetric" ${SRC}$1 $1.dec
    rm $1.dec
    runreg "$RSC -d $1.enc2 $1.dec $1.key2 ${SRC}cert.key" "decryption of our own encryption - asymmetric" ${SRC}$1 $1.dec ${SRC}$1.key $1.key2
    rm $1.dec $1.key2 $1.enc2
    runreg "$RSC ${SRC}$1 $1.enc2 $1.key2 ${SRC}cert.key" "encryption using new key"
    runreg "$RSC -d $1.enc2 $1.dec $1.key2 ${SRC}cert.crt" "decryption of our own encryption - symmetric" ${SRC}$1 $1.dec
    rm $1.dec
    runreg "$RSC -d $1.enc2 $1.dec $1.key3 ${SRC}cert.key" "decryption of our own encryption - asymmetric" ${SRC}$1 $1.dec $1.key3 $1.key2
    rm $1.dec $1.key2 $1.key3 $1.enc2

    # Let's test some command line options
    runreg "$RSC -d --gzip=${SRC}./nullgzip ${SRC}$1.enc $1.dec.gz ${SRC}$1.key ${SRC}cert.crt && gunzip $1.dec.gz" "test seperate gunzip" ${SRC}$1 $1.dec
    rm $1.dec

    echo "All tests on $1 successful"
    echo ""
}

rm -rf regtestdir.*
mkdir regtestdir.orig
mkdir regtestdir.orig/dummy
mkdir regtestdir.key
mkdir regtestdir.key/dummy
mkdir regtestdir.enc
mkdir regtestdir.enc/dummy
shopt -s extglob

pushd "$SRC"
regs="$(echo reg+([0-9]))"
popd

for reg in $regs
do
    dotest $reg
    ln ${SRC}$reg regtestdir.orig/dummy
    ln ${SRC}$reg.key regtestdir.key/dummy/$reg
    ln ${SRC}$reg.enc regtestdir.enc/dummy/$reg
done

runreg "$RSC -vv -r -d regtestdir.enc regtestdir.dec regtestdir.key ${SRC}cert.crt" "recursive decryption using symmetric"
for reg in $regs
do
    compare regtestdir.orig/dummy/$reg regtestdir.dec/dummy/$reg
done
rm -rf regtestdir.dec
runreg "$RSC -vv -r -d regtestdir.enc regtestdir.dec regtestdir.key2 ${SRC}cert.key" "recursive decryption using asymmetric"
for reg in $regs
do
    compare regtestdir.orig/dummy/$reg regtestdir.dec/dummy/$reg
    compare regtestdir.key/dummy/$reg regtestdir.key2/dummy/$reg
done
rm -rf regtestdir.dec
rm -rf regtestdir.key2
runreg "$RSC -vv -r --trim=2 regtestdir.orig/dummy regtestdir.enc2/dummy regtestdir.key/dummy ${SRC}cert.key" "recursive encryption using existing"
runreg "$RSC -vv -r --trim=2 -d regtestdir.enc2/dummy regtestdir.dec/ regtestdir.key2 ${SRC}cert.key" "recursive decryption using asymmetric with trim"
for reg in $regs
do
    compare regtestdir.orig/dummy/$reg regtestdir.dec/$reg
    compare regtestdir.key/dummy/$reg regtestdir.key2/$reg
done

# Delete leftover files
rm -rf regtestdir.*

echo "All tests completed successfully"