mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
test: replace use of gdb with LD_PRELOAD shims in T070-insert.sh
This removes the dependency of this test script on gdb, and considerably speeds up the running of the tests. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
This commit is contained in:
parent
6544a2e305
commit
1959a95d25
1 changed files with 17 additions and 31 deletions
|
@ -2,8 +2,6 @@
|
||||||
test_description='"notmuch insert"'
|
test_description='"notmuch insert"'
|
||||||
. $(dirname "$0")/test-lib.sh || exit 1
|
. $(dirname "$0")/test-lib.sh || exit 1
|
||||||
|
|
||||||
test_require_external_prereq gdb
|
|
||||||
|
|
||||||
# subtests about file permissions assume that we're working with umask
|
# subtests about file permissions assume that we're working with umask
|
||||||
# 022 by default.
|
# 022 by default.
|
||||||
umask 022
|
umask 022
|
||||||
|
@ -246,19 +244,19 @@ test_expect_code 1 "notmuch insert $gen_msg_filename 2>&1"
|
||||||
notmuch config set new.tags $OLDCONFIG
|
notmuch config set new.tags $OLDCONFIG
|
||||||
|
|
||||||
# DUPLICATE_MESSAGE_ID is not tested here, because it should actually pass.
|
# DUPLICATE_MESSAGE_ID is not tested here, because it should actually pass.
|
||||||
|
# pregenerate all of the test shims
|
||||||
for code in OUT_OF_MEMORY XAPIAN_EXCEPTION FILE_NOT_EMAIL \
|
for code in FILE_NOT_EMAIL READ_ONLY_DATABASE UPGRADE_REQUIRED PATH_ERROR OUT_OF_MEMORY XAPIAN_EXCEPTION; do
|
||||||
READ_ONLY_DATABASE UPGRADE_REQUIRED PATH_ERROR; do
|
make_shim shim-$code <<EOF
|
||||||
cat <<EOF > index-file-$code.gdb
|
#include <notmuch.h>
|
||||||
set breakpoint pending on
|
#include <stdio.h>
|
||||||
set logging file index-file-$code.log
|
notmuch_status_t
|
||||||
set logging on
|
notmuch_database_index_file (notmuch_database_t *notmuch,
|
||||||
break notmuch_database_index_file
|
const char *filename,
|
||||||
commands
|
notmuch_indexopts_t *indexopts,
|
||||||
return NOTMUCH_STATUS_$code
|
notmuch_message_t **message_ret)
|
||||||
continue
|
{
|
||||||
end
|
return NOTMUCH_STATUS_$code;
|
||||||
run
|
}
|
||||||
EOF
|
EOF
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -266,30 +264,18 @@ gen_insert_msg
|
||||||
|
|
||||||
for code in FILE_NOT_EMAIL READ_ONLY_DATABASE UPGRADE_REQUIRED PATH_ERROR; do
|
for code in FILE_NOT_EMAIL READ_ONLY_DATABASE UPGRADE_REQUIRED PATH_ERROR; do
|
||||||
test_begin_subtest "EXIT_FAILURE when index_file returns $code"
|
test_begin_subtest "EXIT_FAILURE when index_file returns $code"
|
||||||
test_expect_code 1 \
|
test_expect_code 1 "notmuch_with_shim shim-$code insert < \"$gen_msg_filename\""
|
||||||
"${TEST_GDB} --batch-silent --return-child-result \
|
|
||||||
-ex 'set args insert < $gen_msg_filename' \
|
|
||||||
-x index-file-$code.gdb notmuch"
|
|
||||||
|
|
||||||
test_begin_subtest "success exit with --keep when index_file returns $code"
|
test_begin_subtest "success exit with --keep when index_file returns $code"
|
||||||
test_expect_code 0 \
|
test_expect_code 0 "notmuch_with_shim shim-$code insert --keep < \"$gen_msg_filename\""
|
||||||
"${TEST_GDB} --batch-silent --return-child-result \
|
|
||||||
-ex 'set args insert --keep < $gen_msg_filename' \
|
|
||||||
-x index-file-$code.gdb notmuch"
|
|
||||||
done
|
done
|
||||||
|
|
||||||
for code in OUT_OF_MEMORY XAPIAN_EXCEPTION ; do
|
for code in OUT_OF_MEMORY XAPIAN_EXCEPTION ; do
|
||||||
test_begin_subtest "EX_TEMPFAIL when index_file returns $code"
|
test_begin_subtest "EX_TEMPFAIL when index_file returns $code"
|
||||||
test_expect_code 75 \
|
test_expect_code 75 "notmuch_with_shim shim-$code insert < \"$gen_msg_filename\""
|
||||||
"${TEST_GDB} --batch-silent --return-child-result \
|
|
||||||
-ex 'set args insert < $gen_msg_filename' \
|
|
||||||
-x index-file-$code.gdb notmuch"
|
|
||||||
|
|
||||||
test_begin_subtest "success exit with --keep when index_file returns $code"
|
test_begin_subtest "success exit with --keep when index_file returns $code"
|
||||||
test_expect_code 0 \
|
test_expect_code 0 "notmuch_with_shim shim-$code insert --keep < \"$gen_msg_filename\""
|
||||||
"${TEST_GDB} --batch-silent --return-child-result \
|
|
||||||
-ex 'set args insert --keep < $gen_msg_filename' \
|
|
||||||
-x index-file-$code.gdb notmuch"
|
|
||||||
done
|
done
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
Loading…
Reference in a new issue