mirror of
https://git.notmuchmail.org/git/notmuch
synced 2025-03-14 03:25:15 +01:00
test: check the handling of files vanishing between scandir and indexing
Add a file for scandir to find, but use gdb to remove it before it gets indexed.
This commit is contained in:
parent
f781b7e7d2
commit
e682c8f8f8
1 changed files with 34 additions and 0 deletions
|
@ -298,4 +298,38 @@ output=$(NOTMUCH_NEW --debug 2>&1 | sed 's/: .*$//' )
|
|||
chmod u+w ${MAIL_DIR}/.notmuch/xapian/*.${db_ending}
|
||||
test_expect_equal "$output" "A Xapian exception occurred opening database"
|
||||
|
||||
|
||||
test_begin_subtest "Handle files vanishing between scandir and add_file"
|
||||
|
||||
# A file for scandir to find. It won't get indexed, so can be empty.
|
||||
touch ${MAIL_DIR}/vanish
|
||||
|
||||
# Breakpoint to remove the file before indexing
|
||||
cat <<EOF > notmuch-new-vanish.gdb
|
||||
set breakpoint pending on
|
||||
set logging file notmuch-new-vanish-gdb.log
|
||||
set logging on
|
||||
break add_file
|
||||
commands
|
||||
shell rm -f ${MAIL_DIR}/vanish
|
||||
continue
|
||||
end
|
||||
run
|
||||
EOF
|
||||
|
||||
gdb --batch-silent --return-child-result -x notmuch-new-vanish.gdb \
|
||||
--args notmuch new 2>OUTPUT 1>/dev/null
|
||||
echo "exit status: $?" >> OUTPUT
|
||||
|
||||
# Clean up the file in case gdb isn't available.
|
||||
rm -f ${MAIL_DIR}/vanish
|
||||
|
||||
cat <<EOF > EXPECTED
|
||||
Unexpected error with file ${MAIL_DIR}/vanish
|
||||
add_file: Something went wrong trying to read or write a file
|
||||
Error opening ${MAIL_DIR}/vanish: No such file or directory
|
||||
exit status: 75
|
||||
EOF
|
||||
test_expect_equal_file EXPECTED OUTPUT
|
||||
|
||||
test_done
|
||||
|
|
Loading…
Add table
Reference in a new issue