@@ -1093,9 +1093,9 @@ function e2e::auth_askpass_url_correct_password() {
1093
1093
}
1094
1094
1095
1095
# #############################################
1096
- # Test askpass-url where the URL is flaky
1096
+ # Test askpass-url where the URL is sometimes wrong
1097
1097
# #############################################
1098
- function e2e::auth_askpass_url_flaky () {
1098
+ function e2e::auth_askpass_url_sometimes_wrong () {
1099
1099
# run with askpass_url service which alternates good/bad replies.
1100
1100
HITLOG=" $WORK /hitlog"
1101
1101
cat /dev/null > " $HITLOG "
@@ -1154,6 +1154,112 @@ function e2e::auth_askpass_url_flaky() {
1154
1154
assert_file_eq " $ROOT " /link/file " $FUNCNAME 1"
1155
1155
}
1156
1156
1157
+ # #############################################
1158
+ # Test askpass-url where the URL is flaky
1159
+ # #############################################
1160
+ function e2e::auth_askpass_url_flaky() {
1161
+ # run with askpass_url service which alternates good/bad replies.
1162
+ HITLOG=" $WORK /hitlog"
1163
+ cat /dev/null > " $HITLOG "
1164
+ CTR=$( docker_run \
1165
+ -v " $HITLOG " :/var/log/hits \
1166
+ e2e/test/ncsvr \
1167
+ 80 ' read X
1168
+ if [ -f /tmp/flag ]; then
1169
+ echo "HTTP/1.1 200 OK"
1170
+ echo
1171
+ echo "username=my-username"
1172
+ echo "password=my-password"
1173
+ rm /tmp/flag
1174
+ else
1175
+ echo "HTTP/1.1 503 Service Unavailable"
1176
+ echo
1177
+ touch /tmp/flag
1178
+ fi
1179
+ ' )
1180
+ IP=$( docker_ip " $CTR " )
1181
+
1182
+ # First sync
1183
+ echo " $FUNCNAME 1" > " $REPO /file"
1184
+ git -C " $REPO " commit -qam " $FUNCNAME 1"
1185
+
1186
+ GIT_SYNC \
1187
+ --git=" /$ASKPASS_GIT " \
1188
+ --askpass-url=" http://$IP /git_askpass" \
1189
+ --max-sync-failures=2 \
1190
+ --wait=0.1 \
1191
+ --repo=" file://$REPO " \
1192
+ --branch=" $MAIN_BRANCH " \
1193
+ --rev=HEAD \
1194
+ --root=" $ROOT " \
1195
+ --dest=" link" \
1196
+ >> " $1 " 2>&1 &
1197
+ sleep 3
1198
+ assert_link_exists " $ROOT /link"
1199
+ assert_file_exists " $ROOT /link/file"
1200
+ assert_file_eq " $ROOT /link/file" " $FUNCNAME 1"
1201
+
1202
+ # Move HEAD forward
1203
+ echo " $FUNCNAME 2" > " $REPO /file"
1204
+ git -C " $REPO " commit -qam " $FUNCNAME 2"
1205
+ sleep 3
1206
+ assert_link_exists " $ROOT /link"
1207
+ assert_file_exists " $ROOT /link/file"
1208
+ assert_file_eq " $ROOT /link/file" " $FUNCNAME 2"
1209
+
1210
+ # Move HEAD backward
1211
+ git -C " $REPO " reset -q --hard HEAD^
1212
+ sleep 3
1213
+ assert_link_exists " $ROOT /link"
1214
+ assert_file_exists " $ROOT /link/file"
1215
+ assert_file_eq " $ROOT /link/file" " $FUNCNAME 1"
1216
+ }
1217
+
1218
+ # #############################################
1219
+ # Test askpass-url where the URL fails at startup
1220
+ # #############################################
1221
+ function e2e::auth_askpass_url_slow_start() {
1222
+ # run with askpass_url service which takes a while to come up
1223
+ HITLOG=" $WORK /hitlog"
1224
+ cat /dev/null > " $HITLOG "
1225
+ CTR=$( docker_run \
1226
+ -v " $HITLOG " :/var/log/hits \
1227
+ --entrypoint sh \
1228
+ e2e/test/ncsvr \
1229
+ -c " sleep 4;
1230
+ /ncsvr.sh 80 'read X
1231
+ echo \" HTTP/1.1 200 OK\"
1232
+ echo
1233
+ echo \" username=my-username\"
1234
+ echo \" password=my-password\"
1235
+ '" )
1236
+ IP=$( docker_ip " $CTR " )
1237
+
1238
+ # Sync
1239
+ echo " $FUNCNAME " > " $REPO /file"
1240
+ git -C " $REPO " commit -qam " $FUNCNAME "
1241
+
1242
+ GIT_SYNC \
1243
+ --git=" /$ASKPASS_GIT " \
1244
+ --askpass-url=" http://$IP /git_askpass" \
1245
+ --max-sync-failures=5 \
1246
+ --wait=1 \
1247
+ --repo=" file://$REPO " \
1248
+ --branch=" $MAIN_BRANCH " \
1249
+ --rev=HEAD \
1250
+ --root=" $ROOT " \
1251
+ --dest=" link" \
1252
+ >> " $1 " 2>&1 &
1253
+ sleep 1
1254
+ assert_file_absent " $ROOT /link"
1255
+
1256
+ sleep 5
1257
+ assert_link_exists " $ROOT /link"
1258
+ assert_file_exists " $ROOT /link/file"
1259
+ assert_file_eq " $ROOT /link/file" " $FUNCNAME "
1260
+ }
1261
+
1262
+
1157
1263
# #############################################
1158
1264
# Test exechook-success
1159
1265
# #############################################
0 commit comments