blob: d8a3a461e630547d092dd44bf986f6c47ca8cd5c (
plain)
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
|
Trove Aliases
=============
SCENARIO trove-id (and by corollary trove-host) work properly
GIVEN a morph configuration to test the aliases
AND a list of raw aliases
AND a list of processed aliases
THEN all raw aliases should be in processed aliases unchanged
THEN all aliases in the processed aliases which do not come from the raw aliases should contain the trove host
THEN processed aliases do contain a baserock and an upstream alias since those are implicit in morph's behaviour
THEN fudge prefix has been correctly expanded as though it were fudge=fudge#ssh#ssh
IMPLEMENTS GIVEN a morph configuration to test the aliases
cat << EOF > "$DATADIR/morph.conf"
[config]
repo-alias = test=file://$DATADIR/%s#file://$DATADIR/%s
cachedir = $DATADIR/cache
log = $DATADIR/morph.log
no-distcc = true
quiet = true
EOF
IMPLEMENTS GIVEN a list of raw aliases
run_morph \
--trove-host="TROVEHOST" \
--trove-id="fudge" \
--trove-id="github" \
--dump-config > "$DATADIR/raw-configdump"
grep repo-alias "$DATADIR"/raw-configdump | cut -d\ -f3- > \
"$DATADIR"/raw-aliases
IMPLEMENTS GIVEN a list of processed aliases
export MORPH_DUMP_PROCESSED_CONFIG=1
run_morph \
--trove-host="TROVEHOST" \
--trove-id="fudge" \
--trove-id="github" \
> "$DATADIR/processed-configdump"
grep repo-alias "$DATADIR"/processed-configdump | cut -d\ -f3- > \
"$DATADIR"/processed-aliases
IMPLEMENTS THEN all raw aliases should be in processed aliases unchanged
# All raw aliases should be in processed aliases unchanged. As part
# of this, we're also validating that the 'github' prefix we pass in
# does not affect the alias output since it is overridden by
# repo-alias.
RAW_ALIAS="$(cat "$DATADIR"/raw-aliases)"
PROCESSED_ALIAS="$(cat "$DATADIR"/processed-aliases)"
for raw_alias in $RAW_ALIAS; do
raw_alias=$(echo $raw_alias | sed -e's/,$//')
raw_prefix=$(echo $raw_alias | cut -d= -f1)
processed_alias=$(find_alias "$PROCESSED_ALIAS" "$raw_prefix")
if test "x$raw_alias" != "x$processed_alias"; then
die "Raw $raw_alias not in processed aliases"
fi
done
IMPLEMENTS THEN all aliases in the processed aliases which do not come from the raw aliases should contain the trove host
# All aliases in the processed aliases which do not come from the
# raw aliases should contain the trove host.
RAW_ALIAS="$(cat "$DATADIR"/raw-aliases)"
PROCESSED_ALIAS="$(cat "$DATADIR"/processed-aliases)"
for processed_alias in $PROCESSED_ALIAS; do
processed_alias=$(echo $processed_alias | sed -e's/,$//')
processed_prefix=$(echo $processed_alias | cut -d= -f1)
raw_alias=$(find_alias "$RAW_ALIAS" "$processed_prefix")
if test "x$raw_alias" = "x"; then
grep_out=$(echo "$processed_alias" | grep TROVEHOST)
if test "x$grep_out" = "x"; then
die "Processed $processed_alias does not mention TROVEHOST"
fi
fi
done
IMPLEMENTS THEN processed aliases do contain a baserock and an upstream alias since those are implicit in morph's behaviour
# Validate that the processed aliases do contain a baserock and an
# upstream alias since those are implicit in morph's behaviour.
PROCESSED_ALIAS="$(cat "$DATADIR"/processed-aliases)"
for prefix in baserock upstream; do
processed_alias=$(find_alias "$PROCESSED_ALIAS" "$prefix")
if test "x$processed_alias" = "x"; then
die "Processed aliases lack $prefix prefix"
fi
done
IMPLEMENTS THEN fudge prefix has been correctly expanded as though it were fudge=fudge#ssh#ssh
# Validate that the fudge prefix has been correctly expanded as
# though it were fudge=fudge#ssh#ssh
PROCESSED_ALIAS="$(cat "$DATADIR"/processed-aliases)"
fudge_alias=$(find_alias "$PROCESSED_ALIAS" "fudge")
desired_fudge="fudge=ssh://git@TROVEHOST/fudge/%s#ssh://git@TROVEHOST/fudge/%s"
if test "x$fudge_alias" != "x$desired_fudge"; then
die "Fudge alias was '$fudge_alias' where we wanted '$desired_fudge'"
fi
|