diff options
author | Austin Clements <amdragon@MIT.EDU> | 2013-01-06 15:22:41 -0500 |
---|---|---|
committer | David Bremner <bremner@debian.org> | 2013-01-06 22:40:32 -0400 |
commit | 425e2bc81263230df301c67d93c64ff9685ff840 (patch) | |
tree | 2c9dc32b233d80b805148bb3d438b27bdd70c606 /test | |
parent | d08c714b6a172cf0018bee4f60aff069d5508d4e (diff) |
dump/restore: Use Xapian queries for batch-tag format
This switches the new batch-tag format away from using a home-grown
hex-encoding scheme for message IDs in the dump to simply using Xapian
queries with Xapian quoting syntax.
This has a variety of advantages beyond presenting a cleaner and more
consistent interface. Foremost is that it will dramatically simplify
the quoting for batch tagging, which shares the same input format.
While the hex-encoding is no better or worse for the simple ID queries
used by dump/restore, it becomes onerous for general-purpose queries
used in batch tagging. It also better handles strange cases like
"id:foo and bar", since this is no longer syntactically valid.
Diffstat (limited to 'test')
-rwxr-xr-x | test/dump-restore | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/test/dump-restore b/test/dump-restore index ae30cd10..0004438d 100755 --- a/test/dump-restore +++ b/test/dump-restore @@ -234,23 +234,39 @@ a # the previous line was blank; also no yelling please +%zz -- id:whatever -+e +f id:%yy ++e +f id:" ++e +f tag:abc # the next non-comment line should report an an empty tag error for # batch tagging, but not for restore + +e -- id:20091117232137.GA7669@griffis1.net -# highlight the sketchy id parsing; this should be last -+g -- id:foo and bar +# valid id, but warning about missing message ++e id:missing_message_id +# exercise parser ++e -- id:some)stuff ++e -- id:some stuff ++e -- id:some"stuff ++e -- id:"a_message_id_with""_a_quote" ++e -- id:"a message id with spaces" ++e -- id:an_id_with_leading_and_trailing_ws \ + EOF cat <<EOF > EXPECTED -Warning: unsupported query: a +Warning: cannot parse query: a (skipping) Warning: no query string [+0] Warning: no query string [+a +b] Warning: missing query string [+a +b ] Warning: no query string after -- [+c +d --] Warning: hex decoding of tag %zz failed [+%zz -- id:whatever] -Warning: hex decoding of query id:%yy failed [+e +f id:%yy] -Warning: cannot apply tags to missing message: foo and bar +Warning: cannot parse query: id:" (skipping) +Warning: not an id query: tag:abc (skipping) +Warning: cannot apply tags to missing message: missing_message_id +Warning: cannot parse query: id:some)stuff (skipping) +Warning: cannot parse query: id:some stuff (skipping) +Warning: cannot apply tags to missing message: some"stuff +Warning: cannot apply tags to missing message: a_message_id_with"_a_quote +Warning: cannot apply tags to missing message: a message id with spaces +Warning: cannot apply tags to missing message: an_id_with_leading_and_trailing_ws EOF test_expect_equal_file EXPECTED OUTPUT |