|
1 | 1 | #!/bin/sh |
2 | 2 | # |
3 | 3 |
|
| 4 | +# Append --logfile option if FLUX_TESTS_LOGFILE is set in environment: |
| 5 | +test -n "$FLUX_TESTS_LOGFILE" && set -- "$@" --logfile |
| 6 | + |
4 | 7 | test_description='Test config file overlay bootstrap' |
5 | 8 |
|
6 | 9 | . `dirname $0`/sharness.sh |
@@ -260,6 +263,43 @@ test_expect_success 'start size=3 instance with ipc:// and custom topology' ' |
260 | 263 | test_cmp conf8a.exp conf8a.out |
261 | 264 | ' |
262 | 265 |
|
| 266 | +waitgrep() { |
| 267 | + local pattern=$1 |
| 268 | + local file=$2 |
| 269 | + local iter=$3 |
| 270 | + while test $iter -gt 0; do |
| 271 | + grep "$pattern" $file 2>/dev/null && return 0 |
| 272 | + sleep 0.3 |
| 273 | + iter=$(($iter-1)) |
| 274 | + done |
| 275 | + return 1 |
| 276 | +} |
| 277 | + |
| 278 | +# RFC 2606 reserves the .invalid domain for testing |
| 279 | +test_expect_success NO_CHAIN_LINT 'a warning is printed when upstream URI has unknown host' ' |
| 280 | + mkdir conf8b && |
| 281 | + cat <<-EOT >conf8b/bootstrap.toml && |
| 282 | + [bootstrap] |
| 283 | + curve_cert = "testcert" |
| 284 | + [[bootstrap.hosts]] |
| 285 | + host = "fake0" |
| 286 | + connect = "tcp://foo.invalid:1234" |
| 287 | + [[bootstrap.hosts]] |
| 288 | + host = "fake1" |
| 289 | + EOT |
| 290 | + FLUX_FAKE_HOSTNAME=fake1 \ |
| 291 | + flux broker -vv -Sbroker.rc1_path=,-Sbroker.rc3_path= \ |
| 292 | + --config-path=conf8b 2>warn.err & |
| 293 | + echo $! >warn.pid && |
| 294 | + waitgrep "unable to resolve upstream peer" warn.err 30 |
| 295 | +' |
| 296 | +# In case warn.pid actually refers to a libtool wrapper, try pkill(1) -P |
| 297 | +# first to kill its children, then kill(1). See flux-framework/flux-core#5275. |
| 298 | +test_expect_success NO_CHAIN_LINT 'clean up broker from previous test' ' |
| 299 | + warnpid=$(cat warn.pid) && |
| 300 | + pkill -15 -P $warnpid || kill -15 $warnpid |
| 301 | +' |
| 302 | + |
263 | 303 | getport() { |
264 | 304 | flux python -c \ |
265 | 305 | 'from socket import socket; s=socket(); s.bind(("", 0)); print(s.getsockname()[1])' |
|
0 commit comments