-
Notifications
You must be signed in to change notification settings - Fork 510
/
TEST24
executable file
·69 lines (53 loc) · 1.45 KB
/
TEST24
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
#!/usr/bin/env bash
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2018-2024, Intel Corporation
#
#
# pmempool_sync/TEST24 -- test for checking pmempool sync
#
# sync with lacking replica
# Ref: pmem/issues#731
#
. ../unittest/unittest.sh
require_test_type medium
require_fs_type any
setup
LOG=out${UNITTEST_NUM}.log
LOG_TEMP=out${UNITTEST_NUM}_part.log
rm -f $LOG && touch $LOG
rm -f $LOG_TEMP && touch $LOG_TEMP
LAYOUT=OBJ_LAYOUT$SUFFIX
POOLSET1=$DIR/poolset1
POOLSET2=$DIR/poolset2
# Create poolset files
create_poolset $POOLSET1 \
8M:$DIR/part00:x \
r \
8M:$DIR/part10:x \
r \
8M:$DIR/part20:x
create_poolset $POOLSET2 \
8M:$DIR/part00:x \
r \
8M:$DIR/part10:x
# Log poolset structures
echo poolset1: >> $LOG_TEMP
cat $POOLSET1 >> $LOG_TEMP
echo poolset2: >> $LOG_TEMP
cat $POOLSET2 >> $LOG_TEMP
# Create a poolset
expect_normal_exit $PMEMPOOL$EXESUFFIX create --layout=$LAYOUT obj $POOLSET1
cat $LOG >> $LOG_TEMP
# Damage master replica
rm -f $DIR/part00
# Try to synchronize replicas using the second poolset
expect_abnormal_exit $PMEMPOOL$EXESUFFIX sync $POOLSET2 >> $LOG_TEMP 2>&1
# Synchronize replicas using the first poolset
expect_normal_exit $PMEMPOOL$EXESUFFIX sync $POOLSET1 >> $LOG_TEMP
# Check metadata using pmempool info
dump_pool_info $POOLSET1 >> $LOG_TEMP
# Exclude error and warn messages printed out on the stderr by PMDK in debug
fgrep -v "*ERROR*" $LOG_TEMP | fgrep -v "*WARN*" | fgrep -v "*WARN*" > $LOG
rm $LOG_TEMP
check
pass