]> diplodocus.org Git - nmh/blob - test/scan/test-scan-file
Replace GNUism with standard touch flag in test-scan-file.
[nmh] / test / scan / test-scan-file
1 #!/bin/sh
2 ######################################################
3 #
4 # Test "scan -file"
5 #
6 ######################################################
7
8 if test -z "${MH_OBJ_DIR}"; then
9 srcdir=`dirname "$0"`/../..
10 MH_OBJ_DIR=`cd "$srcdir" && pwd`; export MH_OBJ_DIR
11 fi
12
13 . "$MH_OBJ_DIR/test/common.sh"
14
15 expected="$MH_TEST_DIR/$$.expected"
16 actual="$MH_TEST_DIR/$$.actual"
17
18 setup_test
19 cat >"$expected" <<EOF
20 1 09/29 Test1 Testing message 1<<This is message number 1 >>
21 2 09/29 Test2 Testing message 2<<This is message number 2 >>
22 3 09/29 Test3 Testing message 3<<This is message number 3 >>
23 4 09/29 Test4 Testing message 4<<This is message number 4 >>
24 5 09/29 Test5 Testing message 5<<This is message number 5 >>
25 6 09/29 Test6 Testing message 6<<This is message number 6 >>
26 7 09/29 Test7 Testing message 7<<This is message number 7 >>
27 8 09/29 Test8 Testing message 8<<This is message number 8 >>
28 9 09/29 Test9 Testing message 9<<This is message number 9 >>
29 10 09/29 Test10 Testing message 10<<This is message number 10 >>
30 EOF
31
32 ## Combine the inbox messages into one spool file
33
34 rm -f "$MH_TEST_DIR/spoolfile"
35 for i in 1 2 3 4 5 6 7 8 9 10
36 do
37 printf '\1\1\1\1\n'
38 cat "$MH_TEST_DIR/Mail/inbox/$i"
39 printf '\1\1\1\1\n'
40 done > "$MH_TEST_DIR/spoolfile"
41
42 ## Test scanning the file
43
44 start_test 'scan file'
45
46 run_prog scan -file "$MH_TEST_DIR/spoolfile" -width 80 >"$actual" || exit 1
47 check "$expected" "$actual" 'keep first'
48
49 test -z "$MH_TEST_NOCLEANUP" && rm -f "$MH_TEST_DIR/spoolfile"
50
51 ## Convert the test inbox folder into a Maildir directory
52
53 rm -rf "$MH_TEST_DIR/Maildir/new" "$MH_TEST_DIR/Maildir/cur"
54 mkdir -p "$MH_TEST_DIR/Maildir/new" "$MH_TEST_DIR/Maildir/cur" || exit 1
55
56 # move the 10 test messages into the Maildir directories
57 subdir=cur
58 for i in 1 2 3 4 5 6 7 8 9 10
59 do
60 # split messages between subdirs, to test that "scan" sorts them correctly
61 if [ "$subdir" = cur ]; then
62 subdir=new
63 info=
64 else
65 subdir=cur
66 info=:2,
67 fi
68 arith_eval 1567890000 + "$i"; timepart=$arith_val
69 destfile=$MH_TEST_DIR/Maildir/$subdir/$timepart.P$$.testhost$info
70 mv "$MH_TEST_DIR/Mail/inbox/$i" "$destfile"
71 # Maildir sorts by mtime, so make sure all times are unique
72 touch -c -m -d "2019-09-07T16:00:$i" "$destfile"
73 done
74
75 # should be empty now; remove it to make sure "scan -file" is not using it
76 rmdir "$MH_TEST_DIR/Mail/inbox"
77
78 ## Test scanning the Maildir
79
80 start_test 'scan file Maildir'
81
82 run_prog scan -file "$MH_TEST_DIR/Maildir" -width 80 >"$actual" || exit 1
83 check "$expected" "$actual"
84
85 test -z "$MH_TEST_NOCLEANUP" && rm -rf "$MH_TEST_DIR/Maildir"
86
87
88 finish_test
89 exit "${failed:-0}"