3 # Test astring handling.
4 # For now only in LIST response.
5 # Gmail encodes all mailbox names in quotes and embedded quotes like "foo \" bar"
6 # Panda encodes them using literals.
8 if test -z "$MH_OBJ_DIR"; then
9 srcdir
=`dirname "$0"`/..
/..
10 MH_OBJ_DIR
=`cd "$srcdir" && pwd`; export MH_OBJ_DIR
13 # TODO no need for xoauth in this test
14 .
"${srcdir}/test/oauth/common.sh"
16 # common.sh sets this to something crazy; did i do that?!
17 testname
=${0#$srcdir/}
23 # covdir="$builddir/test/covdata/${MH_COVERAGE_PROFILE:-default}/test/cargo"
24 # install -d "$covdir"
25 # export LLVM_PROFILE_FILE="$covdir/%m-%p.profraw"
26 # export CARGO_TARGET_DIR=$builddir/target
27 # export RUSTC_BOOTSTRAP=1
28 # export RUSTFLAGS="-Zinstrument-coverage"
29 # cargo t -- --test-threads=1
31 # MH_IMAP_TEST_SERVER=panda make check 'TESTS=test/imap/test-astring'
33 #grcov .o/clang10 -s . --binary-path .o/clang10/target/debug/ -t html --branch --ignore-not-existing -o /coverage/default > covlog 2>&1
35 setup_test_without_data Mail
39 access-testuser: test-access
40 refresh-testuser: test-refresh
41 expire-testuser: 2000000000
45 #### Save exit status to use as status for this program.
51 [ -n "$imapd_pid" ] && kill $imapd_pid
52 "$MH_OBJ_DIR/target/debug/mhimap" imap shutdown
54 # TODO have cleanup allow additional cleanup registration?
55 # Or just allow it to accept status as argument.
61 covdir
="$MH_OBJ_DIR/covdata/${MH_COVERAGE_PROFILE:-default}/$testname"
63 export LLVM_PROFILE_FILE
="$covdir/$profile-%m.profraw"
65 imapd
="$MH_TEST_DIR/$$.imapd"
66 start_fakeinetd
"$imapd"
67 imapd_pid
=$fakeinetd_pid
71 imap-manager: $MH_OBJ_DIR/target/debug/imap-folder-manager
72 imap-socket: $MH_TEST_DIR/Mail/imap.d/socket
73 imap-db: $MH_TEST_DIR/Mail/imap.d
75 imap-port: $fakeinetd_port
76 imap-tls: don't protect my data i know what i'm doing
79 imap-saslmech: xoauth2
80 imap-authservice: test
82 if [ -n "$MH_TEST_IMAP_LOG_LEVEL" ]; then
83 echo "imap-log-level: $MH_TEST_IMAP_LOG_LEVEL" >> "$MH"
84 echo "imap-log-$MH_TEST_IMAP_LOG_LEVEL-to: $MH_TEST_DIR/Mail/imap.d/log.$MH_TEST_IMAP_LOG_LEVEL" >> "$MH"
87 # Test astring and nstring handling with some faked up but legal responses.
88 # I don't know whether any implementations return nil or quoted in these FETCH
89 # respones, but it is legal, so it's a fair test.
90 # TODO removed nstring testing for now
92 cat > "$imapd" <<EOSCRIPT
95 * OK [CAPABILITY IMAP4REV1 SASL-IR AUTH=PLAIN AUTH=XOAUTH2] greeting
96 1 OK [CAPABILITY IMAP4REV1 UIDPLUS] authenticated
97 * LIST () "/" "embedded quote \" gmail style"
99 embedded quote " panda style
102 * OK [UIDVALIDITY 1603585238] UID validity status
103 * OK [UIDNEXT 1] Predicted next UID
104 1 OK [READ-WRITE] SELECT completed
107 * OK [UIDVALIDITY 1603585238] UID validity status
108 * OK [UIDNEXT 1] Predicted next UID
110 * 7 FETCH (UID 1 FLAGS (\Seen))
111 1 OK [READ-WRITE] SELECT completed
114 while read line; do :; done
118 check_exit
'-eq 0' inc
+imap