Signed-off-by: Jani Nikula <jani at nikula.org> --- test/notmuch-test | 1 + test/search-limiting | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 0 deletions(-) create mode 100755 test/search-limiting
diff --git a/test/notmuch-test b/test/notmuch-test index 587adb5..435b469 100755 --- a/test/notmuch-test +++ b/test/notmuch-test @@ -25,6 +25,7 @@ TESTS=" search-by-folder search-position-overlap-bug search-insufficient-from-quoting + search-limiting json multipart thread-naming diff --git a/test/search-limiting b/test/search-limiting new file mode 100755 index 0000000..45cc0a9 --- /dev/null +++ b/test/search-limiting @@ -0,0 +1,71 @@ +#!/usr/bin/env bash +test_description='"notmuch search" --first and --maxitems parameters' +. ./test-lib.sh + +add_email_corpus + +for outp in messages threads; do + test_begin_subtest "${outp}: maxitems does the right thing" + notmuch search --output=${outp} "*" | head -n 20 >expected + notmuch search --output=${outp} --maxitems=20 "*" >output + test_expect_equal_file expected output + + test_begin_subtest "${outp}: concatenation of limited searches" + notmuch search --output=${outp} "*" | head -n 20 >expected + notmuch search --output=${outp} --maxitems=10 "*" >output + notmuch search --output=${outp} --maxitems=10 --first=10 "*" >>output + test_expect_equal_file expected output + + test_begin_subtest "${outp}: maxitems larger than result set" + N=`notmuch count --output=${outp} "*"` + notmuch search --output=${outp} "*" >expected + notmuch search --output=${outp} --maxitems=$((1 + ${N})) "*" >output + test_expect_equal_file expected output + + test_begin_subtest "${outp}: maxitems = 0" + test_expect_equal "`notmuch search --output=${outp} --maxitems=0 "*"`" "" + + test_begin_subtest "${outp}: first does the right thing" + # note: tail -n +N is 1-based + notmuch search --output=${outp} "*" | tail -n +21 >expected + notmuch search --output=${outp} --first=20 "*" >output + test_expect_equal_file expected output + + test_begin_subtest "${outp}: first = 0" + notmuch search --output=${outp} "*" >expected + notmuch search --output=${outp} --first=0 "*" >output + test_expect_equal_file expected output + + test_begin_subtest "${outp}: negative first" + notmuch search --output=${outp} "*" | tail -n 20 >expected + notmuch search --output=${outp} --first=-20 "*" >output + test_expect_equal_file expected output + + test_begin_subtest "${outp}: negative first" + notmuch search --output=${outp} "*" | tail -n 1 >expected + notmuch search --output=${outp} --first=-1 "*" >output + test_expect_equal_file expected output + + test_begin_subtest "${outp}: negative first combined with maxitems" + notmuch search --output=${outp} "*" | tail -n 20 | head -n 10 >expected + notmuch search --output=${outp} --first=-20 --maxitems=10 "*" >output + test_expect_equal_file expected output + + test_begin_subtest "${outp}: negative first combined with equal maxitems" + notmuch search --output=${outp} "*" | tail -n 20 >expected + notmuch search --output=${outp} --first=-20 --maxitems=20 "*" >output + test_expect_equal_file expected output + + test_begin_subtest "${outp}: negative first combined with large maxitems" + notmuch search --output=${outp} "*" | tail -n 20 >expected + notmuch search --output=${outp} --first=-20 --maxitems=50 "*" >output + test_expect_equal_file expected output + + test_begin_subtest "${outp}: negative first larger then results" + N=`notmuch count --output=${outp} "*"` + notmuch search --output=${outp} "*" >expected + notmuch search --output=${outp} --first=-$((1 + ${N})) "*" >output + test_expect_equal_file expected output +done + +test_done -- 1.7.5.4