/path/fol_d1/fold2
ok 551 - cache_folder: -> //
ok 552 - cache_folder: *|?:"<> -> //_______
# Leaving tests_cache_folder()
# Entering tests_time_remaining()
ok 553 - time_remaining: no args -> 0
ok 554 - time_remaining: 0, 0, 0, 0 -> 0
ok 555 - time_remaining: 1, 1, 2, 1 -> 1
ok 556 - time_remaining: 9, 9, 10, 9 -> 1
ok 557 - time_remaining: 1, 1, 10, 1 -> 9
ok 558 - time_remaining: 5, 5, 10, 5 -> 5
ok 559 - time_remaining: 5, 5, 10, 0 -> ( 5 / 1 ) * ( 10 - 5) = 25
ok 560 - time_remaining: 5, 5, 10, 1 -> ( 5 / 1 ) * ( 10 - 5) = 25
# Leaving tests_time_remaining()
# Entering tests_decompose_regex()
ok 561 - decompose_regex 1
ok 562 - decompose_regex empty string
ok 563 - decompose_regex s/.*/lala/
# Leaving tests_decompose_regex()
# Entering tests_backtick()
ok 564 - backtick: no args
ok 565 - backtick: empty command
ok 566 # skip test for MSWin32
ok 567 # skip test for MSWin32
ok 568 # skip test for MSWin32
ok 569 # skip test for MSWin32
ok 570 # skip test for MSWin32
open3: exec of aaaarrrg failed: No such file or directory at imapsync line 19160.
ok 571 - backtick: aaaarrrg command not found
ok 572 - backtick: echo Hello World!
ok 573 - backtick: echo Hello; echo World! line 1
ok 574 - backtick: echo Hello; echo World! line 2
ok 575 - backtick: echo Hello World! scalar
ok 576 - backtick: echo Hello; echo World! scalar 2 lines
ok 577 - backtick: false returns no output
# Leaving tests_backtick()
# Entering tests_bytes_display_string_bin()
ok 578 - bytes_display_string_bin: no args => NA
ok 579 - bytes_display_string_bin: undef => NA
ok 580 - bytes_display_string_bin: blabla => NA
ok 581 - bytes_display_string_bin: 0 => 0.000 KiB
ok 582 - bytes_display_string_bin: 1 => 0.001 KiB
ok 583 - bytes_display_string_bin: 10 => 0.010 KiB
ok 584 - bytes_display_string_bin: 999 => 0.976 KiB
# 0.976 KiB
ok 585 - bytes_display_string_bin: 1023 => 0.999 KiB
# 0.999 KiB
ok 586 - bytes_display_string_bin: 1024 => 1.000 KiB
# 1.000 KiB
ok 587 - bytes_display_string_bin: 1025 => 1.001 KiB
ok 588 - bytes_display_string_bin: 10_239 => 9.999 KiB
# 9.999 KiB
ok 589 - bytes_display_string_bin: 10_240 => 10.000 KiB
# 10.000 KiB
ok 590 - bytes_display_string_bin: 1_023_999 => 999.999 KiB
# 999.999 KiB
ok 591 - bytes_display_string_bin: 1_024_000 => 0.977 MiB
# 0.977 MiB
ok 592 - bytes_display_string_bin: 1_047_527 => 0.999 MiB
# 0.999 MiB
ok 593 - bytes_display_string_bin: 1_048_051 => 0.999 MiB
# 0.999 MiB
ok 594 - bytes_display_string_bin: 1_048_052 => 1.000 MiB
# 1.000 MiB
ok 595 - bytes_display_string_bin: 1_048_575 => 1.000 MiB
ok 596 - bytes_display_string_bin: 1_048_576 => 1.000 MiB
ok 597 - bytes_display_string_bin: 1_073_741_823 => 1.000 GiB
ok 598 - bytes_display_string_bin: 1_073_741_824 => 1.000 GiB
ok 599 - bytes_display_string_bin: 1_099_511_627_775 => 1.000 TiB
ok 600 - bytes_display_string_bin: 1_099_511_627_776 => 1.000 TiB
ok 601 - bytes_display_string_bin: 1_125_899_906_842_623 => 1.000 PiB
ok 602 - bytes_display_string_bin: 1_125_899_906_842_624 => 1.000 PiB
ok 603 - bytes_display_string_bin: 1_152_921_504_606_846_975 => 1024.000 PiB
ok 604 - bytes_display_string_bin: 1_152_921_504_606_846_976 => 1024.000 PiB
ok 605 - bytes_display_string_bin: 1_180_591_620_717_411_303_424 => 1048576.000 PiB
# 1048576.000 PiB
# 2.794 GiB
# Leaving tests_bytes_display_string_bin()
# Entering tests_bytes_display_string_dec()
ok 606 - bytes_display_string_dec: no args => NA
ok 607 - bytes_display_string_dec: undef => NA
ok 608 - bytes_display_string_dec: blabla => NA
ok 609 - bytes_display_string_dec: 0 => 0 bytes
ok 610 - bytes_display_string_dec: 1 => 1 bytes
ok 611 - bytes_display_string_dec: 10 => 10 bytes
ok 612 - bytes_display_string_dec: 999 => 999 bytes
ok 613 - bytes_display_string_dec: 1000 => 1.000 KB
ok 614 - bytes_display_string_dec: 1000 => 1.1001 KB
ok 615 - bytes_display_string_dec: 999_999 => 999.999 KB
ok 616 - bytes_display_string_dec: 1_000_000 => 1.000 MB
ok 617 - bytes_display_string_dec: 1_000_500 => 1.000 MB
ok 618 - bytes_display_string_dec: 1_000_501 => 1.001 MB
ok 619 - bytes_display_string_dec: 999_999_000 => 999.999 MB
ok 620 - bytes_display_string_dec: 999_999_499 => 999.999 MB
ok 621 - bytes_display_string_dec: 999_999_500 => 1.000 GB
ok 622 - bytes_display_string_dec: 1_000_000_000 => 1.000 GB
ok 623 - bytes_display_string_dec: 1_000_500_000 => 1.000 GB
ok 624 - bytes_display_string_dec: 1_000_501_000 => 1.001 GB
ok 625 - bytes_display_string_dec: 999_999_000_000 => 999.999 GB
ok 626 - bytes_display_string_dec: 999_999_499_999 => 999.999 GB
ok 627 - bytes_display_string_dec: 999_999_500_000 => 1.000 TB
ok 628 - bytes_display_string_dec: 1_000_000_000_000 => 1.000 TB
ok 629 - bytes_display_string_dec: 1_000_500_000_000 => 1.000 TB
ok 630 - bytes_display_string_dec: 1_000_500_000_000 => 1.000 TB
ok 631 - bytes_display_string_dec: 999_999_000_000_000 => 999.999 TB
ok 632 - bytes_display_string_dec: 999_999_499_999_999 => 999.999 TB
ok 633 - bytes_display_string_dec: 999_999_500_000_000 => 1.000 PB
ok 634 - bytes_display_string_dec: 3_000_000_000 => 3.000 GB
# Leaving tests_bytes_display_string_dec()
# Entering tests_header_line_normalize()
ok 635 - header_line_normalize: empty args
ok 636 - header_line_normalize: hhh vvv
ok 637 - header_line_normalize: remove first blancs
ok 638 - header_line_normalize: remove succesive blanks
ok 639 - header_line_normalize: remove last blanks
ok 640 - header_line_normalize: tabs
ok 641 - header_line_normalize: 8bit
# Leaving tests_header_line_normalize()
# Entering tests_fix_Inbox_INBOX_mapping()
Looking at INBOX or Inbox on both sides and deciding of the mapping to apply. Use --nofixInboxINBOX to avoid this behavior.
INBOX INBOX on both sides so no mapping applied.
ok 642 - tests_fix_Inbox_INBOX_mapping: INBOX INBOX
Looking at INBOX or Inbox on both sides and deciding of the mapping to apply. Use --nofixInboxINBOX to avoid this behavior.
Inbox Inbox on both sides so no mapping applied.
ok 643 - tests_fix_Inbox_INBOX_mapping: Inbox Inbox
Looking at INBOX or Inbox on both sides and deciding of the mapping to apply. Use --nofixInboxINBOX to avoid this behavior.
INBOX Inbox so INBOX -> Inbox mapping applied.
ok 644 - tests_fix_Inbox_INBOX_mapping: INBOX Inbox
Looking at INBOX or Inbox on both sides and deciding of the mapping to apply. Use --nofixInboxINBOX to avoid this behavior.
Inbox INBOX so Inbox -> INBOX mapping applied.
ok 645 - tests_fix_Inbox_INBOX_mapping: Inbox INBOX
Looking at INBOX or Inbox on both sides and deciding of the mapping to apply. Use --nofixInboxINBOX to avoid this behavior.
ok 646 - tests_fix_Inbox_INBOX_mapping: INBOX rrrrrr
Looking at INBOX or Inbox on both sides and deciding of the mapping to apply. Use --nofixInboxINBOX to avoid this behavior.
ok 647 - tests_fix_Inbox_INBOX_mapping: rrrrr Inbox
# Leaving tests_fix_Inbox_INBOX_mapping()
# Entering tests_max_line_length()
ok 648 - max_line_length: 0 == null string
ok 649 - max_line_length: 1 == \n
ok 650 - max_line_length: 1 == \n\n
ok 651 - max_line_length: 1 == 500 \n
ok 652 - max_line_length: 1 == a
ok 653 - max_line_length: 2 == a\na
ok 654 - max_line_length: 2 == a\na\n
ok 655 - max_line_length: 3 == a\nab\n
ok 656 - max_line_length: 3 == 1_000 a\nab\n
ok 657 - max_line_length: 3 == a\nab\nabc
ok 658 - max_line_length: 4 == a\nab\nabc\n
ok 659 - max_line_length: 5 == a\nabcd\nabc\n
ok 660 - max_line_length: 5 == a\nabcd\nabc\n\nabcd\nabcd\nabcd\nabcd\nabcd\nabcd\nabcd\nabcd
# Leaving tests_max_line_length()
# Entering tests_subject()
ok 661 - subject: null
ok 662 - Subject:
ok 663 - Subject:\r\n
ok 664 - Subject: toto le hero
ok 665 - Subject:toto le hero
ok 666 - Subject: toto le hero\r\n
ok 667 - subject: toto le hero 2
ok 668 - subject: toto le hero 3
ok 669 - subject: cuicui
ok 670 - subject: null but body could
ok 671 - Subject:
# Leaving tests_subject()
# Entering tests_msgs_from_maxmin()
ok 672 - msgs_from_maxmin: no maxage nor minage => empty result
ok 673 - msgs_from_maxmin: maxage++
ok 674 - msgs_from_maxmin: -maxage++minage-
ok 675 - msgs_from_maxmin: ++maxage-minage++
ok 676 - msgs_from_maxmin: ++minage-
# Leaving tests_msgs_from_maxmin()
# Entering tests_tmpdir_has_colon_bug()
ok 677 - tmpdir_has_colon_bug:
ok 678 - tmpdir_has_colon_bug: /tmp
ok 679 - tmpdir_has_colon_bug: C:
ok 680 - tmpdir_has_colon_bug: C:\temp
# Leaving tests_tmpdir_has_colon_bug()
# Entering tests_sleep_max_messages()
ok 681 - sleep_max_messages: maxmessagespersecond = undef
ok 682 - sleep_max_messages: maxmessagespersecond = 0
ok 683 - sleep_max_messages: maxmessagespersecond = -1
ok 684 - sleep_max_messages: maxmessagespersecond = 2 max reached
ok 685 - sleep_max_messages: maxmessagespersecond = 2 max over
ok 686 - sleep_max_messages: maxmessagespersecond = 2 max not reached
# Leaving tests_sleep_max_messages()
# Entering tests_sleep_max_bytes()
ok 687 - sleep_max_bytes: maxbytespersecond == undef => sleep 0
ok 688 - sleep_max_bytes: maxbytespersecond = 0 => sleep 0
ok 689 - sleep_max_bytes: maxbytespersecond = -1 => sleep 0
ok 690 - sleep_max_bytes: maxbytespersecond = 2k max reached sharp => sleep 0
ok 691 - sleep_max_bytes: maxbytespersecond = 2k max over => sleep a little
ok 692 - sleep_max_bytes: maxbytespersecond = 2k max not reached => sleep 0
ok 693 - sleep_max_bytes: maxbytespersecond = 2k max not reached => sleep 0
ok 694 - sleep_max_bytes: maxbytespersecond = 1k max not reached => sleep 0
# Leaving tests_sleep_max_bytes()
# Entering tests_logfile()
ok 695 - logfile: no args => 1970_01_01_00_00_00_000.txt
ok 696 - logfile: 0 => 1970_01_01_00_00_00_000.txt
ok 697 - logfile: 0 => 1970_01_01_00_01_01_000.txt
ok 698 - logfile: 0 => 1970_01_01_00_01_01_234.txt
ok 699 - logfile: 1_282_658_400 => 2010_08_24_14_00_00_000.txt
ok 700 - logfile: 1_282_658_461 => 2010_08_24_14_01_01_000.txt
ok 701 - logfile: 1_282_658_461 poupinette => 2010_08_24_14_01_01_000_poupinette.txt
ok 702 - logfile: 1_282_658_461 remove blanks => 2010_08_24_14_01_01_000_removeblanks.txt
ok 703 - logfile: 1_282_658_461.2347 poup => 2010_08_24_14_01_01_234_poup.txt
ok 704 - logfile: 1_282_658_461.2347 poup dirdir => dirdir/2010_08_24_14_01_01_234_poup.txt
# Leaving tests_logfile()
# Entering tests_setlogfile()
ok 705 - setlogfile: logdir vallogdir, vallogfile.txt => vallogdir/vallogfile.txt
ok 706 - setlogfile: default is like 1970_01_01_00_00_02_000__.txt
ok 707 - setlogfile: default abort is like 1970_01_01_00_00_02_000_user1_user2_abort.txt
ok 708 - setlogfile: default with _remote is like 1970_01_01_00_00_02_000_user1_user2_remote.txt
ok 709 - setlogfile: default abort with _remote is like 1970_01_01_00_00_02_000_user1_user2_remote_abort.txt
ok 710 - setlogfile: default is like 1970_01_01_00_00_02_000_user1_user2.txt
ok 711 - setlogfile: logdir undef, 1970_01_01_00_00_02_000_user1_user2.txt
ok 712 - setlogfile: logdir empty, 1970_01_01_00_00_02_000_user1_user2.txt
ok 713 - setlogfile: logdir vallogdir, vallogdir/1970_01_01_00_00_02_000_user1_user2.txt
ok 714 - setlogfile: logdir undef, 1970_01_01_00_00_00_000_us_er1a_______b_u_ser2a_______b.txt
# Leaving tests_setlogfile()
# Entering tests_jux_utf8_old()
ok 715 - jux_utf8_old: void => []
ok 716 - jux_utf8_old: INBOX => [INBOX]
ok 717 - jux_utf8_old: => [&ZTZO9nux-] = [æ”¶ä»¶ç®±]
ok 718 - jux_utf8_old: &ANY- => [&ANY-] = [Ö]
ok 719 - jux_utf8_old: => [+BD8EQAQ1BDQEOwQ+BDM-] = [предлог]
ok 720 - jux_utf8_old: => [&BB8EQAQ+BDUEOgRC-] = [Проект]
# Leaving tests_jux_utf8_old()
# Entering tests_jux_utf8()
ok 721 - jux_utf8: Encode::find_encoding: UTF-16BE
ok 722 - jux_utf8: void => []
ok 723 - jux_utf8: INBOX => [INBOX]
ok 724 - jux_utf8: &ANY- => [&ANY-] = [Ö]
ok 725 - jux_utf8: => [+BD8EQAQ1BDQEOwQ+BDM-] = [+BD8EQAQ1BDQEOwQ+BDM-]
Wide character in print at /usr/share/perl5/core_perl/Test2/Formatter/TAP.pm line 156.
ok 726 - jux_utf8: => [&BB8EQAQ+BDUEOgRC-] = [Проект]
ok 727 - jux_utf8: [R&AOk-ponses 1200+1201+1202] = [Réponses 1200+1201+1202]
ok 728 - jux_utf8: [R&AOk-ponses 1200+1201+1202] = [Réponses 1200+1201+1202]
ok 729 - jux_utf8: [INBOX.&AOkA4ADnAPk-&-*] = [INBOX.éàçù&*]
Wide character in print at /usr/share/perl5/core_perl/Test2/Formatter/TAP.pm line 156.
ok 730 - jux_utf8: => [&ZTZO9nux-] = [æ”¶ä»¶ç®±]
ok 731 - jux_utf8: !Old Emails => [!Old Emails]
ok 732 - jux_utf8: 2006 Budget & Fcst => [2006 Budget & Fcst]
# Leaving tests_jux_utf8()
# Entering tests_pipemess()
ok 733 # skip Not on MSWin32
ok 734 # skip Not on MSWin32
ok 735 # skip Not on MSWin32
ok 736 - tests_pipemess: no change by cat
ok 737 - tests_pipemess: no change by cat,cat
ok 738 - tests_pipemess: numberize by cat -n
ok 739 - tests_pipemess: numberize by cat -n
ok 740 - tests_pipemess: sort
Failure: --pipemess command "cacaprout" ended with "0" characters exit value "127" and STDERR "sh: line 1: cacaprout: command not found"
ok 741 - tests_pipemess: command not found
Failure: --pipemess command "true" ended with "0" characters exit value "0" and STDERR ""
ok 742 - tests_pipemess: true but no output
Failure: --pipemess command "false" ended with "0" characters exit value "1" and STDERR ""
ok 743 - tests_pipemess: false and no output
ok 744 - tests_pipemess: ok by ( cat|cat )
ok 745 - tests_pipemess: list context, no change by cat, string
ok 746 - tests_pipemess: list context, no change by cat, no error
Failure: --pipemess command "true" ended with "0" characters exit value "0" and STDERR ""
ok 747 - tests_pipemess: list context, true but no output, string
ok 748 - tests_pipemess: list context, true but no output, error
Failure: --pipemess command "false" ended with "0" characters exit value "1" and STDERR ""
ok 749 - tests_pipemess: list context, false and no output, string
ok 750 - tests_pipemess: list context, false and no output, error
ok 751 - tests_pipemess: list context, "echo -n blablabla", string
ok 752 - tests_pipemess: list context, "echo blablabla", error
Failure: --pipemess command "( echo -n blablabla 3>&1 1>&2 2>&3 )" ended with "0" characters exit value "0" and STDERR "blablabla"
ok 753 - tests_pipemess: list context, "no output STDERR blablabla", string
ok 754 - tests_pipemess: list context, "no output STDERR blablabla", error
Failure: --pipemess command "( echo -n blablabla 3>&1 1>&2 2>&3 )" ended with "0" characters exit value "0" and STDERR "blablabla"
ok 755 - tests_pipemess: list context, "no output STDERR blablabla then false", string
ok 756 - tests_pipemess: list context, "no output STDERR blablabla then false", error
Failure: --pipemess command "false" ended with "0" characters exit value "1" and STDERR ""
ok 757 - tests_pipemess: list context, "false then STDERR blablabla", string
ok 758 - tests_pipemess: list context, "false then STDERR blablabla", error
STDERR of --pipemess "( echo rrrrr ; echo -n error_blablabla 3>&1 1>&2 2>&3 )": error_blablabla
ok 759 - tests_pipemess: list context, "STDOUT rrrrr STDERR error_blablabla", string
ok 760 - tests_pipemess: list context, "STDOUT rrrrr STDERR error_blablabla", error
Failure: --pipemess command "cacaprout" ended with "0" characters exit value "127" and STDERR "sh: line 1: cacaprout: command not found"
ok 761 - tests_pipemess: list context, cacaprout not found, string
ok 762 - tests_pipemess: list context, cacaprout not found, error
# Leaving tests_pipemess()
# Entering tests_jux_utf8_list()
ok 763 - jux_utf8_list: void
ok 764 - jux_utf8_list: empty string
ok 765 - jux_utf8_list: INBOX
ok 766 - jux_utf8_list: [&ANY-] = [Ö]
# Leaving tests_jux_utf8_list()
# Entering tests_guess_prefix()
ok 767 - guess_prefix: no args => empty string
ok 768 - guess_prefix: INBOX alone
ok 769 - guess_prefix: Inbox alone
ok 770 - guess_prefix: INBOX alone
ok 771 - guess_prefix: INBOX INBOX/Junk
ok 772 - guess_prefix: INBOX INBOX.Junk
ok 773 - guess_prefix: Inbox Inbox/Junk
ok 774 - guess_prefix: Inbox Inbox.Junk
ok 775 - guess_prefix: INBOX INBOX/Junk INBOX/rrr
ok 776 - guess_prefix: INBOX INBOX/Junk INBOX/rrr zzz
ok 777 - guess_prefix: INBOX Junk
ok 778 - guess_prefix: INBOX Junk
# Leaving tests_guess_prefix()
# Entering tests_guess_separator()
ok 779 - guess_separator: no args
ok 780 - guess_separator: abcd
ok 781 - guess_separator: a/b/c.d
ok 782 - guess_separator: a.b/c.d
ok 783 - guess_separator: a\\b\\c.c\\d/e/f
ok 784 - guess_separator: a\b\c.c\d/e/f
ok 785 - guess_separator: a\b
ok 786 - guess_separator: a\b\c
# Leaving tests_guess_separator()
# Entering tests_format_for_imap_arg()
ok 787 - format_for_imap_arg empty hash ref
ok 788 - format_for_imap_arg { name => toto }
ok 789 - format_for_imap_arg 2 x key val
# Leaving tests_format_for_imap_arg()
# Entering tests_imapsync_id()
ok 790 - tests_imapsync_id override
# Leaving tests_imapsync_id()
# Entering tests_date_from_rcs()
ok 791 - date_from_rcs from RCS date
# Leaving tests_date_from_rcs()
# Entering tests_quota_extract_storage_limit_in_bytes()
ok 792 - quota_extract_storage_limit_in_bytes (STORAGE 1 104857600) => 104857600 * 1024
ok 793 - quota_extract_storage_limit_in_bytes (STORAGE 988 48829 MESSAGE 20 20) => 48829 * 1024
# Leaving tests_quota_extract_storage_limit_in_bytes()
# Entering tests_quota_extract_storage_current_in_bytes()
ok 794 - quota_extract_storage_current_in_bytes: 1 => 1024
ok 795 - quota_extract_storage_current_in_bytes (STORAGE 988 48829 MESSAGE 20 20) => 988 * 1024
# Leaving tests_quota_extract_storage_current_in_bytes()
# Entering tests_guess_special()
ok 796 - guess_special: Sent => \Sent
ok 797 - guess_special: Blabla => q{}
ok 798 - guess_special: INBOX.Sent => \Sent
ok 799 - guess_special: IN BOX.Sent => \Sent
# Leaving tests_guess_special()
# Entering tests_make_valid_directory()
ok 800 - tests_make_valid_directory: no args => undef
ok 801 - tests_make_valid_directory: empty string => undef
ok 802 - tests_make_valid_directory: no dir => undef
ok 803 - tests_make_valid_directory: a file is not a valid directory
ok 804 - tests_make_valid_directory: . good
ok 805 - tests_make_valid_directory: ./W/tmp/tests/valid/sub ok
ok 806 - tests_make_valid_directory: ./W/tmp/tests/valid ok
ok 807 - tests_make_valid_directory: ./W/tmp/tests/valid/sub ok 2
ok 808 - tests_make_valid_directory: ./W/tmp/tests/valid/qqq ok
# OSNAME=linux EFFECTIVE_USER_ID=1000
# The "Error / has not good enough permissions" is on purpose
ok 809 - tests_make_valid_directory: / is not valid for me
# The "Error permission denied" on /noway is on purpose
ok 810 - tests_make_valid_directory: /noway is not valid for me
ok 811 # skip Tests only for MSWin32
# Dump of the buffered output
Error: imapsync exists but it is not a directory
Directory . is writable and readable and gointoable. Good.
Creating directory ./W/tmp/tests/valid/sub (current directory is /build/imapsync/src/imapsync-2.314)
Directory ./W/tmp/tests/valid/sub is writable and readable and gointoable. Good.
Directory ./W/tmp/tests/valid is writable and readable and gointoable. Good.
Directory ./W/tmp/tests/valid/sub is writable and readable and gointoable. Good.
Creating directory ./W/tmp/tests/valid/qqq (current directory is /build/imapsync/src/imapsync-2.314)
Directory ./W/tmp/tests/valid/qqq is writable and readable and gointoable. Good.
Directory / has not good enough permissions. Trying a chmod 755.
Bad: directory / for user builduser, permissions are 0755 and owner is root ( uid 0 )
Creating directory /noway (current directory is /build/imapsync/src/imapsync-2.314)
mkdir /noway: Permission denied at imapsync line 10028.
# Leaving tests_make_valid_directory()
# Entering tests_delete1emptyfolders()
ok 812 - delete1emptyfolders: undef
ok 813 - delete1emptyfolders: undef 2
ok 814 - delete1emptyfolders: undef imap
ok 815 - require Test::MockObject;
ok 816 - delete1emptyfolders: Unconnected imap
# Entering tests_delete1emptyfolders_unit()
ok 817 - tests_delete1emptyfolders: --delete1emptyfolders OFF, init check
ok 818 - tests_delete1emptyfolders: --delete1emptyfolders OFF, after check
# Leaving tests_delete1emptyfolders_unit()
# Entering tests_delete1emptyfolders_unit()
ok 819 - tests_delete1emptyfolders: --delete1emptyfolders ON, init check
Host1 deleting empty folders
Host1: folder INBOX has subfolders
Host1: folder DELME2 has subfolders
Host1: folder DELME1 has subfolders
Host1 ended deleting empty folders
ok 820 - tests_delete1emptyfolders: --delete1emptyfolders ON, after check
# Leaving tests_delete1emptyfolders_unit()
# Entering tests_delete1emptyfolders_unit()
ok 821 - tests_delete1emptyfolders: EXAMINE fails, init check
Host1 deleting empty folders
Host1 folder INBOX: Could not examine: LastError mocked
Host1 folder DELME2: Could not examine: LastError mocked
Host1 folder DELME1: Could not examine: LastError mocked
Host1 ended deleting empty folders
ok 822 - tests_delete1emptyfolders: EXAMINE fails, after check
# Leaving tests_delete1emptyfolders_unit()
# Entering tests_delete1emptyfolders_unit()
ok 823 - tests_delete1emptyfolders: examine ok but History badly mocked so count messages fails, init check
Host1 deleting empty folders
Host1 ended deleting empty folders
ok 824 - tests_delete1emptyfolders: examine ok but History badly mocked so count messages fails, after check
# Leaving tests_delete1emptyfolders_unit()
# Entering tests_delete1emptyfolders_unit()
ok 825 - tests_delete1emptyfolders: History EXAMINE ok, several messages, init check
Host1 deleting empty folders
Host1: folder INBOX has messages: 2 (search) 2 (select)
Host1: folder DELME2 has messages: 2 (search) 2 (select)
Host1: folder DELME1 has messages: 2 (search) 2 (select)
Host1 ended deleting empty folders
ok 826 - tests_delete1emptyfolders: History EXAMINE ok, several messages, after check
# Leaving tests_delete1emptyfolders_unit()
# Entering tests_delete1emptyfolders_unit()
ok 827 - tests_delete1emptyfolders: 0 EXISTS but 2 by messages(), init check
Host1 deleting empty folders
Host1: folder INBOX odd messages count: 2 (search) 0 (select)
Host1: folder DELME2 odd messages count: 2 (search) 0 (select)
Host1: folder DELME1 odd messages count: 2 (search) 0 (select)
Host1 ended deleting empty folders
ok 828 - tests_delete1emptyfolders: 0 EXISTS but 2 by messages(), after check
# Leaving tests_delete1emptyfolders_unit()
# Entering tests_delete1emptyfolders_unit()
ok 829 - tests_delete1emptyfolders: 1 EXISTS but 0 by messages(), init check
Host1 deleting empty folders
Host1: folder INBOX odd messages count: 0 (search) 1 (select)
Host1: folder DELME2 odd messages count: 0 (search) 1 (select)
Host1: folder DELME1 odd messages count: 0 (search) 1 (select)
Host1 ended deleting empty folders
ok 830 - tests_delete1emptyfolders: 1 EXISTS but 0 by messages(), after check
# Leaving tests_delete1emptyfolders_unit()
# Entering tests_delete1emptyfolders_unit()
ok 831 - tests_delete1emptyfolders: 0 EXISTS 0 by messages() delete folders, keep INBOX, init check
Host1 deleting empty folders
Host1: Not deleting INBOX, since it is RFC mandatory to exist.
Host1: deleting empty folder DELME2
Host1 deleted DELME2 (not really since in a mocked test)
Host1: deleting empty folder DELME1
Host1 deleted DELME1 (not really since in a mocked test)
Host1 ended deleting empty folders
ok 832 - tests_delete1emptyfolders: 0 EXISTS 0 by messages() delete folders, keep INBOX, after check
# Leaving tests_delete1emptyfolders_unit()
# Leaving tests_delete1emptyfolders()
# Entering tests_message_for_host2()
ok 833 - message_for_host2: no args
ok 834 - message_for_host2: undef args
ok 835 - require Test::MockObject;
ok 836 - message_for_host2: msg 1 == "blablabla", length
ok 837 - message_for_host2: msg 1 == "blablabla", value
ok 838 - message_for_host2: --pipemess 'cat', length
ok 839 - message_for_host2: --pipemess 'cat', value
Failure: --pipemess command "false" ended with "0" characters exit value "1" and STDERR ""
- msg FoldFoo/1 {9} S[9] F[] I[10-Jul-2015 09:00:00 +0200] could not be successfully transformed by --pipemess option
ok 840 - message_for_host2: --pipemess 'false', length
ok 841 - message_for_host2: --pipemess 'false', value
Failure: --pipemess command "true" ended with "0" characters exit value "0" and STDERR ""
- msg FoldFoo/1 {9} S[9] F[] I[10-Jul-2015 09:00:00 +0200] could not be successfully transformed by --pipemess option
ok 842 - message_for_host2: --pipemess 'true', length
ok 843 - message_for_host2: --pipemess 'true', value
# Leaving tests_message_for_host2()
# Entering tests_length_ref()
ok 844 - length_ref: value not defined
ok 845 - length_ref: param not a ref
ok 846 - length_ref: lala length == 4
ok 847 - length_ref: lili length == 4
# Leaving tests_length_ref()
# Entering tests_firstline()
ok 848 - tests_firstline: get empty string from inexisting W/tmp/tests/noexist.txt
ok 849 - tests_firstline: make_valid_directory W/tmp/tests/
ok 850 - tests_firstline: put blabla in W/tmp/tests/firstline.txt
ok 851 - tests_firstline: get blabla from W/tmp/tests/firstline.txt
ok 852 - tests_firstline: put empty string in W/tmp/tests/firstline2.txt
ok 853 - tests_firstline: get empty string from W/tmp/tests/firstline2.txt
ok 854 - tests_firstline: put CR in W/tmp/tests/firstline3.txt
ok 855 - tests_firstline: get empty string from W/tmp/tests/firstline3.txt
ok 856 - tests_firstline: put blabla\nTiti\n in W/tmp/tests/firstline4.txt
ok 857 - tests_firstline: get blabla from W/tmp/tests/firstline4.txt
# Leaving tests_firstline()
# Entering tests_diff_or_NA()
ok 858 - diff_or_NA: no parameters => NA
ok 859 - diff_or_NA: undef => NA
ok 860 - diff_or_NA: undef undef => NA
ok 861 - diff_or_NA: undef 1 => NA
ok 862 - diff_or_NA: 1 undef => NA
ok 863 - diff_or_NA: blabla 1 => NA
ok 864 - diff_or_NA: 1 blabla => NA
ok 865 - diff_or_NA: 1 1 => 0
ok 866 - diff_or_NA: 1 0 => 1
ok 867 - diff_or_NA: 0 1 => -1
ok 868 - diff_or_NA: 1.0 1 => 0
ok 869 - diff_or_NA: 1.0 0 => 1
ok 870 - diff_or_NA: 0 1.0 => -1
# Leaving tests_diff_or_NA()
# Entering tests_match_number()
ok 871 - match_number: no parameters => 0
ok 872 - match_number: undef => 0
ok 873 - match_number: blabla => 0
ok 874 - match_number: 0 => 1
ok 875 - match_number: 1 => 1
ok 876 - match_number: 1.0 => 1
ok 877 - match_number: 0.0 => 1
# Leaving tests_match_number()
# Entering tests_all_defined()
ok 878 - all_defined: no param => 0
ok 879 - all_defined: void list => 0
ok 880 - all_defined: undef => 0
ok 881 - all_defined: undef => 0
ok 882 - all_defined: 1 undef => 0
ok 883 - all_defined: undef 1 => 0
ok 884 - all_defined: 1 1 => 1
ok 885 - all_defined: (1 1) => 1
# Leaving tests_all_defined()
# Entering tests_special_from_folders_hash()
ok 886 - require Test::MockObject;
ok 887 - special_from_folders_hash: no args
ok 888 - special_from_folders_hash: undef args
Host?: To have automagic rfc6154 folder mapping, upgrade Mail::IMAPClient >= 3.34
ok 889 - special_from_folders_hash: $imap void
Host?: special Sent = \Sent
ok 890 - special_from_folders_hash: $imap \Sent
# Leaving tests_special_from_folders_hash()
# Entering tests_notmatch()
ok 891 - notmatch: no args => undef
ok 892 - notmatch: one args => undef
ok 893 - notmatch: lalala !~ /lalala/ => 1
ok 894 - notmatch: /lalala/ !~ /lalala/ => 0
ok 895 - notmatch: lalala !~ /ooo/ => 1
ok 896 - notmatch: lalala !~ lalala => 0
ok 897 - notmatch: lalala !~ ^lalala => 0
ok 898 - notmatch: lalala !~ lalala$ => 0
ok 899 - notmatch: lalala !~ ^lalala$ => 0
ok 900 - notmatch: _lalala_ !~ lalala => 0
ok 901 - notmatch: lalala !~ .* => 0
ok 902 - notmatch: lalala !~ . => 0
ok 903 - notmatch: does not match regex => 1
ok 904 - notmatch: does not match regex => 1
ok 905 - notmatch: matches regex => 0
ok 906 - notmatch: does not match regex => 1
# Leaving tests_notmatch()
# Entering tests_match()
ok 907 - match: no args => undef
ok 908 - match: one args => undef
ok 909 - match: lalala =~ lalala => lalala
ok 910 - match: lalala =~ ^lalala => lalala
ok 911 - match: lalala =~ lalala$ => lalala
ok 912 - match: lalala =~ ^lalala$ => lalala
ok 913 - match: _lalala_ =~ lalala => _lalala_
ok 914 - match: lalala =~ .* => lalala
ok 915 - match: lalala =~ . => lalala
ok 916 - match: /lalala/ =~ /lalala/ => /lalala/
ok 917 - match: foo =~ s/foo/bar/g => 0
ok 918 - match: s/foo/bar/g =~ s/foo/bar/g => s/foo/bar/g
ok 919 - match: lalala =~ ooo => 0
ok 920 - match: lalala =~ lal_ala => 0
ok 921 - match: lalala =~ \. => 0
ok 922 - match: lalalaX =~ ^lalala$ => 0
ok 923 - match: lalala =~ /lalala/ => 0
ok 924 - match: LALALA =~ (?i:lalala) => 1
Fatal regex (?{`ls /`})
ok 925 - match: LALALA =~ (?{`ls /`}) => undef
Fatal regex (?{print "CACA"})
ok 926 - match: LALALA =~ (?{print "CACA"}) => undef
Fatal regex (??{print "CACA"})
ok 927 - match: CACA =~ (??{print "CACA"}) => undef
# Leaving tests_match()
# Entering tests_get_options()
Found 1 supplementary arguments: [--noexist]
It usually means a quoting issue in the command line or some misspelled or unknown options.
ok 928 - get_options: --noexist => undef
ok 929 - get_options: --noexist => undef
Found 2 supplementary arguments: [--lalala --noexist]
It usually means a quoting issue in the command line or some misspelled or unknown options.
ok 930 - get_options: --lalala --noexist --version => undef
ok 931 - get_options: --version => 1
ok 932 - get_options: --noexist => undef
ok 933 - get_options: --delete2 => 1
ok 934 - get_options: --delete2 => var delete2 = 1
ok 935 - get_options: --delete 2 => var undef
ok 936 - get_options: --delete 2 => var still undef ; good!
Found 1 supplementary arguments: [--delete 2]
It usually means a quoting issue in the command line or some misspelled or unknown options.
ok 937 - get_options: --delete 2 => undef
ok 938 - get_options: --version => 1
ok 939 - get_options: --help => 1
Found 1 supplementary arguments: [--noexist]
It usually means a quoting issue in the command line or some misspelled or unknown options.
ok 940 - get_options: --debug --noexist --version => undef
ok 941 - get_options: --version => 1
Found 1 supplementary arguments: [kaka]
It usually means a quoting issue in the command line or some misspelled or unknown options.
ok 942 - get_options: kaka => undef
Found 2 supplementary arguments: [kaka1 kaka2]
It usually means a quoting issue in the command line or some misspelled or unknown options.
ok 943 - get_options: extra1 --version extra2 => undef
ok 944 - get_options: --host1 HOST_01 => 2
ok 945 - get_options: --host1 HOST_01 => host1 = HOST_01
# Leaving tests_get_options()
# Entering tests_get_options_cgi_context()
ok 946 - get_options cgi context: no CGI module => undef
ok 947 - get_options cgi context: no CGI param => undef
ok 948 - get_options cgi context: QUERY_STRING => 22
ok 949 - get_options cgi context: --version => on
ok 950 - get_options cgi context: $mysync->{debugenv} => undef
ok 951 - get_options cgi context: QUERY_STRING => 36
ok 952 - get_options cgi context: $mysync->{user1} => test1
ok 953 - get_options cgi context: $mysync->{ folder } => fd1
ok 954 - get_options cgi context: $mysync->{ folder } => fd1, fd2
ok 955 - get_options cgi context: f1f2h => s1=d1 s2=d2 s3=d3
ok 956 - get_options cgi context: --nodry => $mysync->{ dry } => undef
ok 957 - get_options cgi context: --host1=example.com => $mysync->{host1} => example.com
Argument "" isn't numeric in addition (+) at imapsync line 22451.
ok 958 - get_options cgi context: --simulong= => $mysync->{simulong} => undef
ok 959 - get_options cgi context: --simulong => $mysync->{simulong} => undef
ok 960 - get_options cgi context: --simulong=4 => $mysync->{simulong} => 4
ok 961 - get_options cgi context: --simulong=4 => $mysync->{ folder } => undef
ok 962 - get_options cgi context: --testslive=on => testslive => on
ok 963 - get_options cgi context: --log=0 => log => 0
# Leaving tests_get_options_cgi_context()
# Entering tests_hashsynclocal()
ok 964 - hashsynclocal: no hashfile name
ok 965 - hashsynclocal: empty hashfile name
ok 966 - hashsynclocal: no exists hashfile dir
ok 967 - hashsynclocal: permission denied
ok 968 - hashsynclocal: mkpath W/tmp/tests/
ok 969 - hashsynclocal: chmod 755 W/tmp/tests/
ok 970
ok 971 - hashsynclocal: verify there is no W/tmp/tests/imapsync_hash
Writing random hashkey in W/tmp/tests/imapsync_hash, once for all times
ok 972 - hashsynclocal: creating/reading W/tmp/tests/imapsync_hash
ok 973 - hashsynclocal: reading W/tmp/tests/imapsync_hash second time => same
# Leaving tests_hashsynclocal()
# Entering tests_hashsync()
ok 974 - hashsync: no args
ok 975 - hashsync: empty args
ok 976 - hashsync: host1 zzz =>
ok 977 - hashsync: host1 zzz =>
ok 978 - hashsync: + host2 zzz =>
ok 979 - hashsync: + hashkey A =>
ok 980 - hashsync: undef $mysync
ok 981 - hashsync: password1: abcd
ok 982 - hashsync: 1/0 not fatal
ok 983 - hashsync: password1: Ö with eval
ok 984 - hashsync: password1: Ö without eval
ok 985 - hashsync: password1: \x{00D6}
1 00D6:Ö
2 00D6:Ö
3 00D6:Ö
4 00D6:Ö
5 6536:æ”¶
6 6536:收
Wide character in print at imapsync line 5957.
7 6536:æ”¶
8 6536:æ”¶
ok 986 - hashsync: password1: æ”¶
ok 987 - hashsync: password1: \x{6536} with eval
ok 988 - hashsync: password1: abcd again
# Leaving tests_hashsync()
# Entering tests_output()
ok 989 - output: no args => undef
ok 990 - output: one arg => ""
ok 991 - output: rrrr => rrrr
ok 992 - output: aaaa => rrrraaaa
ok 993 - output: \n => rrrraaaa\n
ok 994 - output: A B C => rrrraaaaABC\n
# Leaving tests_output()
# Entering tests_output_reset_with()
ok 995 - output_reset_with: no args => undef
ok 996 - output_reset_with: one arg => ""
ok 997 - output_reset_with: rrrr => rrrr
ok 998 - output_reset_with: aaaa => aaaa
ok 999 - output_reset_with: \n => \n
# Leaving tests_output_reset_with()
# Entering tests_output_start()
ok 1000 - output_start: no args => undef
ok 1001 - output_start: one arg => ""
ok 1002 - output_start: rrrr => rrrr
ok 1003 - output_start: aaaa => aaaarrrr
ok 1004 - output_start: \n => \naaaarrrr
ok 1005 - output_start: A B C => ABC\naaaarrrr
# Leaving tests_output_start()
# Entering tests_check_last_release()
# This imapsync is up to date. ( local 2.314 >= official 1.1 )( Use --noreleasecheck to avoid this release check. )
ok 1006 - check_last_release: up to date
ok 1007 - check_last_release: up to date, include number
# This imapsync is not up to date. ( local 2.314 < official 999.999 )( Use --noreleasecheck to avoid this release check. )
ok 1008 - check_last_release: not up to date
ok 1009 - check_last_release: not up to date, include number
ok 1010 - check_last_release: unknown
ok 1011 - check_last_release: timeout
ok 1012 - check_last_release: lalala
# This imapsync is up to date. ( local 2.314 >= official 2.314 )( Use --noreleasecheck to avoid this release check. )
# Leaving tests_check_last_release()
# Entering tests_loadavg()
ok 1013 # skip Tests for darwin
ok 1014 # skip Tests for darwin
ok 1015 # skip Tests for darwin
ok 1016 - loadavg: /noexist => undef
ok 1017 - loadavg: no args
ok 1018 - loadavg 0.39 0.30 0.37 1/602 6073 => [0.39, 0.30, 0.37, 1/602]
ok 1019 # skip Tests for Windows
# Leaving tests_loadavg()
# Entering tests_cpu_number()
ok 1020 - tests_cpu_number: is_integer
ok 1021 - tests_cpu_number: 1 or more
ok 1022 - tests_cpu_number: 1 => 1
ok 1023 - tests_cpu_number: -1 => 1
ok 1024 - tests_cpu_number: lalala => 1
ok 1025 - tests_cpu_number: 42 => 42
# cpu_number = 64
# hostname = arch-nspawn-1648141
ok 1026 # skip cpu_number on host != i005 (FreeBSD)
ok 1027 # skip cpu_number on host != petite (Linux)
ok 1028 # skip cpu_number on host != polarhome macosx (Darwin MacOS X 10.7.5 Lion)
ok 1029 # skip cpu_number on host != pcHPDV7-HP (Windows 7, 64bits)
ok 1030 # skip cpu_number on host != CUILLERE (Windows XP, 32bits)
# Leaving tests_cpu_number()
# Entering tests_load_and_delay()
ok 1031 - load_and_delay: no args => undef
ok 1032 - load_and_delay: not 3 args => undef
ok 1033 - load_and_delay: division per 0 => undef
ok 1034 - load_and_delay: max=1, one core, loads is 0 => ok
ok 1035 - load_and_delay: max=1, one core, loads are all 0 => ok
ok 1036 - load_and_delay: six arguments => ok
ok 1037 - load_and_delay: max=1, two core, loads are all 1 => ok
ok 1038 - load_and_delay: max=1, two core, load1m is 1 => ok
ok 1039 - load_and_delay: max=1, one core, load1m=0 load5m=0 load15m=0 => 0
ok 1040 - load_and_delay: max=1, one core, load1m=0 load5m=0 load15m=2 => 0
ok 1041 - load_and_delay: max=1, one core, load1m=0 load5m=2 load15m=0 => 0
ok 1042 - load_and_delay: max=1, one core, load1m=0 load5m=2 load15m=2 => 0
ok 1043 - load_and_delay: max=1, one core, load1m=0 load5m=3 load15m=3 => 0
ok 1044 - load_and_delay: max=1, one core, load1m=0 load5m=3 load15m=3 => 0
ok 1045 - load_and_delay: max=1, one core, load1m=.2 load5m=0 load15m=0 => 0
ok 1046 - load_and_delay: max=1, one core, load1m=.2 load5m=0 load15m=.2 => 0
ok 1047 - load_and_delay: max=1, one core, load1m=2 load5m=2 load15m=0 => 0
ok 1048 - load_and_delay: max=1, one core, load1m=.2 load5m=.2 load15m=.2 => 0
ok 1049 - load_and_delay: max=1, one core, load1m=3 load5m=0 load15m=0 => 0
ok 1050 - load_and_delay: max=1, one core, load1m=3 load5m=.9 load15m=.9 => 0
ok 1051 - load_and_delay: max=1, one core, load1m=3 load5m=3 load15m=.9 => 5
ok 1052 - load_and_delay: max=1, one core, load1m=3 load5m=3 load15m=3 => 15
ok 1053 - load_and_delay: max=1, one core, load1m=.9 load5m=.9 load15m=.9 => 0
ok 1054 - load_and_delay: max=3, one core, loads are all 1 => ok
ok 1055 - load_and_delay: max=3, two core, loads are all 2 => ok
ok 1056 - load_and_delay: max=3, two core, load1m is 2 => ok
ok 1057 - load_and_delay: max=3, one core, load1m=0 load5m=0 load15m=0 => 0
ok 1058 - load_and_delay: max=3, one core, load1m=0 load5m=0 load15m=2 => 0
ok 1059 - load_and_delay: max=3, one core, load1m=0 load5m=2 load15m=0 => 0
ok 1060 - load_and_delay: max=3, one core, load1m=0 load5m=2 load15m=2 => 0
ok 1061 - load_and_delay: max=3, one core, load1m=0 load5m=3 load15m=3 => 0
ok 1062 - load_and_delay: max=3, one core, load1m=0 load5m=3 load15m=3 => 0
ok 1063 - load_and_delay: max=3, one core, load1m=2 load5m=0 load15m=0 => 0
ok 1064 - load_and_delay: max=3, one core, load1m=2 load5m=0 load15m=2 => 0
ok 1065 - load_and_delay: max=3, one core, load1m=2 load5m=2 load15m=0 => 0
ok 1066 - load_and_delay: max=3, one core, load1m=2 load5m=2 load15m=2 => 0
ok 1067 - load_and_delay: max=3, one core, load1m=3 load5m=0 load15m=0 => 0
ok 1068 - load_and_delay: max=3, one core, load1m=3 load5m=2.9 load15m=2.9 => 0
ok 1069 - load_and_delay: max=3, one core, load1m=3 load5m=3 load15m=2.9 => 0
ok 1070 - load_and_delay: max=3, one core, load1m=3 load5m=3 load15m=3 => 0
ok 1071 - load_and_delay: max=3, one core, load1m=2.9 load5m=2.9 load15m=2.9 => 0
ok 1072 - load_and_delay: max=6, one core, load1m=6 load5m=0 load15m=0 => 1
ok 1073 - load_and_delay: max=6, one core, load1m=6 load5m=5.9 load15m=5.9 => 1
ok 1074 - load_and_delay: max=6, one core, load1m=6 load5m=6 load15m=5.9 => 5
ok 1075 - load_and_delay: max=6, one core, load1m=6 load5m=6 load15m=6 => 15
ok 1076 - load_and_delay: max=6, one core, load1m=5.9 load5m=5.9 load15m=5.9 => 1
# Leaving tests_load_and_delay()
# Entering tests_sslcheck()
ok 1077 - sslcheck: no sslcheck => undef
ok 1078 - sslcheck: no host => 0
ok 1079 - sslcheck: tls1 => 0
Host1: probing ssl on port 993 ( use --nosslcheck to avoid this ssl probe )
Probing imap ssl on host test1.lamiral.info port 993, got banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.
Host1: sslcheck detected open ssl port 993 so turning ssl on (use --nossl1 --notls1 to turn off SSL and TLS wizardry)
ok 1080 - sslcheck: test1.lamiral.info => 1
ok 1081 - sslcheck: test1.lamiral.info => ssl1 1
ok 1082 - sslcheck: sslcheck off => undef
Host1: probing ssl on port 993 ( use --nosslcheck to avoid this ssl probe )
Probing imap ssl on host test1.lamiral.info port 993, got banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.
Host1: sslcheck detected open ssl port 993 so turning ssl on (use --nossl1 --notls1 to turn off SSL and TLS wizardry)
Host2: probing ssl on port 993 ( use --nosslcheck to avoid this ssl probe )
Probing imap ssl on host test2.lamiral.info port 993, got banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.
Host2: sslcheck detected open ssl port 993 so turning ssl on (use --nossl2 --notls2 to turn off SSL and TLS wizardry)
ok 1083 - sslcheck: test1.lamiral.info + test2.lamiral.info => 2
Host2: probing ssl on port 993 ( use --nosslcheck to avoid this ssl probe )
Probing imap ssl on host test2.lamiral.info port 993, got banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.
Host2: sslcheck detected open ssl port 993 so turning ssl on (use --nossl2 --notls2 to turn off SSL and TLS wizardry)
ok 1084 - sslcheck: test1.lamiral.info + test2.lamiral.info + tls1 => 1
# Leaving tests_sslcheck()
# Entering tests_not_long_imapsync_version_public()
ok 1085 - not_long_imapsync_version_public: public release is a number
# Leaving tests_not_long_imapsync_version_public()
# Entering tests_reconnect_if_needed()
ok 1086 - reconnect_if_needed: no args => undef
ok 1087 - reconnect_if_needed: undef arg => undef
ok 1088 - reconnect_if_needed: empty new Mail::IMAPClient => undef
reconnecting to test.lamiral.info, last error:
Connecting with IO::Socket::IP PeerAddr test.lamiral.info PeerPort 143 Proto tcp Timeout 600 Debug 1
Connected to test.lamiral.info
Read: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
ok 1089 - reconnect_if_needed: test.lamiral.info => 1
ok 1090 - reconnect_if_needed: test.lamiral.info IMAPSYNC_RECONNECT_COUNT => 1
# Leaving tests_reconnect_if_needed()
# Entering tests_reconnect_12_if_needed()
ok 1091 - reconnect_12_if_needed: test1&test2 .lamiral.info => 1
ok 1092 - reconnect_12_if_needed: test1.lamiral.info IMAPSYNC_RECONNECT_COUNT => 1
ok 1093 - reconnect_12_if_needed: test2.lamiral.info IMAPSYNC_RECONNECT_COUNT => 1
# Leaving tests_reconnect_12_if_needed()
# Entering tests_sleep_if_needed()
ok 1094 - sleep_if_needed: no args => undef
ok 1095 - sleep_if_needed: arg undef => undef
ok 1096 - sleep_if_needed: maxbytespersecond only => no sleep => 0
ok 1097 - sleep_if_needed: begin_transfer_time now => no sleep => 0
ok 1098 - sleep_if_needed: total_bytes_transferred == 0 => no sleep => 0
sleeping 0.20 s
ok 1099 - sleep_if_needed: total_bytes_transferred == 2200 since 2s => sleep 0.2s
ok 1100 - sleep_if_needed: total_bytes_transferred == 2200 since 2+2 == 4s => no sleep
sleeping 0.10 s
ok 1101 - sleep_if_needed: total_bytes_transferred == 4000 since 2s but maxsleep 0.1s => sleep 0.1s
ok 1102 - sleep_if_needed: maxbytesafter == total_bytes_transferred => no sleep => 0
# Leaving tests_sleep_if_needed()
# Entering tests_string_to_file()
ok 1103 - string_to_file: no args => undef
ok 1104 - string_to_file: one arg => undef
string_to_file: failure writing to . with error: Is a directory
ok 1105 - string_to_file: writing a directory => undef
ok 1106 - string_to_file: mkpath W/tmp/tests/
ok 1107 - string_to_file: chmod 755 W/tmp/tests/
ok 1108 - string_to_file: W/tmp/tests/canbewritten with lalala
ok 1109 - string_to_file: W/tmp/tests/empty with empty string
string_to_file: directory of /cantouch is not writable
ok 1110 - string_to_file: /cantouch denied => undef
# Leaving tests_string_to_file()
# Entering tests_file_to_string()
ok 1111 - file_to_string: no args => undef
ok 1112 - file_to_string: /noexist => undef
ok 1113 - file_to_string: reading a directory => undef
ok 1114 - file_to_string: reading myself
ok 1115 - file_to_string: mkpath W/tmp/tests/
ok 1116 - file_to_string: string_to_file filling W/tmp/tests/canbewritten with lilili
ok 1117 - file_to_string: reading W/tmp/tests/canbewritten is lilili
ok 1118 - file_to_string: string_to_file filling W/tmp/tests/empty with empty string
ok 1119 - file_to_string: reading W/tmp/tests/empty is empty
# Leaving tests_file_to_string()
# Entering tests_under_cgi_context()
ok 1120 - under_cgi_context: SERVER_SOFTWARE unset => not in cgi context
ok 1121 - under_cgi_context: SERVER_SOFTWARE set => in cgi context
ok 1122 - under_cgi_context: SERVER_SOFTWARE unset => not in cgi context
ok 1123 - under_cgi_context: SERVER_SOFTWARE set => in cgi context
# Leaving tests_under_cgi_context()
# Entering tests_umask()
ok 1124 - umask: umask is umask
ok 1125 - umask: umask is umask again + save it: 18
ok 1126 - umask: umask 0000
ok 1127 - umask: umask is now 0000
ok 1128 - umask: umask 0777 call, previous 0000
ok 1129 - umask: umask is now 0777
ok 1130 - umask: umask 18 restore inital value, previous 0777
ok 1131 - umask: umask 18 restore inital value, previous defined
ok 1132 - umask: umask is umask restored
# Leaving tests_umask()
# Entering tests_umask_str()
ok 1133 - umask_str: no parameters => idopotent
ok 1134 - umask_str: no parameters => idopotent + save
ok 1135 - umask_str: q{ } => 0000
ok 1136 - umask_str: q{} => 0000
ok 1137 - umask_str: 0000 => 0000
ok 1138 - umask_str: 0 => 0000
ok 1139 - umask_str: 0200 => 0200
ok 1140 - umask_str: 0400 => 0400
ok 1141 - umask_str: 0600 => 0600
ok 1142 - umask_str: 0100 => 0100
ok 1143 - umask_str: 0001 => 0001
ok 1144 - umask_str: 0777 => 0777
ok 1145 - umask_str: 00777 => 0777
ok 1146 - umask_str: 777 => 0777
ok 1147 - umask_str: UMASK_PARANO 0077 => 0077
ok 1148 - umask_str: restore with str
ok 1149 - umask_str: umask is restored, controlled by direct umask
ok 1150 - umask_str: umask is restored by direct umask
ok 1151 - umask_str: umask initial controlled by direct umask
# Leaving tests_umask_str()
# Entering tests_set_umask()
ok 1152 - set_umask: set to 0077
# Leaving tests_set_umask()
# Entering tests_createhashfileifneeded()
ok 1153 - createhashfileifneeded: no parameters => undef
# Leaving tests_createhashfileifneeded()
# Entering tests_slash_to_underscore()
ok 1154 - slash_to_underscore: no parameters => undef
ok 1155 - slash_to_underscore: / => _
ok 1156 - slash_to_underscore: /abc/def/ => _abc_def_
# Leaving tests_slash_to_underscore()
# Entering tests_testunit()
testsunit warning: no argument given
ok 1157 - testsunit: no parameters => undef
testsunit warning: argument is empty
ok 1158 - testsunit: an undef parameter => undef
testsunit warning: argument is empty
ok 1159 - testsunit: an empty parameter => undef
testsunit warning: function idonotexist does not exist
ok 1160 - testsunit: a do not exist function as parameter => undef
# Entering tests_true()
ok 1161 - true: 1 is 1
ok 1162 - true: A is A
# Leaving tests_true()
ok 1163 - testsunit: tests_true => undef
# Leaving tests_testunit()
# Entering tests_count_zeros()
ok 1164 - count_0s: no parameters => 0
ok 1165 - count_0s: 0 => 1
ok 1166 - count_0s: 1 => 0
ok 1167 - count_0s: 1, 0, 1 => 1
ok 1168 - count_0s: 1, 0, 1, 0 => 2
# Leaving tests_count_zeros()
# Entering tests_report_failures()
ok 1169 - report_failures: no parameters => undef
ok 1170 - report_failures: "first" failed => nb 1 - first
ok 1171 - report_failures: "first" success =>
ok 1172 - report_failures: "second" failed => nb 2 - second
ok 1173 - report_failures: both failed => nb 1 - first nb 2 - second
# Leaving tests_report_failures()
# Entering tests_min()
ok 1174 - min 0 => 0
ok 1175 - min 1 => 1
ok 1176 - min -1 => -1
ok 1177 - min no arg => undef
ok 1178 - min 1 100 => 1
ok 1179 - min 100 1 => 1
ok 1180 - min 100 42 1 => 1
ok 1181 - min 100 42 1 => 1
ok 1182 - min 100 42 1 => 1
ok 1183 - min 100 haha 1 => 1
ok 1184 - min -1 1 => -1
ok 1185 - min undef 1 => 1
ok 1186 - min undef 0 => 0
ok 1187 - min undef 1 => 1
ok 1188 - min undef, 2, 0, 1 => 0
ok 1189 - min haha => haha
ok 1190 - min aa bb => aa
ok 1191 - min bb aa bb => aa
ok 1192 - min bb aa bb => aa
# Leaving tests_min()
# Entering tests_usage()
ok 1193 - usage: contains Name:
Name:
imapsync - Email tool for syncing two IMAP accounts, one way, and without
duplicates.
Version:
This documentation refers to Imapsync $Revision: 2.314 $
Usage:
To synchronize the source imap account
"test1" on server "test1.lamiral.info" with password "secret1"
to the destination imap account
"test2" on server "test2.lamiral.info" with password "secret2"
do:
imapsync \
--host1 test1.lamiral.info --user1 test1 --password1 secret1 \
--host2 test2.lamiral.info --user2 test2 --password2 secret2
Options:
usage: imapsync [options]
The standard options are the six values forming the credentials. Three
values on each side are needed to login to the IMAP servers. These six
values are a hostname, a username, and a password, twice.
Here are the conventions used in the following descriptions of the options:
str means a string
int means an integer number
flo means a float number
reg means a regular expression
cmd means a command
--dry : Makes imapsync do nothing for real; it just prints what
would be done without --dry.
Options/credentials:
--host1 str : Source or "from" imap server.
It can be a hostname or an IP address.
--port1 int : Port to connect on host1.
Optional since the default port is the
well-known port imap/143 or imaps/993.
Add --ssl1 if you want an SSL/TLS connection on host1.
--user1 str : User to login on host1.
--password1 str : Password of user1.
--host2 str : "destination" imap server.
--port2 int : Port to connect on host2.
Optional since the default port is the
well-known port imap/143 or imaps/993.
Add --ssl2 if you want an SSL/TLS connection on host2.
--user2 str : User to login on host2.
--password2 str : Password of user2.
--showpasswords : Shows passwords on output instead of "MASKED".
Useful to restart a complete run by just reading
the command line used in the log,
or to debug passwords.
It's not a secure practice at all!
--passfile1 str : Password file for the user1. It must contain the
password on the first line. This option avoids showing
the password on the command line like --password1 does.
--passfile2 str : Password file for the user2.
You can also pass the passwords in the environment variables
IMAPSYNC_PASSWORD1 and IMAPSYNC_PASSWORD2. If you don't pass the user1
password via --password1 nor --passfile1 nor $IMAPSYNC_PASSWORD1 then
imapsync will prompt you to enter the password on the terminal. Same thing
for the user2 password.
Options/encryption:
--nossl1 : Do not use an IMAP over SSL/TLS connection on host1.
--ssl1 : Use an IMAP over SSL/TLS connection on host1.
It is imaps. The default port is 993.
Used by default, if possible.
--nossl2 : Do not use an IMAP over SSL/TLS connection on host2.
--ssl2 : Use an IMAP over SSL/TLS connection on host2.
Same as --ssl1 but for host2.
--notls1 : Do not try a "STARTTLS" SSL/TLS connection on host1.
--tls1 : Use a "STARTTLS" SSL/TLS encryption on host1.
The default port is 143.
Used by default, after imaps probing failed,
and if possible.
--notls2 : Do not use a "STARTTLS" SSL/TLS connection on host2.
--tls2 : Use a STARTTLS SSL/TLS encryption on host2.
Same as --tls1 but for host2.
--debugssl int : SSL/TLS debug mode from 0 to 4.
--sslargs1 str : Pass any SSL/TLS parameter for the host1 connection.
Example:
--sslargs1 SSL_verify_mode=1 --sslargs1 SSL_version=TLSv1_3
See all possibilities in the new() method of IO::Socket::SSL
http://search.cpan.org/perldoc?IO::Socket::SSL#Description_Of_Methods
--sslargs2 str : Pass any SSL/TLS parameter for the host2 connection.
Same as --sslargs1 but for host2.
Options/authentication:
--authmech1 str : Auth mechanism to use with host1:
PLAIN, LOGIN, CRAM-MD5 etc. Use UPPERCASE.
--authmech2 str : Auth mechanism to use with host2. See --authmech1
--authuser1 str : User to auth with on host1 (admin user).
Avoid using --authmech1 SOMETHING with --authuser1.
--authuser2 str : User to auth with on host2 (admin user).
--proxyauth1 : Use proxyauth on host1. Requires --authuser1.
Required by Sun/iPlanet/Netscape IMAP servers to
be able to use an administrative user.
--proxyauth2 : Use proxyauth on host2. Requires --authuser2.
--authmd51 : Use MD5 authentication for host1.
--authmd52 : Use MD5 authentication for host2.
--domain1 str : Domain on host1 (NTLM authentication).
--domain2 str : Domain on host2 (NTLM authentication).
--oauthaccesstoken1 str : The access token to authenticate with OAUTH2 on
host1. It will be combined with the --user1 value to
form the string to pass with XOAUTH2 authentication.
Instead of the access token itself, the value can be
the file containing the access token on the first line.
If the value is a file, imapsync reads its first line
and takes this line as the access token. The advantage
of the file is that if the access token changes then
imapsync can read it again when it needs to reconnect
during a run.
--oauthaccesstoken2 str : same thing as --oauthaccesstoken1 but for host2.
--oauthdirect1 str : The direct string to pass with XOAUTH2 authentication
for host1.
--oauthdirect2 str : same thing as --oauthdirect1 but for host2.
--oauthrefreshcmd1 str : An optional command to call, to refresh the host1
token before any oauth authentication.
It can have arguments like "cmd arg1 arg2 ..."
--oauthrefreshcmd2 str : same thing as --oauthrefreshcmd1 but for host2.
Options/folders:
--folder str : Sync this folder.
--folder str : and this one, etc.
--folderrec str : Sync this folder and all its sub-folders.
--folderrec str : and this one, etc.
--folderfirst str : Sync this folder first. Ex. --folderfirst "INBOX"
--folderfirst str : then this one, etc.
--folderlast str : Sync this folder last. --folderlast "[Gmail]/All Mail"
--folderlast str : then this one, etc.
--nomixfolders : Do not merge folders when host1 is case-sensitive
while host2 is not (like Exchange). Only the first
similar folder is synced. Example: with folders
"Sent", "SENT" and "sent" on host1, only "Sent"
will be synced to host2.
--skipemptyfolders : Empty host1 folders are not created on host2.
--include reg : Sync folders matching this regular expression
--include reg : or this one, etc.
If both --include --exclude options are used, then
include is done before.
--exclude reg : Skips folders matching this regular expression
Several folders to avoid:
--exclude 'fold1|fold2|f3' skips fold1, fold2 and f3.
--exclude reg : or this one, etc.
--automap : guesses folder mapping, for folders well known as
"Sent", "Junk", "Drafts", "All", "Archive", "Flagged".
--f1f2 str1=str2 : Force folder str1 to be synced to str2,
--f1f2 overrides --automap and --regextrans2.
Use several --f1f2 options to map several folders.
Option --f1f2 is a one-to-one-only folder mapping,
and str1 and str2 must be full path folder names.
Use --regextrans2 for more general mappings.
--subfolder2 str : Syncs the whole host1 folders hierarchy under the
host2 folder named str.
It does it internally by adding three
--regextrans2 options before all others.
Add --debug to see what's going on.
--subfolder1 str : Syncs the host1 folders hierarchy which is under folder
str to the root hierarchy of host2.
It's the counterpart of a sync done by --subfolder2
when doing it in the reverse order.
Backup/Restore scenario:
Use --subfolder2 str for a backup to the folder str
on host2. Then use --subfolder1 str for restoring
from the folder str, after inverting
host1/host2 user1/user2 values.
--subscribed : Transfers subscribed folders.
--subscribe : Subscribe to the folders transferred on the
host2 that are subscribed on host1. On by default.
--subscribeall : Subscribe to the folders transferred on the
host2 even if they are not subscribed on host1.
--prefix1 str : Remove prefix str to all destination folders,
usually "INBOX." or "INBOX/" or an empty string "".
imapsync guesses the prefix if the host1 imap server
does not have NAMESPACE capability. So this option
should not be used most of the time.
--prefix2 str : Add prefix to all host2 folders. See --prefix1
--sep1 str : Host1 separator. This option should not be used
most of the time.
Imapsync gets the separator from the server itself,
by using NAMESPACE, or it tries to guess it
from the folder listing (it counts
characters / . \\ \ in folder names and choose the
more frequent, or finally / if nothing is found.
--sep2 str : Host2 separator. See --sep1
--regextrans2 reg : Apply the whole regex to each destination folder.
--regextrans2 reg : and this one. etc.
When you play with the --regextrans2 option, first
add also the safe options --dry --justfolders
Then, when happy, remove --dry for a run, then
remove --justfolders for the next ones.
Have in mind that --regextrans2 is applied after
the automatic prefix and separator inversion.
For examples see:
https://imapsync.lamiral.info/FAQ.d/FAQ.Folders_Mapping.txt
Options/folders sizes:
--nofoldersizes : Do not calculate the size of each folder at the
beginning of the sync. The default behaviour
calculates them.
--nofoldersizesatend: Do not calculate the size of each folder at the
end of the sync. The default behaviour
calculates them.
--justfoldersizes : Exit after having printed the initial folder sizes.
Options/tmp:
--tmpdir str : Where to store temporary files and subdirectories.
Will be created if it doesn't exist.
Default is $HOME/tmp. It used to be /tmp on Unix,
before imapsync 2.250. But /tmp is not safe, see
https://github.com/imapsync/imapsync/issues/399
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-34204
--pidfile str : The file where the imapsync pid is written.
It can be specified with the form dirname/filename,
ie, a complete path.
The default name is imapsync.pid in tmpdir.
--pidfilelocking : Abort if pidfile already exists. Useful to avoid
concurrent transfers on the same mailbox.
Options/log:
--nolog : Turn off logging on file. By default in Docker context.
--log : Turn on logging on file. By default in normal and CGI contextes.
--logfile str : Change the default log filename (can be dirname/filename).
--logdir str : Change the default log directory. Default is LOG_imapsync/
The default logfile name is, for example:
LOG_imapsync/2019_12_22_23_57_59_532_user1_user2.txt
where:
2019_12_22_23_57_59_532 is nearly the date of the start in the format
YYYY_MM_DD_HH_MM_SS_mmm corresponding to the meaning
year_month_day_hour_minute_second_millisecond
and user1 user2 are the --user1 --user2 values.
Options/messages:
--skipmess reg : Skips messages matching the regex.
Example: 'm/[\x80-\xff]/' # to avoid 8bits messages.
--skipmess is applied before --regexmess
--skipmess reg : or this one, etc.
--skipcrossduplicates : Avoid copying messages that are already copied
in another folder, good from Gmail to XYZ when
XYZ is not also Gmail.
Activated with --gmail1 unless --noskipcrossduplicates
--debugcrossduplicates : Prints which messages (UIDs) are skipped with
--skipcrossduplicates and in what other folders
they are.
--pipemess cmd : Apply this cmd command to each message content
before the copy.
--pipemess cmd : and this one, etc.
With several --pipemess, the output of each cmd
command (STDOUT) is given to the input (STDIN)
of the next command.
For example,
--pipemess cmd1 --pipemess cmd2 --pipemess cmd3
is like a Unix pipe:
"cat message | cmd1 | cmd2 | cmd3"
--disarmreadreceipts : Disarms read receipts (host2 Exchange issue)
--regexmess reg : Apply the whole regex to each message before transfer.
Example: 's/\000/ /g' # to replace null characters
by spaces.
--regexmess reg : and this one, etc.
--truncmess int : truncates messages when their size exceeds the int
value, specified in bytes. Good to sync too big
messages or to "suppress" attachments.
Have in mind that this way, messages become
uncoherent somehow.
--nodry1 : makes imapsync fetching messages from host1,
even when --dry is on.
--dry --nodry1 is useful when debugging transformation
options like --pipemess or --regexmess
Options/labels:
Gmail presents labels as folders in imap. Imapsync can accelerate the sync
by syncing X-GM-LABELS; it will avoid to transferring messages when they
are already on host2 in another folder.
--synclabels : Syncs also Gmail labels when a message is copied to host2.
Activated by default with --gmail1 --gmail2 unless
--nosynclabels is added.
--resynclabels : Resyncs Gmail labels when a message is already on host2.
Activated by default with --gmail1 --gmail2 unless
--noresynclabels is added.
For Gmail syncs, see also:
https://imapsync.lamiral.info/FAQ.d/FAQ.Gmail.txt
Options/flags:
If you encounter flag problems, see also:
https://imapsync.lamiral.info/FAQ.d/FAQ.Flags.txt
--regexflag reg : Apply the whole regex to each flags list.
Example: 's/"Junk"//g' # to remove "Junk" flag.
--regexflag reg : then this one, etc.
--resyncflags : Resync flags for already transferred messages.
On by default.
--noresyncflags : Do not resync flags for already transferred messages.
It may be useful when a user has already started to play
with its host2 account.
--filterbuggyflags : Filter flags known to be buggy and generators of errors
"BAD Invalid system flag" or "NO APPEND Invalid flag list".
Options/deletions:
--delete1 : Deletes messages on host1 server after a successful
transfer. Option --delete1 has the following behavior:
It marks messages with the IMAP flag
\Deleted, then the messages are deleted with an
EXPUNGE IMAP command. If expunging after each message
slows down the sync too much, then use
--noexpungeaftereach to speed up, expunging will then be
done only twice per folder, one at the beginning and
one at the end of a folder sync.
--expunge1 : Expunge messages on host1 just before syncing a folder.
Expunge is done per folder.
Expunge aims to really delete messages marked \Deleted.
An expunge is also done after each message is copied
if option --delete1 is set (unless --noexpungeaftereach).
--noexpunge1 : Do not expunge messages on host1.
--delete1emptyfolders : Deletes empty folders on host1, INBOX excepted.
Useful with --delete1 since what remains on host1
is only what failed to be synced.
--delete2 : Delete messages in the host2 account that are not in
the host1 account. Useful for backup or pre-sync.
--delete2 implies --uidexpunge2
--delete2duplicates : Deletes messages in host2 that are duplicates in host2.
Works only without --useuid since duplicates are
detected with a header part of each message.
NB: --delete2duplicates is far less violent than --delete2
since it removes only duplicates.
--delete2folders : Delete folders in host2 that are not in host1.
Only the selected folders are considered; all folders by
default but not all with --exclude --include --folder etc.
For safety, first try it like this, it is safe:
--delete2folders --dry --justfolders --nofoldersizes
and see what folders will be deleted.
--delete2foldersonly reg : Delete only folders matching the regex reg.
Example: --delete2foldersonly "/^Junk$|^INBOX.Junk$/"
This option activates --delete2folders
--delete2foldersbutnot reg : Do not delete folders matching the regex rex.
Example: --delete2foldersbutnot "/Tasks$|Contacts$|Foo$/"
This option activates --delete2folders
--noexpunge2 : Do not expunge messages on host2.
--nouidexpunge2 : Do not uidexpunge messages on the host2 account
that are not on the host1 account.
Options/dates:
If you encounter problems with dates, see also:
https://imapsync.lamiral.info/FAQ.d/FAQ.Dates.txt
--syncinternaldates : Sets the internal dates on host2 as the same as host1.
Turned on by default. The internal date is the date
when a message arrives on a host (Unix mtime usually).
--idatefromheader : Sets the internal dates on host2 to the same as the
ones in "Date:" headers.
Options/message selection:
--maxsize int : Skip messages larger (or equal) than int bytes
--minsize int : Skip messages smaller (or equal) than int bytes
--maxage int : Skip messages older than int days.
The final stats (skipped) don't count the older messages.
See also --minage
--minage int : Skip messages newer than int days.
The final stats (skipped) don't count newer messages
What you can do (+ zone are the messages selected):
past|----maxage+++++++++++++++>now
past|+++++++++++++++minage---->now
past|----maxage+++++minage---->now (intersection)
past|++++minage-----maxage++++>now (union, magic!)
--search str : Selects only messages returned by this IMAP SEARCH
command. Applied on both sides.
For a complete set of what can be searched, see
https://imapsync.lamiral.info/FAQ.d/FAQ.Messages_Selection.txt
--search1 str : Same as --search but for selecting host1 messages only.
--search2 str : Same as --search but for selecting host2 messages only.
So --search CRIT equals --search1 CRIT --search2 CRIT
--noabletosearch : Makes --minage and --maxage options use the internal
dates given by a FETCH imap command instead of the
"Date:" header. The internal date is the arrival date
in the mailbox.
--noabletosearch equals --noabletosearch1 --noabletosearch2
--noabletosearch1 : Like --noabletosearch but for host1 only.
--noabletosearch2 : Like --noabletosearch but for host2 only.
--maxlinelength int : skip messages with a line length longer than int bytes.
RFC 2822 says it must be no more than 1000 bytes, but
real-life servers and email clients do much more.
--useheader str : Use this header to compare messages on both sides.
Example: "Message-Id" or "Received" or "Date".
--useheader str and this one, etc.
--syncduplicates : Sync also duplicates. Off by default.
--usecache : Use cache to speed up next syncs. Off by default.
--nousecache : Do not use cache. Caveat: --useuid --nousecache creates
duplicates on multiple runs.
--useuid : Use UIDs instead of headers as a criterion to recognize
messages. Option --usecache is then implied unless
--nousecache is used.
Options/miscellaneous:
--syncacls : Synchronizes ACLs (Access Control Lists).
ACLs in IMAP are not standardized; be careful,
since one ACL code on one side may signify something
else on the other side.
--nosyncacls : Does not synchronize ACLs. This is the default.
--addheader : When a message has no headers to be identified,
--addheader adds a "Message-Id" header,
like "Message-Id: 12345@imapsync", where 12345
is the imap UID of the message on the host1 folder.
Useful to sync folders "Sent" or "Draft".
Options/debugging:
--debug : Show debug notes.
--debugfolders : Show debug notes for the folders part only.
--debugcontent : Show content of the messages transferred. Huge output.
--debugflags : Show debug notes for flags.
--debugimap1 : Show IMAP notes for host1. Very verbose.
--debugimap2 : Show IMAP notes for host2. Very verbose.
--debugimap : Show IMAP notes for host1 and host2. Twice very verbose.
--debugmemory : Show the memory consumption after each copy.
--errorsmax int : Exit when int number of errors is reached.
The default is 50 errors to quit.
--tests : Run local non-regression tests.
Exit code 0 means everything is ok.
--testslive : Run a live test with test1.lamiral.info imap server.
Useful to check the basics. It needs an internet connection.
--testslive6 : Run a live test with tests1ipv6.lamiral.info imap server.
Useful to check the IPv6 connectivity. Needs internet.
Options/specific:
--gmail1 : sets --host1 to Gmail and other options. See FAQ.Gmail.txt
--gmail2 : sets --host2 to Gmail and other options. See FAQ.Gmail.txt
--office1 : sets --host1 to Office365 and other options. See FAQ.Office365.txt
--office2 : sets --host2 to Office365 and other options. See FAQ.Office365.txt
--exchange1 : sets options for Exchange. See FAQ.Exchange.txt
--exchange2 : sets options for Exchange. See FAQ.Exchange.txt
--domino1 : sets options for Domino. See FAQ.Domino.txt
--domino2 : sets options for Domino. See FAQ.Domino.txt
Options/behavior:
--timeout1 flo : Connection timeout in seconds for host1.
Default is 120 and 0 means no timeout at all.
--timeout2 flo : Connection timeout in seconds for host2.
Default is 120 and 0 means no timeout at all.
Caveat emptor. Under CGI context, you may encounter a timeout
from the web server, killing imapsync and the imap connections.
See the document INSTALL.OnlineUI.txt and search
for "Timeout" for how to deal with this issue.
--keepalive1 : https://metacpan.org/pod/Mail::IMAPClient#Keepalive
Some firewalls and network gears like to timeout connections
prematurely if the connection sits idle.
This option enables SO_KEEPALIVE on the host1 socket.
--keepalive1 is on by default since imapsync release 2.169
Use --nokeepalive1 to disable it.
--keepalive2 : Same as --keepalive2 but for host2.
Use --nokeepalive2 to disable it.
--maxmessagespersecond flo : limits the average number of messages
transferred per second.
--maxbytespersecond int : limits the average transfer rate per second.
--maxbytesafter int : starts --maxbytespersecond limitation only after
--maxbytesafter amount of data transferred.
--maxsleep flo : do not sleep more than int seconds.
On by default, 2 seconds max, like --maxsleep 2
--abort : terminates a previous call still running.
It uses the pidfile to know what process to abort.
--exitwhenover int : Stop syncing and exits when int total bytes
transferred is reached.
--version : Print only the software version.
--noreleasecheck : Do not check for any new imapsync release.
--releasecheck : Check for new imapsync release.
It is an HTTP GET request to
http://imapsync.lamiral.info/prj/imapsync/VERSION
--emailreport1 : Put the email final report in host1 INBOX
--emailreport2 : Put the email final report in host2 INBOX
--noemailreport1 : Do not put the email final report in host1 INBOX
--noemailreport2 : Do not put the email final report in host2 INBOX
--noid : Do not send/receive the IMAP "ID" command
to the imap servers.
--justconnect : Just connect to both servers and print useful
information. Need only --host1 and --host2 options.
Obsolete since "imapsync --host1 imaphost" alone
implies --justconnect
--justlogin : Just login to both host1 and host2 with users
credentials, then exit.
--justfolders : Do only things about folders (ignore messages).
--help : print this help.
Example: to synchronize the IMAP account "test1" on "test1.lamiral.info"
to the imap account "test2" on "test2.lamiral.info"
with the test1 account password being "secret1"
and the test2 account password being "secret2"
imapsync \
--host1 test1.lamiral.info --user1 test1 --password1 secret1 \
--host2 test2.lamiral.info --user2 test2 --password2 secret2
Here is imapsync 2.314 imapsync on host arch-nspawn-1648141, a linux system with 32.7/124.9 free GiB of RAM, 0.16% used by processes.
with Perl 5.42.0 and Mail::IMAPClient 3.43
$Id: imapsync,v 2.314 2025/09/23 16:55:17 gilles Exp gilles $
This imapsync is up to date. ( local 2.314 >= official 2.314 )( Use --noreleasecheck to avoid this release check. )
Homepage: https://imapsync.lamiral.info/
ok 1194 - usage: contains Version:
ok 1195 - usage: contains Usage:
ok 1196 - usage: contains imapsync
ok 1197 - usage: no args => undef
# Leaving tests_usage()
# Entering tests_version_from_rcs()
ok 1198 - version_from_rcs: no args => undef
ok 1199 - version_from_rcs: imapsync,v 1.831 2017/08/27 => 1.831
ok 1200 - version_from_rcs: 1.831 => UNKNOWN
# Leaving tests_version_from_rcs()
# Entering tests_backslash_caret()
ok 1201 - backslash_caret: lalala => lalala
ok 1202 - backslash_caret: lalala => lalala 2nd
ok 1203 - backslash_caret: \ => ^
ok 1204 - backslash_caret: \ => ^
ok 1205 - backslash_caret: \lalala => \lalala
ok 1206 - backslash_caret: \lal\ala => \lal\ala
ok 1207 - backslash_caret: \lalala => \lalala 2nd
ok 1208 - backslash_caret: lalala\\n => lalala^\n
ok 1209 - backslash_caret: lalala\\nlalala\\n => lalala^\nlalala^\n
ok 1210 - backslash_caret: lal\ala\\nlalala\\n => lal\ala^\nlalala^\n
# Leaving tests_backslash_caret()
# Entering tests_write_pidfile()
ok 1211 - write_pidfile: no args => 1
PID file is unset ( to set it, use --pidfile filepath ; to avoid it use --pidfile "" )
ok 1212 - write_pidfile: no pidfile => 1
PID file is /no/no/no.pid ( to change it, use --pidfile filepath ; to avoid it use --pidfile "" )
Could not open /no/no/no.pid for writing. Check permissions or disk space: No such file or directory
ok 1213 - write_pidfile: no permission for /no/no/no.pid, no lock => undef
PID file is /no/no/no.pid ( to change it, use --pidfile filepath ; to avoid it use --pidfile "" )
Could not open /no/no/no.pid for writing. Check permissions or disk space: No such file or directory
ok 1214 - write_pidfile: no permission for /no/no/no.pid + lock => undef
ok 1215 - write_pidfile: mkpath W/tmp/tests/
ok 1216 - write_pidfile: lock prepa
PID file is W/tmp/tests/test.pid ( to change it, use --pidfile filepath ; to avoid it use --pidfile "" )
W/tmp/tests/test.pid already exists, overwriting it ( use --pidfilelocking to avoid concurrent runs )
Writing my PID 1427 in W/tmp/tests/test.pid
ok 1217 - write_pidfile: W/tmp/tests/test.pid + no lock => 1
ok 1218 - write_pidfile: W/tmp/tests/test.pid contains 1427
ok 1219 - write_pidfile: W/tmp/tests/test.pid contains no second line
PID file is W/tmp/tests/test.pid ( to change it, use --pidfile filepath ; to avoid it use --pidfile "" )
W/tmp/tests/test.pid already exists, another imapsync may be curently running. Aborting imapsync.
ok 1220 - write_pidfile: W/tmp/tests/test.pid + lock => undef
PID file is W/tmp/tests/test.pid ( to change it, use --pidfile filepath ; to avoid it use --pidfile "" )
W/tmp/tests/test.pid already exists, overwriting it ( use --pidfilelocking to avoid concurrent runs )
Writing my PID 1427 in W/tmp/tests/test.pid
Writing also my logfile name in W/tmp/tests/test.pid : rrrr.txt
ok 1221 - write_pidfile: W/tmp/tests/test.pid + no lock + logfile => 1
ok 1222 - write_pidfile: + no lock + logfile W/tmp/tests/test.pid contains 1427
ok 1223 - write_pidfile: + no lock + logfile W/tmp/tests/test.pid contains rrrr.txt
# Leaving tests_write_pidfile()
# Entering tests_remove_pidfile_not_running()
ok 1224 - remove_pidfile_not_running: mkpath W/tmp/tests/
No variable pid_filename
ok 1225 - remove_pidfile_not_running: no args => undef
File ./W is not a file
ok 1226 - remove_pidfile_not_running: a dir => undef
File noexists does not exist
ok 1227 - remove_pidfile_not_running: noexists => undef
ok 1228 - remove_pidfile_not_running: prepa empty W/tmp/tests/empty.pid
In remove_pidfile_not_running: pid in W/tmp/tests/empty.pid is not a pid number
ok 1229 - remove_pidfile_not_running: W/tmp/tests/empty.pid => undef
ok 1230 - remove_pidfile_not_running: prepa W/tmp/tests/lalala.pid
In remove_pidfile_not_running: pid lalala in W/tmp/tests/lalala.pid is not a pid number
ok 1231 - remove_pidfile_not_running: W/tmp/tests/lalala.pid => undef
ok 1232 - remove_pidfile_not_running: prepa W/tmp/tests/notrunning.pid
Removing old W/tmp/tests/notrunning.pid since its PID 55555 is not running anymore (oo-killed?)
Removed old W/tmp/tests/notrunning.pid
ok 1233 - remove_pidfile_not_running: W/tmp/tests/notrunning.pid => 1
ok 1234 - remove_pidfile_not_running: prepa W/tmp/tests/running.pid
Another imapsync process 1427 is running as says pidfile W/tmp/tests/running.pid
ok 1235 - remove_pidfile_not_running: W/tmp/tests/running.pid => undef
# Leaving tests_remove_pidfile_not_running()
# Entering tests_match_a_pid_number()
ok 1236 - match_a_pid_number: no args => undef
ok 1237 - match_a_pid_number: "" => undef
ok 1238 - match_a_pid_number: lalala => undef
ok 1239 - match_a_pid_number: 1 => 1
ok 1240 - match_a_pid_number: 123 => 1
ok 1241 - match_a_pid_number: -123 => 1
ok 1242 - match_a_pid_number: "123" => 1
ok 1243 - match_a_pid_number: "-123" => 1
ok 1244 - match_a_pid_number: a123 => undef
ok 1245 - match_a_pid_number: -a123 => undef
ok 1246 - match_a_pid_number: 99999 => 1
ok 1247 - match_a_pid_number: -99999 => 1
ok 1248 - match_a_pid_number: 0 => undef
ok 1249 - match_a_pid_number: 100000 => 1
ok 1250 - match_a_pid_number: 123456 => 1
ok 1251 - match_a_pid_number: "-0" => undef
ok 1252 - match_a_pid_number: -100000 => 1
ok 1253 - match_a_pid_number: -123456 => 1
ok 1254 - match_a_pid_number: 2**22 => 1
ok 1255 - match_a_pid_number: 2**22 + 1 => undef
ok 1256 - match_a_pid_number: 2**22 + 1 = 4194305 => undef
# Leaving tests_match_a_pid_number()
# Entering tests_prefix_seperator_invertion()
ok 1257 - prefix_seperator_invertion: no args => undef
ok 1258 - prefix_seperator_invertion: empty string => empty string
ok 1259 - prefix_seperator_invertion: lalala => lalala
ok 1260 - prefix_seperator_invertion: lal/ala => lal/ala
ok 1261 - prefix_seperator_invertion: lal.ala => lal.ala
ok 1262 - prefix_seperator_invertion: //// => ////
ok 1263 - prefix_seperator_invertion: ..... => .....
ok 1264 - prefix_seperator_invertion: $mysync empty string => empty string
ok 1265 - prefix_seperator_invertion: $mysync lalala => lalala
ok 1266 - prefix_seperator_invertion: $mysync lal/ala => lal/ala
ok 1267 - prefix_seperator_invertion: $mysync lal.ala => lal.ala
ok 1268 - prefix_seperator_invertion: $mysync //// => ////
ok 1269 - prefix_seperator_invertion: $mysync ..... => .....
ok 1270 - prefix_seperator_invertion: PPPQQQst empty string => QQQ
ok 1271 - prefix_seperator_invertion: PPPQQQst lalala => QQQlalala
ok 1272 - prefix_seperator_invertion: PPPQQQst lal/ala => QQQlal/ala
ok 1273 - prefix_seperator_invertion: PPPQQQst lal.ala => QQQlal.ala
ok 1274 - prefix_seperator_invertion: PPPQQQst //// => QQQ////
ok 1275 - prefix_seperator_invertion: PPPQQQst ..... => QQQ.....
ok 1276 - prefix_seperator_invertion: PPPQQQst PPPPlalala => QQQPlalala
ok 1277 - prefix_seperator_invertion: PPPQQQst PPP => QQQ
ok 1278 - prefix_seperator_invertion: PPPQQQst sss => QQQttt
ok 1279 - prefix_seperator_invertion: PPPQQQst s => QQQt
ok 1280 - prefix_seperator_invertion: PPPQQQst PPPsAAAsBBB => QQQtAAAtBBB
# Leaving tests_prefix_seperator_invertion()
# Entering tests_is_integer()
ok 1281 - is_integer: no args => undef
ok 1282 - is_integer: 1 => yes
ok 1283 - is_integer: 42 => yes
ok 1284 - is_integer: "$NUMBER_42" => yes
ok 1285 - is_integer: "42" => yes
ok 1286 - is_integer: 104_857_600 => yes
ok 1287 - is_integer: "$NUMBER_104_857_600" => yes
ok 1288 - is_integer: 104857600 => yes
ok 1289 - is_integer: blabla => no
ok 1290 - is_integer: empty string => no
# Leaving tests_is_integer()
# Entering tests_integer_or_1()
ok 1291 - integer_or_1: no args => 1
ok 1292 - integer_or_1: undef => 1
ok 1293 - integer_or_1: 10 => 10
ok 1294 - integer_or_1: empty string => 1
ok 1295 - integer_or_1: lalala => 1
# Leaving tests_integer_or_1()
# Entering tests_is_number()
ok 1296 - is_number: no args => undef
ok 1297 - is_number: undef => undef
ok 1298 - is_number: 1 => 1
ok 1299 - is_number: 1.1 => 1
ok 1300 - is_number: 0 => 1
ok 1301 - is_number: -1 => 1
ok 1302 - is_number: 1.1.1 => no
ok 1303 - is_number: q{} => no
ok 1304 - is_number: haha => no
ok 1305 - is_number: 0haha => no
ok 1306 - is_number: 2haha => no
ok 1307 - is_number: haha2 => no
# Leaving tests_is_number()
# Entering tests_sig_install()
ok 1308 - sig_install: no args => undef
ok 1309 - sig_install: arg undef => undef
ok 1310 - sig_install: empty hash => undef
In sig_install with sub tototo and signal USR1
Installing signal USR1 to call sub tototo
ok 1311 - sig_install: USR1 tototo
In subsignal with USR1 and tototo
In tototo with USR1
ok 1312 - sig_install: kill USR1 myself 1
ok 1313 - sig_install: tototo call nb 1
In sig_install with sub tototo and signal USR2
Installing signal USR2 to call sub tototo
ok 1314 - sig_install: USR2 tototo
In subsignal with USR2 and tototo
In tototo with USR2
ok 1315 - sig_install: kill USR2 myself 1
ok 1316 - sig_install: tototo call nb 2
In subsignal with USR1 and tototo
In tototo with USR1
ok 1317 - sig_install: kill USR1 myself 2
ok 1318 - sig_install: tototo call nb 3
ok 1319 - sig_install: kill USR1 myself 3
ok 1320 - sig_install: tototo call still nb 3
In sig_install with sub tototo and signal USR1 USR2
Installing signal USR1 to call sub tototo
Installing signal USR2 to call sub tototo
ok 1321 - sig_install: USR1 USR2 tototo
In subsignal with USR1 and tototo
In tototo with USR1
ok 1322 - sig_install: kill USR1 myself 4
ok 1323 - sig_install: tototo call now nb 4
In subsignal with USR2 and tototo
In tototo with USR2
ok 1324 - sig_install: kill USR1 myself 2
ok 1325 - sig_install: tototo call now nb 5
# Leaving tests_sig_install()
# Entering tests_template()
ok 1326 - tests_template: no args => undef
ok 1327 - tests_template: { } => undef
ok 1328 - tests_template: a hash is a hash
ok 1329 - tests_template: an array is an array
# Leaving tests_template()
# Entering tests_split_around_equal()
ok 1330 - split_around_equal: no args => undef
ok 1331 - split_around_equal: toto=titi => toto => titi
Odd number of elements in anonymous hash at imapsync line 22093.
ok 1332 - split_around_equal: tototiti => toto => undef
ok 1333 - split_around_equal: tototiti => toto= => empty
ok 1334 - split_around_equal: A=B C=D => A => B, C=>D
ok 1335 - split_around_equal: A=B C=D => A => B, C=>D
ok 1336 - split_around_equal: A=B=C => A => B=C
ok 1337 - split_around_equal: A=B=C=D => A => B=C=D
# Leaving tests_split_around_equal()
# Entering tests_toggle_sleep()
In toggle_sleep with
ok 1338 - toggle_sleep: no args => undef
In toggle_sleep with
ok 1339 - toggle_sleep: undef => undef
In toggle_sleep with
ok 1340 - toggle_sleep: no maxsleep => undef
In toggle_sleep with
Resetting maxsleep to 0s
ok 1341 - toggle_sleep: 3 => 0
In toggle_sleep with
Resetting maxsleep to 2s
ok 1342 - toggle_sleep: 0 => 2
In toggle_sleep with
Resetting maxsleep to 0s
ok 1343 - toggle_sleep: 2 => 0
In toggle_sleep with
Resetting maxsleep to 2s
ok 1344 - toggle_sleep: 0 => 2
In toggle_sleep with
Resetting maxsleep to 0s
ok 1345 - toggle_sleep: 2 => 0
In sig_install with sub CODE(0x2accc9ff30) and signal USR1
Installing signal USR1 to call sub CODE(0x2accc9ff30)
ok 1346 - toggle_sleep: install USR1 toggle_sleep
In subsignal with USR1 and CODE(0x2accc9ff30)
In toggle_sleep with USR1
Resetting maxsleep to 0s
ok 1347 - toggle_sleep: kill USR1 myself
ok 1348 - toggle_sleep: toggle_sleep called => sleeps are 0s
In subsignal with USR1 and CODE(0x2accc9ff30)
In toggle_sleep with USR1
Resetting maxsleep to 2s
ok 1349 - toggle_sleep: kill USR1 myself again
ok 1350 - toggle_sleep: toggle_sleep called => sleeps are 2s
In subsignal with USR1 and CODE(0x2accc9ff30)
In toggle_sleep with USR1
Resetting maxsleep to 0s
ok 1351 - toggle_sleep: kill USR1 myself
ok 1352 - toggle_sleep: toggle_sleep called => sleeps are 0s
In subsignal with USR1 and CODE(0x2accc9ff30)
In toggle_sleep with USR1
Resetting maxsleep to 2s
ok 1353 - toggle_sleep: kill USR1 myself again
ok 1354 - toggle_sleep: toggle_sleep called => sleeps are 2s
# Leaving tests_toggle_sleep()
# Entering tests_labels()
ok 1355 - labels: no parameters => undef
ok 1356 - labels: undef => undef
ok 1357 - require Test::MockObject;
ok 1358 - labels: one parameter => undef
ok 1359 - labels: $mysync UID_1 => \Seen Blabla
# Leaving tests_labels()
# Entering tests_synclabels()
ok 1360 - synclabels: no parameters => undef
ok 1361 - synclabels: undef => undef
ok 1362 - synclabels: var undef => undef
ok 1363 - require Test::MockObject;
ok 1364 - synclabels: fresh $mysync => undef
ok 1365 - synclabels: $mysync UID_1 alone => undef
ok 1366 - synclabels: $mysync UID_1 UID_2 => 1
# Leaving tests_synclabels()
# Entering tests_uidexpunge_or_expunge()
ok 1367 - uidexpunge_or_expunge: no args => undef
ok 1368 - uidexpunge_or_expunge: undef args => undef
ok 1369 - uidexpunge_or_expunge: arg empty => undef
ok 1370 - uidexpunge_or_expunge: undef Mail-IMAPClient instance => undef
ok 1371 - require Test::MockObject;
ok 1372 - uidexpunge_or_expunge: no message (1) to uidexpunge => undef
ok 1373 - uidexpunge_or_expunge: no message (2) to uidexpunge => undef
ok 1374 - uidexpunge_or_expunge: uidexpunge failure => expunge failure => undef
ok 1375 - uidexpunge_or_expunge: uidexpunge failure => expunge ok => 1
ok 1376 - uidexpunge_or_expunge: messages to uidexpunge ok => 1
# Leaving tests_uidexpunge_or_expunge()
# Entering tests_appendlimit_from_capability()
Warn: no imap with call to appendlimit_from_capability
ok 1377 - appendlimit_from_capability: no args => undef
Warn: no imap with call to appendlimit_from_capability
ok 1378 - appendlimit_from_capability: undef arg => undef
ok 1379 - require Test::MockObject;
ok 1380 - appendlimit_from_capability: APPENDLIMIT=123456 => 123456
ok 1381 - appendlimit_from_capability: not a number => undef
# Leaving tests_appendlimit_from_capability()
# Entering tests_maxsize_setting()
ok 1382 - maxsize_setting: no args => undef
ok 1383 - maxsize_setting: undef arg => undef
Warn: no imap with call to appendlimit_from_capability
ok 1384 - maxsize_setting: --maxsize 123456 alone => 123456
ok 1385 - require Test::MockObject;
Host2: found APPENDLIMIT=654321 in CAPABILITY (use --appendlimit xxxx to override this automatic setting)
Host2: Setting maxsize to appendlimit 654321
ok 1386 - maxsize_setting: APPENDLIMIT 654321 alone => 654321
ok 1387 - maxsize_setting: APPENDLIMIT 654321 alone => maxsize 654321
Host2: Getting appendlimit from --appendlimit 123456
Host2: Setting maxsize to 123456 (min of --maxsize 654321 and appendlimit 123456
ok 1388 - maxsize_setting: APPENDLIMIT 654321 + --appendlimit 123456 => 123456
ok 1389 - maxsize_setting: APPENDLIMIT 654321 + --appendlimit 123456 => maxsize 123456
Host2: found APPENDLIMIT=654321 in CAPABILITY (use --appendlimit xxxx to override this automatic setting)
Host2: Setting maxsize to 123456 (min of --maxsize 123456 and appendlimit 654321
ok 1390 - maxsize_setting: APPENDLIMIT 654321 --maxsize 123456 => 123456
Host2: found APPENDLIMIT=123456 in CAPABILITY (use --appendlimit xxxx to override this automatic setting)
Host2: Setting maxsize to 123456 (min of --maxsize 654321 and appendlimit 123456
ok 1391 - maxsize_setting: APPENDLIMIT 123456 --maxsize 654321 => 123456
# Leaving tests_maxsize_setting()
# Entering tests_mock_capability()
ok 1392 - require Test::MockObject;
ok 1393 - mock_capability: (1) no args => a Test::MockObject
ok 1394 - mock_capability: (2) no args => a Test::MockObject
ok 1395 - mock_capability: (3) no args => capability undef
ok 1396 - mock_capability: (1) one arg => MockObject
ok 1397 - mock_capability: (2) one arg OO style => capability undef
ok 1398 - mock_capability: (1) two args 123456 => capability 123456
ok 1399 - mock_capability: (2) two args 123456 => capability 123456
ok 1400 - mock_capability: (1) two args ABCD => capability ABCD
ok 1401 - mock_capability: (2) two args ABCD => capability ABCD
ok 1402 - mock_capability: (1) two args [ ABCD ] => capability [ ABCD ]
ok 1403 - mock_capability: (2) two args [ ABCD ] => capability [ ABCD ]
ok 1404 - mock_capability: (1) two args [ ABC, DEF ] => capability [ ABC, DEF ]
ok 1405 - mock_capability: (2) two args [ ABC, DEF ] => capability capability [ ABC, DEF ]
ok 1406 - mock_capability: (1) two args ABC, DEF => capability [ ABC, DEF ]
ok 1407 - mock_capability: (2) two args ABC, DEF => capability capability [ ABC, DEF ]
ok 1408 - mock_capability: (1) two args IMAP4rev1, APPENDLIMIT=123456 => capability [ IMAP4rev1, APPENDLIMIT=123456 ]
ok 1409 - mock_capability: (2) two args IMAP4rev1, APPENDLIMIT=123456 => capability capability [ IMAP4rev1, APPENDLIMIT=123456 ]
# Leaving tests_mock_capability()
# Entering tests_appendlimit()
ok 1410 - appendlimit: no args => undef
Warn: no imap with call to appendlimit_from_capability
ok 1411 - appendlimit: no imap2 => undef
ok 1412 - require Test::MockObject;
Host2: found APPENDLIMIT=123456 in CAPABILITY (use --appendlimit xxxx to override this automatic setting)
ok 1413 - appendlimit: imap2 with APPENDLIMIT=123456 => 123456
# Leaving tests_appendlimit()
# Entering tests_capability_of()
ok 1414 - capability_of: no args => undef
ok 1415 - capability_of: undef => undef
ok 1416 - require Test::MockObject;
ok 1417 - capability_of: two args unknown capability => undef
ok 1418 - capability_of: two args APPENDLIMIT 123456 => 123456 yeah!
# Leaving tests_capability_of()
# Entering tests_search_in_array()
ok 1419 - search_in_array: no array => undef
ok 1420 - search_in_array: KA KA=VA => VA
ok 1421 - search_in_array: KA KA=VA KB=VB => VA
ok 1422 - search_in_array: KA=VA KB=VB => VB
# Leaving tests_search_in_array()
# Entering tests_operators_and_exclam_precedence()
ok 1423 - tests_operators_and_exclam_precedence: ! 0 => 1
ok 1424 - tests_operators_and_exclam_precedence: ! 1 => ""
ok 1425 - tests_operators_and_exclam_precedence: not( 0 ) => 1
ok 1426 - tests_operators_and_exclam_precedence: not( 1 ) => ""
ok 1427 - tests_operators_and_exclam_precedence: ! 0 && 0 ) => 0
ok 1428 - tests_operators_and_exclam_precedence: ! 0 && 1 ) => 1
ok 1429 - tests_operators_and_exclam_precedence: ! 1 && 0 ) => ""
ok 1430 - tests_operators_and_exclam_precedence: ! 1 && 1 ) => ""
ok 1431 - tests_operators_and_exclam_precedence: ! 0 && 2 ) => 1
# Leaving tests_operators_and_exclam_precedence()
# Entering tests_teelaunch()
ok 1432 - tests_teelaunch: no args => undef
ok 1433 - tests_teelaunch: arg empty {} => undef
ok 1434 - tests_teelaunch: empty string => undef
ok 1435 - 'tests_teelaunch: logfile W/tmp/tests/tests_teelaunch.txt' isa 'IO::Tee'
Hi!
ok 1436 - tests_teelaunch: write Hi!
ok 1437 - tests_teelaunch: reading W/tmp/tests/tests_teelaunch.txt is Hi!\n
Hoo
ok 1438 - tests_teelaunch: write Hoo
ok 1439 - tests_teelaunch: reading W/tmp/tests/tests_teelaunch.txt is Hi!\nHoo\n
print() on closed filehandle $logfile_handle at /usr/share/perl5/vendor_perl/IO/Tee.pm line 132.
Argh1
ok 1440 - tests_teelaunch: write Argh1
print() on closed filehandle $logfile_handle at /usr/share/perl5/vendor_perl/IO/Tee.pm line 132.
Argh2
ok 1441 - tests_teelaunch: write Argh2
ok 1442 - tests_teelaunch: reading W/tmp/tests/tests_teelaunch.txt is still Hi!\nHoo\n
IO::Handle=GLOB(0x2ac8195620) IO::Handle=GLOB(0x2ac4bb2960)
ok 1443 - tests_teelaunch: 2 handles
IO::Handle=GLOB(0x2ac4bb2960)
ok 1444 - tests_teelaunch: 1 handle
Argh3
ok 1445 - tests_teelaunch: write Argh3 yeah
ok 1446 - tests_teelaunch: 0 handle
ok 1447 - tests_teelaunch: write Argh4 no
ok 1448 - 'tests_teelaunch: W/tmp/tests/tests_teelaunch2.txt' isa 'IO::Tee'
Hi!
ok 1449 - tests_teelaunch: write Hi!
ok 1450 - tests_teelaunch: reading W/tmp/tests/tests_teelaunch2.txt is Hi!\n
Hoo
ok 1451 - tests_teelaunch: write Hoo
ok 1452 - tests_teelaunch: reading W/tmp/tests/tests_teelaunch2.txt is Hi!\nHoo\n
ok 1453 - tests_teelaunch: teefinish return 1
Argh1
ok 1454 - tests_teelaunch: write Argh1
Argh2
ok 1455 - tests_teelaunch: write Argh2
ok 1456 - tests_teelaunch: reading W/tmp/tests/tests_teelaunch2.txt is still Hi!\nHoo\n
ok 1457 - tests_teelaunch: teefinish still return 1
# Leaving tests_teelaunch()
# Entering tests_logfileprepa()
ok 1458 - logfileprepa: no args => undef
ok 1459 - logfileprepa: no logfile => undef
ok 1460 - logfileprepa: W/tmp/tests/tests_logfileprepa.txt => 1
# Leaving tests_logfileprepa()
# Entering tests_useheader_suggestion()
ok 1461 - useheader_suggestion: no args => undef
ok 1462 - useheader_suggestion: h1_nb_msg_noheader count null => no suggestion
ok 1463 - useheader_suggestion: h1_nb_msg_noheader count 2 => suggestion of --addheader
# Leaving tests_useheader_suggestion()
# Entering tests_stats_across_folders()
ok 1464 - nb_messages_in_2_not_in_1: no args => undef
ok 1465 - nb_messages_in_2_not_in_1: no messages in 2 => 0
ok 1466 - nb_messages_in_2_not_in_1: a common message => 0
ok 1467 - nb_messages_in_2_not_in_1: one message in_2_not_in_1 => 1
ok 1468 - nb_messages_in_2_not_in_1: two messages in_2_not_in_1 => 2
# Leaving tests_stats_across_folders()
# Entering tests_labels_add_subfolder2()
ok 1469 - labels_add_subfolder2: no parameters => undef
ok 1470 - labels_add_subfolder2: one parameter Blabla => Blabla
ok 1471 - labels_add_subfolder2: one parameter Blan blue => Blan blue
ok 1472 - labels_add_subfolder2: one parameter \Bla "Blan blan" Blabla => \Bla "Blan blan" Blabla
ok 1473 - labels_add_subfolder2: Bla Subf => "Subf/Bla"
ok 1474 - labels_add_subfolder2: \Bla Subf => \Bla
ok 1475 - labels_add_subfolder2: Bla Kii Subf => "Subf/Bla" "Subf/Kii"
ok 1476 - labels_add_subfolder2: \Bla Kii Subf => \Bla Subf/Kii
ok 1477 - labels_add_subfolder2: "Blan blan" Subf => "Subf/Blan blan"
ok 1478 - labels_add_subfolder2: \Loo "Blan blan" Kii + Subf => "Subf/Blan blan" Subf/Kii Subf/\Loo
ok 1479 - labels_add_subfolder2: "\\Inbox" Subf => "Subf/\\Inbox" Subf/INBOX
ok 1480 - labels_add_subfolder2: "\\Inbox" Subf INBOX => "Subf/\\Inbox"
ok 1481 - labels_add_subfolder2: "\\Inbox" "\\Inbox" Subf => "Subf/\\Inbox"
ok 1482 - labels_add_subfolder2: "\\Starred" Subf => "Subf/\\Starred"
# Leaving tests_labels_add_subfolder2()
# Entering tests_labels_remove_subfolder1()
ok 1483 - labels_remove_subfolder1: no parameters => undef
ok 1484 - labels_remove_subfolder1: one parameter Blabla => Blabla
ok 1485 - labels_remove_subfolder1: one parameter Blan blue => Blan blue
ok 1486 - labels_remove_subfolder1: one parameter \Bla "Blan blan" Blabla => \Bla "Blan blan" Blabla
ok 1487 - labels_remove_subfolder1: Subf/Bla Subf => "Bla"
ok 1488 - labels_remove_subfolder1: "\\Bla" Subf => "\\Bla"
ok 1489 - labels_remove_subfolder1: Subf/Bla Subf/Kii, Subf => "Bla" "Kii"
ok 1490 - labels_remove_subfolder1: "\\Bla" Subf/Kii Subf => "\\Bla" Kii
ok 1491 - labels_remove_subfolder1: "Subf/Blan blan" Subf => "Blan blan"
ok 1492 - labels_remove_subfolder1: "\\Loo" "Subf/Blan blan" Subf/Kii + Subf => "\\Loo" "Blan blan" Kii
ok 1493 - labels_remove_subfolder1: Subf/INBOX + Subf => "\\Inbox"
ok 1494 - labels_remove_subfolder1: "\\Loo" "Subf/Blan blan" Subf/Kii Subf/INBOX + Subf => "\\Loo" "Blan blan" Kii "\\Inbox"
# Leaving tests_labels_remove_subfolder1()
# Entering tests_resynclabels()
ok 1495 - resynclabels: no parameters => undef
ok 1496 - resynclabels: undef => undef
ok 1497 - resynclabels: var undef => undef
Host1 labels fixed: \Seen Baa Kii
Host2 labels : \Seen Baa Kii
Labels are already equal
ok 1498 - resynclabels: $mysync UID_1 UID_2 labels are equal => 1
ok 1499 - require Test::MockObject;
Host1 labels fixed: \Seen Baa Kii
Host2 labels : \Seen Zuu
ok 1500 - resynclabels: $mysync UID_1 UID_2 labels are not equal => store => 1
# Leaving tests_resynclabels()
# Entering tests_labels_remove_special()
ok 1501 - labels_remove_special: no parameters => undef
ok 1502 - labels_remove_special: empty string => empty string
ok 1503 - labels_remove_special:"\\Inbox" => empty string
ok 1504 - labels_remove_special:"\\Inbox" "\\Starred" => empty string
ok 1505 - labels_remove_special:Foo Bar => Bar Foo
ok 1506 - labels_remove_special:Foo Bar "\\Inbox" => Bar Foo
# Leaving tests_labels_remove_special()
# Entering tests_uniq()
ok 1507 - uniq: undef => 0
ok 1508 - uniq: one => one
ok 1509 - uniq: one one => one
ok 1510 - uniq: one one two one two => one two
# Leaving tests_uniq()
# Entering tests_remove_from_requested_folders()
ok 1511 - remove_from_requested_folders: undef is undef
ok 1512 - remove_from_requested_folders: no args
ok 1513 - remove_from_requested_folders: remove nothing among F1 => nothing
ok 1514 - remove_from_requested_folders: remove Fno among F1 => nothing
ok 1515 - remove_from_requested_folders: remove F1 among F1 => F1
ok 1516 - remove_from_requested_folders: remove F1 among F1 => %requested_folder emptied
ok 1517 - remove_from_requested_folders: remove nothing among F1 F2 => nothing
ok 1518 - remove_from_requested_folders: remove Fno among F1 F2 => nothing
ok 1519 - remove_from_requested_folders: remove F1 among F1 F2 => F1
ok 1520 - remove_from_requested_folders: remove F1 among F1 F2 => %requested_folder F2
ok 1521 - remove_from_requested_folders: remove F1 among F2 => nothing
ok 1522 - remove_from_requested_folders: remove F1 F2 among F2 => F2
ok 1523 - remove_from_requested_folders: remove F1 among F1 F2 => %requested_folder F2
ok 1524 - remove_from_requested_folders: remove F1 F2 among F1 F2 F3 => F1 F2
ok 1525 - remove_from_requested_folders: remove F1 F2 among F1 F2 F3 => %requested_folder F3
# Leaving tests_remove_from_requested_folders()
# Entering tests_errors_log()
ok 1526 - errors_log: no args => undef
ok 1527 - errors_log: empty => undef
ok 1528 - errors_log: aieaie => aieaie
ok 1529 - errors_log: nothing more => aieaie
ok 1530 - errors_log: ouille => aieaie ouille
ok 1531 - errors_log: nothing more => aieaie ouille
# Leaving tests_errors_log()
# Entering tests_add_subfolder1_to_folderrec()
ok 1532 - add_subfolder1_to_folderrec: undef => undef
ok 1533 - add_subfolder1_to_folderrec: no args => empty array
ok 1534 - add_subfolder1_to_folderrec: empty => empty array
ok 1535 - add_subfolder1_to_folderrec: empty => empty folderrec
Acting like --folderrec "SUBI"
ok 1536 - add_subfolder1_to_folderrec: SUBI => SUBI
ok 1537 - add_subfolder1_to_folderrec: SUBI => folderrec SUBI
Nor folder "SUBO" nor "INBOX/SUBO" exists on host1
ok 1538 - add_subfolder1_to_folderrec: SUBO no exists => empty array
ok 1539 - add_subfolder1_to_folderrec: SUBO no exists => empty folderrec
Acting like --folderrec "INBOX/SUBO"
ok 1540 - add_subfolder1_to_folderrec: SUBO + INBOX/SUBO exists => INBOX/SUBO
ok 1541 - add_subfolder1_to_folderrec: SUBO + INBOX/SUBO exists => INBOX/SUBO folderrec
# Leaving tests_add_subfolder1_to_folderrec()
# Entering tests_sanitize_subfolder()
ok 1542 - sanitize_subfolder: no args => undef
ok 1543 - sanitize_subfolder: empty => undef
ok 1544 - sanitize_subfolder: blank => undef
ok 1545 - sanitize_subfolder: blanks => undef
ok 1546 - sanitize_subfolder: abcd => abcd
ok 1547 - sanitize_subfolder: " ab cd " => "ab cd"
ok 1548 - sanitize_subfolder: "a&~b\#\\c[]=d;" => "abcd"
ok 1549 - sanitize_subfolder: aA.b-_ 8c/dD => aA.b-_ 8c/dD
# Leaving tests_sanitize_subfolder()
# Entering tests_remove_edging_blanks()
ok 1550 - remove_edging_blanks: no args => undef
ok 1551 - remove_edging_blanks: abcd => abcd
ok 1552 - remove_edging_blanks: " ab cd " => "ab cd"
# Leaving tests_remove_edging_blanks()
# Entering tests_remove_edging_blanks()
ok 1553 - sanitize: no args => undef
ok 1554 - sanitize: => undef
ok 1555 - sanitize: host1 " example.com " => "example.com"
ok 1556 - sanitize: user1 " to to " => "to to"
ok 1557 - sanitize: password1 " sex is good! " => "sex is good!"
# Leaving tests_remove_edging_blanks()
# Entering tests_remove_last_char_if_is()
ok 1558 - remove_last_char_if_is: no args => undef
ok 1559 - remove_last_char_if_is: empty => empty
ok 1560 - remove_last_char_if_is: empty Z => empty
ok 1561 - remove_last_char_if_is: Z Z => empty
ok 1562 - remove_last_char_if_is: abcZ Z => abc
ok 1563 - remove_last_char_if_is: abcY Z => abcY
# Leaving tests_remove_last_char_if_is()
# Entering tests_check_binary_embed_all_dyn_libs()
Search non embeded dynamic libs with the command: lsof -p 1427 | grep ' REG ' | grep -v '/tmp/par-' | grep '.so'
Found myself imapsync pid 1427 using locale dynamic libraries that seems out of myself:
sh: line 1: lsof: command not found
ok 1564 - check_binary_embed_all_dyn_libs: no args => 1
# Leaving tests_check_binary_embed_all_dyn_libs()
# Entering tests_nthline()
ok 1565 - nthline: getting empty string from inexisting W/tmp/tests/noexist.txt
ok 1566 - nthline: 2nd getting empty string from inexisting W/tmp/tests/noexist.txt
ok 1567 - nthline: mkpath W/tmp/tests/
ok 1568 - nthline: put L1\nL2\nL3\nL4\n in W/tmp/tests/nthline.txt
ok 1569 - nthline: get L3 from W/tmp/tests/nthline.txt
# Leaving tests_nthline()
# Entering tests_secondline()
ok 1570 - secondline: getting empty string from inexisting W/tmp/tests/noexist.txt
ok 1571 - secondline: 2nd getting empty string from inexisting W/tmp/tests/noexist.txt
ok 1572 - secondline: mkpath W/tmp/tests/
ok 1573 - secondline: put L1\nL2\nL3\nL4\n in W/tmp/tests/secondline.txt
ok 1574 - secondline: get L2 from W/tmp/tests/secondline.txt
ok 1575 - secondline: put L1\n in W/tmp/tests/secondline2.txt
ok 1576 - secondline: get empty string from W/tmp/tests/secondline2.txt
# Leaving tests_secondline()
# Entering tests_tail()
ok 1577 - tail: mkpath W/tmp/tests/
ok 1578 - tail: unlink W/tmp/tests/tail.pid
ok 1579 - tail: unlink W/tmp/tests/tail.txt
ok 1580 - tail: no args => undef
ok 1581 - tail: no pidfile => undef
ok 1582 - tail: no pidfilelocking => undef
ok 1583 - tail: pidfile no exists => undef
ok 1584 - tail: put pid 33333 and tail.txt in pidfile
ok 1585 - tail: logfile to tail no exists => undef
ok 1586 - tail: put L1\nL2\nL3\nL4\nL5\n in W/tmp/tests/tail.txt
ok 1587 - tail: fake pid in pidfile + tail off => 1
Doing a tail -f on W/tmp/tests/tail.txt for processus pid 33333 until it is finished.
L5
Tailed processus 33333 ended
ok 1588 - tail: fake pid in pidfile + tail on=> 1
ok 1589 - tail: put my own PID in pidfile
Will not do a tail -f for processus pid 1427 : it is myself.
ok 1590 - tail: my own pid in pidfile => undef
# Leaving tests_tail()
# Entering tests_truncmess()
ok 1591 - truncmess: no args => undef
ok 1592 - truncmess: abc => abc
ok 1593 - truncmess: abc 2 => ab
ok 1594 - truncmess: abc 3 => abc
ok 1595 - truncmess: abc 4 => abc
ok 1596 - truncmess: "123456789\n", 5 => 12345
ok 1597 - truncmess: "123456789\n" x 100000, 50000 => "123456789\n" x 5000
# Leaving tests_truncmess()
# Entering tests_eta()
ok 1598 - eta: no args => ""
ok 1599 - eta: undef => ""
ok 1600 - eta: No foldersizes => ""
ok 1601 - eta: no args => ETA: "Now" 0 s 0/0 msgs left
ok 1602 - eta: 1, 1, 2 => ETA: "Now" 0 s 1/2 msgs left
# Leaving tests_eta()
# Entering tests_timesince()
ok 1603 - tests_timesince: time - 1 => <= 1 + 1e-02
ok 1604 - tests_timesince: time => <= 1e-02
ok 1605 - tests_timesince: no args => <= time + 1e-02
# Leaving tests_timesince()
# Entering tests_timenext()
ok 1606 - tests_timenext: no args => undef
ok 1607 - tests_timenext: undef => undef
ok 1608 - tests_timenext: defined first time => ~ time
ok 1609 - tests_timenext: second time => less than 2e-02
ok 1610 - tests_timenext: third time => less than 2e-02
# Leaving tests_timenext()
# Entering tests_imapsync_context()
ok 1611 - imapsync_context: CGI or Docker or DockerCGI or Standard
# Leaving tests_imapsync_context()
# Entering tests_abort()
In abort
ok 1612 - abort: no args => undef
# Leaving tests_abort()
# Entering tests_probe_imapssl()
ok 1613 - tests_probe_imapssl: no args => undef
Probing imap ssl on host unknown port 993, got failure.
ok 1614 - tests_probe_imapssl: unknown => undef
# hostname is: arch-nspawn-1648141
ok 1615 - tests_probe_imapssl: resolv imap.gmail.com => something
Probing imap ssl on host imap.gmail.com port 993, got banner: * OK Gimap ready for requests from 119.8.44.69 616947a28c9db-663c77cf5b4mb281034844b6c
ok 1616 - tests_probe_imapssl: imap.gmail.com => matches "* OK"
Probing imap ssl on host test1.lamiral.info port 993, got banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.
ok 1617 - tests_probe_imapssl: test1.lamiral.info => matches "* OK"
Probing imap ssl on host imap.gmail.com port 993, got banner: * OK Gimap ready for requests from 209.141.35.129 d2e1a72fcca58-78121136563mb184859379b3a
ok 1618 - tests_probe_imapssl: imap.gmail.com port 993 => matches "* OK"
Probing imap ssl on host test1.lamiral.info port 993, got banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.
ok 1619 - tests_probe_imapssl: test1.lamiral.info port 993 => matches "* OK"
Probing imap ssl on host test1.lamiral.info port 143, got failure.
ok 1620 - tests_probe_imapssl: test1.lamiral.info port 143 => failure
# Leaving tests_probe_imapssl()
# Entering tests_mailimapclient_connect()
ok 1621 - tests_mailimapclient_connect: ipv4 new
ok 1622 - tests_mailimapclient_connect: ipv4 ref is Mail::IMAPClient
ok 1623 - tests_mailimapclient_connect: ipv4 connect with no server => failure
ok 1624 - tests_mailimapclient_connect: ipv4 setting Server(test.lamiral.info)
ok 1625 - tests_mailimapclient_connect: ipv4 setting Debug( 1 )
ok 1626 - tests_mailimapclient_connect: ipv4 setting Port( 143 )
ok 1627 - tests_mailimapclient_connect: ipv4 setting Timeout( 10 )
Connecting with IO::Socket::IP PeerAddr test.lamiral.info PeerPort 143 Proto tcp Timeout 10 Debug 1
Connected to test.lamiral.info
Read: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
ok 1628 - tests_mailimapclient_connect: ipv4 connect to test.lamiral.info
Sending: 1 LOGOUT
Sent 10 bytes
Read: * BYE Logging out
1 OK Logout completed.
ok 1629 - tests_mailimapclient_connect: ipv4 logout
ok 1630 - tests_mailimapclient_connect: ipv4 free variable
ok 1631 - tests_mailimapclient_connect: ipv4 + ssl: new
ok 1632 - tests_mailimapclient_connect: ipv4 + ssl: setting Server(test.lamiral.info)
ok 1633 - tests_mailimapclient_connect: ipv4 + ssl: setting Debug( 1 )
ok 1634 - tests_mailimapclient_connect: ipv4 + ssl: setting Ssl( SSL_VERIFY_NONE )
ok 1635 - tests_mailimapclient_connect: ipv4 + ssl: setting Port( 993 )
Connecting with IO::Socket::SSL PeerAddr test.lamiral.info PeerPort 993 Proto tcp Timeout 600 Debug 1 SSL_verify_mode 0 SSL_cipher_list DEFAULT:!DH
Connected to test.lamiral.info
Read: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.
ok 1636 - tests_mailimapclient_connect: ipv4 + ssl: connect to test.lamiral.info
Sending: 1 LOGOUT
Sent 10 bytes
Read: * BYE Logging out
ok 1637 - tests_mailimapclient_connect: ipv4 + ssl: logout in ssl does not cause failure
ok 1638 - tests_mailimapclient_connect: ipv4 + ssl: free variable
ok 1639 - tests_mailimapclient_connect: ipv6 + ssl: new
ok 1640 - tests_mailimapclient_connect: ipv6 + ssl: setting Server test1ipv6.lamiral.info
ok 1641 - tests_mailimapclient_connect: ipv6 setting Timeout( 10 )
ok 1642 - tests_mailimapclient_connect: ipv6 + ssl: setting Ssl( SSL_VERIFY_NONE )
ok 1643 - tests_mailimapclient_connect: ipv6 + ssl: setting Port( 993 )
ok 1644 - tests_mailimapclient_connect: ipv4 + ssl: setting Debug( 1 )
ok 1645 - resolv: test1ipv6.lamiral.info => 2a01:e0a:c59:f090:f5eb:1776:332:41d5
Connecting with IO::Socket::SSL PeerAddr test1ipv6.lamiral.info PeerPort 993 Proto tcp Timeout 10 Debug 1 SSL_verify_mode 0 SSL_cipher_list DEFAULT:!DH
ERROR: Unable to connect to test1ipv6.lamiral.info: IO::Socket::IP configuration failed at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 377.
Mail::IMAPClient::connect(Mail::IMAPClient=HASH(0x2ac81a0638)) called at imapsync line 8373
main::tests_mailimapclient_connect() called at imapsync line 23822
main::tests(HASH(0x2ac699c6d0)) called at imapsync line 21225
main::unittestssuite(HASH(0x2ac699c6d0)) called at imapsync line 1565
main::single_sync(HASH(0x2ac699c6d0), HASH(0x2ac4b62598), HASH(0x2ac699c868)) called at imapsync line 1385
not ok 1646 - tests_mailimapclient_connect: ipv6 + ssl: connect to test1ipv6.lamiral.info
# Failed test 'tests_mailimapclient_connect: ipv6 + ssl: connect to test1ipv6.lamiral.info'
# at imapsync line 8373.
# ''
# doesn't match '(?^:IO::Socket::SSL)'
Sending: 1 LOGOUT
ERROR: NO not connected at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1568.
Mail::IMAPClient::_send_line(Mail::IMAPClient=HASH(0x2ac81a0638), "1 LOGOUT", 0) called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1344
Mail::IMAPClient::_imap_command_do(Mail::IMAPClient=HASH(0x2ac81a0638), "LOGOUT", "BYE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1248
Mail::IMAPClient::_imap_command(Mail::IMAPClient=HASH(0x2ac81a0638), "LOGOUT", "BYE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 2007
Mail::IMAPClient::logout(Mail::IMAPClient=HASH(0x2ac81a0638)) called at imapsync line 8375
main::tests_mailimapclient_connect() called at imapsync line 23822
main::tests(HASH(0x2ac699c6d0)) called at imapsync line 21225
main::unittestssuite(HASH(0x2ac699c6d0)) called at imapsync line 1565
main::single_sync(HASH(0x2ac699c6d0), HASH(0x2ac4b62598), HASH(0x2ac699c868)) called at imapsync line 1385
Trying command when NOT connected! at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 123.
Mail::IMAPClient::LastError(Mail::IMAPClient=HASH(0x2ac81a0638), "NO not connected") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1568
Mail::IMAPClient::_send_line(Mail::IMAPClient=HASH(0x2ac81a0638), "1 LOGOUT", 0) called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1344
Mail::IMAPClient::_imap_command_do(Mail::IMAPClient=HASH(0x2ac81a0638), "LOGOUT", "BYE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1248
Mail::IMAPClient::_imap_command(Mail::IMAPClient=HASH(0x2ac81a0638), "LOGOUT", "BYE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 2007
Mail::IMAPClient::logout(Mail::IMAPClient=HASH(0x2ac81a0638)) called at imapsync line 8375
main::tests_mailimapclient_connect() called at imapsync line 23822
main::tests(HASH(0x2ac699c6d0)) called at imapsync line 21225
main::unittestssuite(HASH(0x2ac699c6d0)) called at imapsync line 1565
main::single_sync(HASH(0x2ac699c6d0), HASH(0x2ac4b62598), HASH(0x2ac699c868)) called at imapsync line 1385
ERROR: Error sending '1 LOGOUT': NO not connected at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1345.
Mail::IMAPClient::_imap_command_do(Mail::IMAPClient=HASH(0x2ac81a0638), "LOGOUT", "BYE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1248
Mail::IMAPClient::_imap_command(Mail::IMAPClient=HASH(0x2ac81a0638), "LOGOUT", "BYE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 2007
Mail::IMAPClient::logout(Mail::IMAPClient=HASH(0x2ac81a0638)) called at imapsync line 8375
main::tests_mailimapclient_connect() called at imapsync line 23822
main::tests(HASH(0x2ac699c6d0)) called at imapsync line 21225
main::unittestssuite(HASH(0x2ac699c6d0)) called at imapsync line 1565
main::single_sync(HASH(0x2ac699c6d0), HASH(0x2ac4b62598), HASH(0x2ac699c868)) called at imapsync line 1385
Trying command when NOT connected! LastError was: NO not connected at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 123.
Mail::IMAPClient::LastError(Mail::IMAPClient=HASH(0x2ac81a0638), "Error sending '1 LOGOUT': NO not connected") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1345
Mail::IMAPClient::_imap_command_do(Mail::IMAPClient=HASH(0x2ac81a0638), "LOGOUT", "BYE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1248
Mail::IMAPClient::_imap_command(Mail::IMAPClient=HASH(0x2ac81a0638), "LOGOUT", "BYE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 2007
Mail::IMAPClient::logout(Mail::IMAPClient=HASH(0x2ac81a0638)) called at imapsync line 8375
main::tests_mailimapclient_connect() called at imapsync line 23822
main::tests(HASH(0x2ac699c6d0)) called at imapsync line 21225
main::unittestssuite(HASH(0x2ac699c6d0)) called at imapsync line 1565
main::single_sync(HASH(0x2ac699c6d0), HASH(0x2ac4b62598), HASH(0x2ac699c868)) called at imapsync line 1385
ERROR: Error sending '1 LOGOUT': NO not connected at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1298.
Mail::IMAPClient::_imap_command(Mail::IMAPClient=HASH(0x2ac81a0638), "LOGOUT", "BYE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 2007
Mail::IMAPClient::logout(Mail::IMAPClient=HASH(0x2ac81a0638)) called at imapsync line 8375
main::tests_mailimapclient_connect() called at imapsync line 23822
main::tests(HASH(0x2ac699c6d0)) called at imapsync line 21225
main::unittestssuite(HASH(0x2ac699c6d0)) called at imapsync line 1565
main::single_sync(HASH(0x2ac699c6d0), HASH(0x2ac4b62598), HASH(0x2ac699c868)) called at imapsync line 1385
Trying command when NOT connected! LastError was: Error sending '1 LOGOUT': NO not connected at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 123.
Mail::IMAPClient::LastError(Mail::IMAPClient=HASH(0x2ac81a0638), "Error sending '1 LOGOUT': NO not connected") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1298
Mail::IMAPClient::_imap_command(Mail::IMAPClient=HASH(0x2ac81a0638), "LOGOUT", "BYE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 2007
Mail::IMAPClient::logout(Mail::IMAPClient=HASH(0x2ac81a0638)) called at imapsync line 8375
main::tests_mailimapclient_connect() called at imapsync line 23822
main::tests(HASH(0x2ac699c6d0)) called at imapsync line 21225
main::unittestssuite(HASH(0x2ac699c6d0)) called at imapsync line 1565
main::single_sync(HASH(0x2ac699c6d0), HASH(0x2ac4b62598), HASH(0x2ac699c868)) called at imapsync line 1385
not ok 1647 - tests_mailimapclient_connect: ipv6 + ssl: logout in ssl is ok on test1ipv6.lamiral.info
# Failed test 'tests_mailimapclient_connect: ipv6 + ssl: logout in ssl is ok on test1ipv6.lamiral.info'
# at imapsync line 8375.
# ''
# doesn't match '(?^:Mail::IMAPClient)'
ok 1648 - tests_mailimapclient_connect: ipv6 + ssl: free variable
# Leaving tests_mailimapclient_connect()
# Entering checknoabletosearch()
ok 1649 - checknoabletosearch: no args => undef
# Leaving checknoabletosearch()
# Entering tests_errorsdump()
ok 1650 - errorsdump: no args => undef
ok 1651 - errorsdump: empty list => undef
ok 1652 - errorsdump: one empty string => "Err 1/1: "
ok 1653 - errorsdump: aieaieaie => "Err 1/1: aieaieaie"
ok 1654 - errorsdump: Aie Ouille => "Err 1/2: Aie Err 2/2: Ouille"
# Leaving tests_errorsdump()
# Entering tests_errorsanalyse()
ok 1655 - errorsanalyse: no args => ERR_NOTHING_REPORTED
ok 1656 - errorsanalyse: empty list => ERR_NOTHING_REPORTED
ok 1657 - errorsanalyse: aie => ERR_UNCLASSIFIED
ok 1658 - errorsanalyse: aie => ERR_UNCLASSIFIED
ok 1659 - errorsanalyse: aie => ERR_UNCLASSIFIED
ok 1660 - errorsanalyse: aie, ouille => ERR_UNCLASSIFIED
ok 1661 - errorsanalyse: aie, ouille, "" => ERR_UNCLASSIFIED
ok 1662 - errorsanalyse: aie, ouille, "" => ERR_UNCLASSIFIED
ok 1663 - errorsanalyse: "" => ERR_NOTHING_REPORTED
ok 1664 - errorsanalyse: ( "" ) => ERR_NOTHING_REPORTED
ok 1665 - errorsanalyse: ( "", "" ) => ERR_NOTHING_REPORTED
# Leaving tests_errorsanalyse()
# Entering tests_most_common_error()
ok 1666 - most_common_error: no args => ERR_NOTHING_REPORTED
ok 1667 - most_common_error: empty hash ref => ERR_NOTHING_REPORTED
ok 1668 - most_common_error: not a hash ref => ERR_NOTHING_REPORTED
ok 1669 - most_common_error: { ERR_FOO => 1 } => ERR_FOO
ok 1670 - most_common_error: { ERR_FOO => 1, ERR_BAR => 2 } => ERR_BAR
ok 1671 - most_common_error: { ERR_FOO => 2, ERR_BAR => 1 } => ERR_FOO
ok 1672 - most_common_error: { ERR_FOO => 2, ERR_BAR => 2 } => ERR_BAR
ok 1673 - most_common_error: { A => 5, B => 5, C => 5 } => A
ok 1674 - most_common_error: { A => 5, B => 6, C => 6 } => B
ok 1675 - most_common_error: { A => 5, B => 5, C => 7 } => C
ok 1676 - most_common_error: { A => 5, B => 5, C => 7 } => C
# Leaving tests_most_common_error()
# Entering tests_errorclassify()
ok 1677 - errorclassify: no args => undef
ok 1678 - errorclassify: aie => { ERR_UNCLASSIFIED => 1 }
ok 1679 - errorclassify: aie ouille => { ERR_UNCLASSIFIED => 2 }
ok 1680 - errorclassify: aie ouille "" => { ERR_UNCLASSIFIED => 2 }
ok 1681 - errorclassify: aie ouille aie => { ERR_UNCLASSIFIED => 3 }
ok 1682 - errorclassify: aie OVERQUOTA OVERQUOTA
ok 1683 - errorclassify: "" => { ERR_NOTHING_REPORTED => 1 }
ok 1684 - errorclassify: "", "" => { ERR_NOTHING_REPORTED => 1 }
# Leaving tests_errorclassify()
# Entering tests_error_type()
ok 1685 - error_type: no args => ERR_NOTHING_REPORTED
ok 1686 - error_type: empty string => ERR_NOTHING_REPORTED
ok 1687 - error_type: ERR_UNCLASSIFIED => ERR_UNCLASSIFIED
ok 1688 - error_type: aie => ERR_UNCLASSIFIED
ok 1689 - error_type: ouille => ERR_UNCLASSIFIED
ok 1690 - error_type: could not be fetched => ERR_Host1_FETCH
ok 1691 - error_type: could not append message xxx: BAD maximum message size exceeded => ERR_APPEND_SIZE
ok 1692 - error_type: Quota limit will be exceeded => ERR_OVERQUOTA
ok 1693 - error_type: could not append => ERR_APPEND
ok 1694 - error_type: Could not create folder => ERR_CREATE
ok 1695 - error_type: Could not select: blabla => ERR_SELECT
ok 1696 - error_type: Maximum bytes transferred reached, blabla => ERR_TRANSFER_EXCEEDED
ok 1697 - error_type: can not open imap connection on host1 => ERR_CONNECTION_FAILURE_HOST1
ok 1698 - error_type: can not open imap connection on host2 => ERR_CONNECTION_FAILURE_HOST2
ok 1699 - error_type: could not append ... virus => ERR_APPEND_VIRUS
ok 1700 - error_type: could not add flags => ERR_FLAGS
ok 1701 - error_type: SEARCH: Unknown argument => ERR_SEARCH
# Leaving tests_error_type()
# Entering tests_sanitize_host()
ok 1702 - sanitize_host: no args => undef
ok 1703 - sanitize_host: empty => empty
ok 1704 - sanitize_host: imap.example.org => imap.example.org
ok 1705 - sanitize_host: imap.example.org 1 => imap.example.org
ok 1706 - sanitize_host: imap.example.org 2 => imap.example.org
ok 1707 - sanitize_host: imap.example.org 3 => imap.example.org
ok 1708 - sanitize_host: imap.example.org 4 => imap.example.org
ok 1709 - sanitize_host: imap.example.org/ => imap.example.org
# Leaving tests_sanitize_host()
# Entering tests_hmac_sha1_hex()
ok 1710 - hmac_sha1_hex: no args => fbdb1d1b18aa6c08324b7d64b71fb76370690e1d
ok 1711 - hmac_sha1_hex: empty string => fbdb1d1b18aa6c08324b7d64b71fb76370690e1d
ok 1712 - hmac_sha1_hex: empty strings => fbdb1d1b18aa6c08324b7d64b71fb76370690e1d
ok 1713 - hmac_sha1_hex: empty strings + caca => fbdb1d1b18aa6c08324b7d64b71fb76370690e1d
ok 1714 - hmac_sha1_hex: Ö => f1a3f3dac3f137fd658027c11678b895f773ce55
ok 1715 - hmac_sha1_hex: encode_utf8 \x{00D6} => f1a3f3dac3f137fd658027c11678b895f773ce55
ok 1716 - hmac_sha1_hex: encode_utf8 Ö => fe8dc3b9ba3e8850bb4a7b070b2279e911003af2
ok 1717 - hmac_sha1_hex: qq{\x{00D6}} => bb5bfb461e79ecd3dbc6ade2aabb52d22fa8be1a
ok 1718 - hmac_sha1_hex: A => a6fda2a6acdd74630b20aac0c68716048ecd0333
ok 1719 - hmac_sha1_hex: encode_utf8 \x{0041} => a6fda2a6acdd74630b20aac0c68716048ecd0333
ok 1720 - hmac_sha1_hex: encode_utf8 A => a6fda2a6acdd74630b20aac0c68716048ecd0333
ok 1721 - hmac_sha1_hex: \x{0041} => a6fda2a6acdd74630b20aac0c68716048ecd0333
ok 1722 - hmac_sha1_hex: A B => 36c54f255b575a2db58921d116b37c8af94c08cd
ok 1723 - hmac_sha1_hex: encode_utf8 \x{0041} B => 36c54f255b575a2db58921d116b37c8af94c08cd
ok 1724 - hmac_sha1_hex: encode_utf8 A B => 36c54f255b575a2db58921d116b37c8af94c08cd
ok 1725 - hmac_sha1_hex: \x{0041} B => 36c54f255b575a2db58921d116b37c8af94c08cd
ok 1726 - hmac_sha1_hex: æ”¶ => 4199f02773d1cd5599b1a8f2d024bdceb8b48e0b
ok 1727 - hmac_sha1_hex: encode_utf8 \x{6536} => 4199f02773d1cd5599b1a8f2d024bdceb8b48e0b
ok 1728 - hmac_sha1_hex: encode_utf8 æ”¶ => e82217119628ad03e659cc89671d05ea4cee7238
ok 1729 - hmac_sha1_hex: \x{6536} => undef
# Leaving tests_hmac_sha1_hex()
# Entering tests_total_bytes_max_reached()
ok 1730 - total_bytes_max_reached: no args => undef
ok 1731 - total_bytes_max_reached: no exitwhenover => undef
ok 1732 - total_bytes_max_reached: exitwhenover 300 but no total_bytes_transferred => undef
ok 1733 - total_bytes_max_reached: exitwhenover 300 but total_bytes_transferred 200 => undef
Maximum bytes transferred reached, 400 >= 300, ending sync
ok 1734 - total_bytes_max_reached: exitwhenover 300 but total_bytes_transferred 400 => 1
# Leaving tests_total_bytes_max_reached()
# Entering tests_header_construct()
ok 1735 - header_construct: no args => undef
ok 1736 - header_construct: key1 val1_key1 no useheader => undef
ok 1737 - header_construct: key1 val1_key1 => KEY1: VAL1_KEY1
ok 1738 - header_construct: key1 val1_key1 val3_key1 val2_key1 => KEY1: VAL1_KEY1KEY1: VAL2_KEY1KEY1: VAL3_KEY1
ok 1739 - header_construct: key1 val1_key1 val3_key1 val2_key1 => KEY1: VAL1_KEY1KEY1: VAL2_KEY1KEY1: VAL3_KEY1
ok 1740 - header_construct: key1 val1_key1 val3_key1 val2_key1 useheader ALL => KEY1: VAL1_KEY1KEY1: VAL2_KEY1KEY1: VAL3_KEY1
ok 1741 - header_construct: key1 val1_key1 val3_key1 val2_key1 useheader ALL => undef
ok 1742 - header_construct: ... useheader ALL skipheader key1 => KEY2: VAL1_KEY2KEY2: VAL2_KEY2KEY2: VAL3_KEY2
# Leaving tests_header_construct()
# Entering tests_remove_doublequotes_if_any()
ok 1743 - tests_remove_doublequotes_if_any: no args => undef
ok 1744 - tests_remove_doublequotes_if_any: empty string => empty string
ok 1745 - tests_remove_doublequotes_if_any: double-quotes => empty string
ok 1746 - tests_remove_doublequotes_if_any: double-quotes => empty string
ok 1747 - tests_remove_doublequotes_if_any: double-quotes => empty string
ok 1748 - tests_remove_doublequotes_if_any: "toto" => toto
ok 1749 - tests_remove_doublequotes_if_any: toto => toto
ok 1750 - tests_remove_doublequotes_if_any: to"to => toto
ok 1751 - tests_remove_doublequotes_if_any: toto" => toto
ok 1752 - tests_remove_doublequotes_if_any: "toto => toto
ok 1753 - tests_remove_doublequotes_if_any: "to"to => toto
ok 1754 - tests_remove_doublequotes_if_any: to"to" => toto
ok 1755 - tests_remove_doublequotes_if_any: to\"to => toto
ok 1756 - tests_remove_doublequotes_if_any: toto\" => toto
ok 1757 - tests_remove_doublequotes_if_any: \"toto => toto
ok 1758 - tests_remove_doublequotes_if_any: \"to\"to => toto
ok 1759 - tests_remove_doublequotes_if_any: to\"to" => toto
# Leaving tests_remove_doublequotes_if_any()
# Entering tests_login_imap_ssl_993()
HostK: connecting and login on hostk [test1.lamiral.info] port [993] with user [test1]
Connecting with IO::Socket::SSL PeerAddr test1.lamiral.info PeerPort 993 Proto tcp Timeout 600 Debug 1 SSL_verify_mode 0 SSL_cipher_list DEFAULT:!DH SSL_verifycn_scheme imap
Connected to test1.lamiral.info
Read: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.
HostK IP address: 91.121.221.224 Local IP address: 172.25.22.77
HostK banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.
Sending: 1 CAPABILITY
Sent 14 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN
Read: 1 OK Pre-login capabilities listed, post-login capabilities have more.
HostK capability before authentication: IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN AUTH
Sending: 2 LOGIN test1 [Redact: Count=2 Showcredentials=OFF]
Sent 23 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE COMPRESS=DEFLATE
2 OK Logged in
HostK: success login on [test1.lamiral.info] with user [test1] auth [LOGIN] or [LOGIN]
ok 1760 - tests_login_imap_ssl_993: test1.lamiral.info test1 ssl
ok 1761 - tests_login_imap_ssl_993: test1.lamiral.info test1 ssl IsAuthenticated
ok 1762 - tests_login_imap_ssl_993: acc->{ imap } ok test1 ssl
# Leaving tests_login_imap_ssl_993()
# Entering tests_login_imap_starttls()
HostK: connecting and login on hostk [test1.lamiral.info] port [143] with user [test1]
HostK IP address: 91.121.221.224 Local IP address: 172.25.22.77
HostK banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
HostK capability before authentication: IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN AUTH
HostK: Socket successfully converted to SSL
HostK: success login on [test1.lamiral.info] with user [test1] auth [LOGIN] or [LOGIN]
ok 1763 - tests_login_imap_starttls: test1.lamiral.info test1 tls
ok 1764 - tests_login_imap_starttls: test1.lamiral.info test1 tls IsAuthenticated
ok 1765 - tests_login_imap_starttls: acc->{ imap } ok test1 tls
HostK: connecting and login on hostk [test1.lamiral.info] port [143] with user [test1]
HostK IP address: 91.121.221.224 Local IP address: 172.25.22.77
HostK banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
HostK capability before authentication: IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN AUTH
HostK failure: Can not go to tls encryption on hostk [test1.lamiral.info]: Unable to start TLS: SSL Version SSLv2 not supported
ok 1766 - tests_login_imap_starttls: test1.lamiral.info test1 tls SSLv2 not supported
ok 1767 - tests_login_imap_starttls: acc->{ imap } test1 tls error => undef
Host2: connecting and login on host2 [noresol.lamiral.info] port [143] with user [test1]
Host2 failure: can not open imap connection on host2 [noresol.lamiral.info] port [143] with user [test1]: Unable to connect to noresol.lamiral.info: Invalid argument
ok 1768 - tests_login_imap_starttls: noresol.lamiral.info undef
ok 1769 - tests_login_imap_starttls: Host2 noresol.lamiral.info => ERR_CONNECTION_FAILURE_HOST2
ok 1770 - tests_login_imap_starttls: acc->{ imap } noresol error => undef
# Leaving tests_login_imap_starttls()
# Entering tests_login_imap_notls_nossl()
ok 1771 - tests_login_imap_notls_nossl: no args => undef
HostK: connecting and login on hostk [test1.lamiral.info] port [143] with user [test1]
HostK IP address: 91.121.221.224 Local IP address: 172.25.22.77
HostK banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
HostK capability before authentication: IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN AUTH
HostK: success login on [test1.lamiral.info] with user [test1] auth [LOGIN] or [LOGIN]
ok 1772 - tests_login_imap_notls_nossl: test1.lamiral.info test1 tls
ok 1773 - tests_login_imap_notls_nossl: test1.lamiral.info test1 tls IsAuthenticated
ok 1774 - tests_login_imap_notls_nossl: acc->{ imap } ok test1 tls
Host2: connecting and login on host2 [noresol.lamiral.info] port [143] with user [test1]
Host2 failure: can not open imap connection on host2 [noresol.lamiral.info] port [143] with user [test1]: Unable to connect to noresol.lamiral.info: Invalid argument
ok 1775 - tests_login_imap_notls_nossl: noresol.lamiral.info undef
ok 1776 - tests_login_imap_notls_nossl: Host2 noresol.lamiral.info => ERR_CONNECTION_FAILURE_HOST2
ok 1777 - tests_login_imap_notls_nossl: acc->{ imap } noresol error => undef
Host2: connecting and login on host2 [test1.lamiral.info] port [143] with user [test1]
Host2 IP address: 91.121.221.224 Local IP address: 172.25.22.77
Host2 banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
Host2 capability before authentication: IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN AUTH
Host2 info: authmech [LOGIN] user [test1] authuser [] IsUnconnected []
Host2 failure: Error login on [test1.lamiral.info] with user [test1] auth [LOGIN]: 2 NO [AUTHENTICATIONFAILED] Authentication failed.
Host2: failed login on [test1.lamiral.info] with user [test1] auth [LOGIN]
ok 1778 - tests_login_imap_notls_nossl: user2 bad passord => undef
ok 1779 - tests_login_imap_notls_nossl: Host2 bad password => ERR_AUTHENTICATION_FAILURE_USER2
Host1: connecting and login on host1 [test1.lamiral.info] port [143] with user [test1]
Host1 IP address: 91.121.221.224 Local IP address: 172.25.22.77
Host1 banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
Host1 capability before authentication: IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN AUTH
Host1 info: authmech [LOGIN] user [test1] authuser [] IsUnconnected []
Host1 failure: Error login on [test1.lamiral.info] with user [test1] auth [LOGIN]: 2 NO [AUTHENTICATIONFAILED] Authentication failed.
Host1: failed login on [test1.lamiral.info] with user [test1] auth [LOGIN]
ok 1780 - tests_login_imap_notls_nossl: user1 bad passord => undef
ok 1781 - tests_login_imap_notls_nossl: Host1 bad password => ERR_AUTHENTICATION_FAILURE_USER1
# Leaving tests_login_imap_notls_nossl()
# Entering tests_login_imap_oauth()
Host2: connecting and login on host2 [imap.gmail.com] port [993] with user [test1]
Host2 IP address: 74.125.203.108 Local IP address: 172.25.22.77
Host2 banner: * OK Gimap ready for requests from 209.141.35.129 616947a28c9db-663c7748863mb274991382b6c
Host2 capability before authentication: IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN AUTH=OAUTHBEARER AUTH
Host2: imap.gmail.com says it has NO CAPABILITY for AUTHENTICATE QQQ
Executing script: caca2
open3: exec of caca2 failed: No such file or directory at imapsync line 19160.
Taking string HASH(0x2ac81a61b8) as the value since it is not a file
Executing script: caca2
open3: exec of caca2 failed: No such file or directory at imapsync line 19160.
Taking string HASH(0x2ac81a61b8) as the value since it is not a file
Host2 failure: Error login on [imap.gmail.com] with user [test1] auth [XOAUTH2 direct]: 2 BAD Invalid SASL argument. 616947a28c9db-663c7748863mb274991382b6c
Host2: failed login on [imap.gmail.com] with user [test1] auth [XOAUTH2 direct]
ok 1782 - tests_login_imap_oauth: user2 bad oauthdirect => undef
ok 1783 - tests_login_imap_oauth: Host2 bad oauthdirect => ERR_AUTHENTICATION_FAILURE_USER2
Host1: connecting and login on host1 [imap.gmail.com] port [993] with user [test1]
Host1 IP address: 74.125.203.108 Local IP address: 172.25.22.77
Host1 banner: * OK Gimap ready for requests from 209.141.35.129 616947a28c9db-663c76d2787mb287349267b6c
Host1 capability before authentication: IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN AUTH=OAUTHBEARER AUTH
Host1: imap.gmail.com says it has NO CAPABILITY for AUTHENTICATE QQQ
Executing script: caca1
open3: exec of caca1 failed: No such file or directory at imapsync line 19160.
Taking string HASH(0x2ac81a7ae0) as the value since it is not a file
Executing script: caca1
open3: exec of caca1 failed: No such file or directory at imapsync line 19160.
Taking string HASH(0x2ac81a7ae0) as the value since it is not a file
Host1 failure: Error login on [imap.gmail.com] with user [test1] auth [XOAUTH2 direct]: 2 BAD Invalid SASL argument. 616947a28c9db-663c76d2787mb287349267b6c
Host1: failed login on [imap.gmail.com] with user [test1] auth [XOAUTH2 direct]
ok 1784 - tests_login_imap_oauth: user1 bad oauthdirect => undef
ok 1785 - tests_login_imap_oauth: Host1 bad oauthdirect => ERR_AUTHENTICATION_FAILURE_USER1
Host1: connecting and login on host1 [imap.gmail.com] port [993] with user [test1]
Host1 IP address: 74.125.203.108 Local IP address: 172.25.22.77
Host1 banner: * OK Gimap ready for requests from 209.141.35.129 616947a28c9db-663edc5c1fbmb189145738b6c
Host1 capability before authentication: IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN AUTH=OAUTHBEARER AUTH
Host1: imap.gmail.com says it has NO CAPABILITY for AUTHENTICATE QQQ
Executing script:
Taking string HASH(0x2ac81a7f18) as the value since it is not a file
Executing script:
Taking string HASH(0x2ac81a7f18) as the value since it is not a file
Host1 failure: Error login on [imap.gmail.com] with user [test1] auth [XOAUTH2 direct]: 2 BAD Invalid SASL argument. 616947a28c9db-663edc5c1fbmb189145738b6c
Host1: failed login on [imap.gmail.com] with user [test1] auth [XOAUTH2 direct]
ok 1786 - tests_login_imap_oauth: user1 bad oauthdirect => undef
ok 1787 - tests_login_imap_oauth: Host1 no oauthdirect value => ERR_AUTHENTICATION_FAILURE_USER1
ok 1788 # skip oauthdirect: no oauthdirect file
ok 1789 # skip oauthdirect: no oauthdirect file
ok 1790 # skip oauthdirect: no oauthdirect file
ok 1791 # skip oauthdirect: no oauthdirect file
ok 1792 # skip oauthdirect: no oauthdirect file
ok 1793 # skip oauthdirect: no oauthdirect file
ok 1794 # skip oauthdirect: no oauthdirect file
ok 1795 # skip oauthdirect: no oauthdirect file
ok 1796 # skip oauthdirect: no oauthdirect file
ok 1797 # skip oauthdirect: no oauthdirect file
ok 1798 # skip oauthdirect: no oauthdirect file
ok 1799 # skip oauthdirect: no oauthdirect file
ok 1800 # skip oauthdirect: no oauthdirect file
ok 1801 # skip oauthdirect: no oauthdirect file
ok 1802 # skip oauthdirect: no oauthdirect file
ok 1803 # skip oauthdirect: no oauthdirect file
ok 1804 # skip oauthdirect: no oauthdirect file
ok 1805 # skip oauthdirect: no oauthdirect file
ok 1806 # skip oauthdirect: no oauthdirect file
ok 1807 # skip oauthdirect: no oauthdirect file
ok 1808 # skip oauthdirect: no oauthdirect file
ok 1809 # skip oauthaccesstoken: no access_token file
ok 1810 # skip oauthaccesstoken: no access_token file
ok 1811 # skip oauthaccesstoken: no access_token file
ok 1812 # skip oauthaccesstoken: no access_token file
ok 1813 # skip oauthaccesstoken: no access_token file
ok 1814 # skip oauthaccesstoken: no access_token file
ok 1815 # skip oauthaccesstoken: no access_token file
ok 1816 # skip oauthaccesstoken: no access_token file
ok 1817 # skip oauthaccesstoken: no access_token file
ok 1818 # skip oauthaccesstoken: no access_token file
ok 1819 # skip oauthaccesstoken: no access_token file
ok 1820 # skip oauthaccesstoken: no access_token file
ok 1821 # skip oauthaccesstoken: no access_token file
ok 1822 # skip oauthaccesstoken: no access_token file
ok 1823 # skip oauthaccesstoken: no access_token file
ok 1824 # skip oauthaccesstoken: no access_token file
ok 1825 # skip oauthaccesstoken: no access_token file
ok 1826 # skip oauthaccesstoken: no access_token file
ok 1827 # skip oauthaccesstoken: no access_token file
ok 1828 # skip oauthaccesstoken: no access_token file
# Leaving tests_login_imap_oauth()
# Entering tests_skipmess_neg()
ok 1829 - skipmess: i string yes
ok 1830 - skipmess: i string no
ok 1831 - skipmess: not i string no
ok 1832 - skipmess: not i string yes
ok 1833 - skipmess: 1 not From tartanpion@machin.truc
ok 1834 - skipmess: 2 not From tartanpion@machin.truc
ok 1835 - skipmess: 3 not From tartanpion@machin.truc
ok 1836 - skipmess: 4 not From tartanpion@machin.truc
# Leaving tests_skipmess_neg()
# Entering tests_localtimez()
# localtimez: Tuesday 30 September 2025-09-30 08:13:24 +0000 UTC
ok 1837 - localtimez: 0 => match 1970-01-01 00:00:00 +0000 GMT or UTC
ok 1838 - localtimez: undef => equals currrent
# Leaving tests_localtimez()
# Entering tests_file_to_array()
ok 1839 - file_to_array: no args => undef
ok 1840 - file_to_array: /noexist => undef
ok 1841 - file_to_array: reading a directory => undef
ok 1842 - file_to_array: mkpath W/tmp/tests/
ok 1843 - file_to_array: put L1\nL2\nL3\nL4\n in W/tmp/tests/file_to_array.txt
ok 1844 - file_to_array: get back L1\n L2\n L3\n L4\n from W/tmp/tests/file_to_array.txt
# Leaving tests_file_to_array()
# Entering tests_cpu_time()
ok 1845 - cpu_time: no args => a number
7.17 + 1.06 + 0.27 + 0.79 = 9.29 ~ 9.29
ok 1846 - cpu_time: {} => a number
# Leaving tests_cpu_time()
# Entering tests_cpu_percent()
ok 1847 - cpu_percent: no args => 0.0
cpu_percent: 0.0
ok 1848 - cpu_percent: {} => 0.0
cpu_percent: 0.0
ok 1849 - cpu_percent: {} 0 => 0.0
Strange: cpu_time 3 > timediff 1
cpu_percent: 300.0
ok 1850 - cpu_percent: {} 3 => 300.0
cpu_percent: 30.0
ok 1851 - cpu_percent: {} 3 10 => 30.0
cpu_percent: 0.0
ok 1852 - cpu_percent: {} 0 10 => 0.0
# Leaving tests_cpu_percent()
# Entering tests_cpu_percent_global()
ok 1853 - tests_cpu_percent_global: no args => 0
cpu_percent_global: 0.0
ok 1854 - tests_cpu_percent_global: {} => 0
cpu_percent_global: 0.0
ok 1855 - tests_cpu_percent_global: {} 0 => 0
ok 1856 # skip cpu_percent_global on host != i005
ok 1857 # skip cpu_percent_global on host != petite
# Leaving tests_cpu_percent_global()
# Entering tests_flags_for_host2()
ok 1858 - flags_for_host2: no args => undef
ok 1859 - flags_for_host2: undef => undef
ok 1860 - flags_for_host2: nothing => undef
ok 1861 - flags_for_host2: no flags => empty string
ok 1862 - flags_for_host2: \Recent => empty string
ok 1863 - flags_for_host2: \Recent \Seen => \Seen
ok 1864 - flags_for_host2: \Deleted \Recent \Seen => \Deleted \Seen
ok 1865 - flags_for_host2: flagscase = 0 \DELETED \Seen => \DELETED \Seen
ok 1866 - flags_for_host2: flagscase = 1 \DELETED \Seen => \Deleted \Seen
ok 1867 - flags_for_host2: filterflags = 0 \Seen \Blabla among \Seen \Junk => \Seen \Blabla
ok 1868 - flags_for_host2: filterflags = 1 \Seen \Blabla among \Seen \Junk => \Seen
ok 1869 - flags_for_host2: filterflags = 1 \Seen \Blabla among "" => \Seen \Blabla
# Leaving tests_flags_for_host2()
# Entering tests_under_docker_context()
ok 1870 - under_docker_context: no args => undef
ok 1871 - under_docker_context: --dockercontext => 1
ok 1872 - under_docker_context: --nodockercontext => 0
ok 1873 - under_docker_context: not docker context => 0
# Leaving tests_under_docker_context()
# Entering tests_exit_value()
ok 1874 - exit_value: no args => EXIT_CATCH_ALL
ok 1875 - exit_value: undef => EXIT_CATCH_ALL
ok 1876 - exit_value: Blabla => EXIT_CATCH_ALL
ok 1877 - exit_value: empty => EXIT_CATCH_ALL
ok 1878 - exit_value: undef => EXIT_CATCH_ALL
ok 1879 - exit_value: ERR_OVERQUOTA => EXIT_OVERQUOTA
ok 1880 - exit_value: ERR_TRANSFER_EXCEEDED => EXIT_TRANSFER_EXCEEDED
# Leaving tests_exit_value()
# Entering tests_comment_of_error_type()
ok 1881 - comment_of_error_type: no args => undef
ok 1882 - comment_of_error_type: undef => undef
ok 1883 - comment_of_error_type: "" => ""
ok 1884 - comment_of_error_type: blabla => ""
ok 1885 - comment_of_error_type: ERR_UNCLASSIFIED => ""
ok 1886 - comment_of_error_type: ERR_OVERQUOTA => matches 100% full
# Leaving tests_comment_of_error_type()
# Entering tests_debugcontent()
ok 1887 - debugcontent: no args => undef
ok 1888 - debugcontent: undef => undef
ok 1889 - debugcontent: undef, mm => undef
ok 1890 - debugcontent: undef, mm => mm
# Leaving tests_debugcontent()
# Entering tests_compress_ssl()
HostK: connecting and login on hostk [test1.lamiral.info] port [993] with user [test1]
Connecting with IO::Socket::SSL PeerAddr test1.lamiral.info PeerPort 993 Proto tcp Timeout 600 Debug 1 SSL_verify_mode 0 SSL_verifycn_scheme imap SSL_cipher_list DEFAULT:!DH
Connected to test1.lamiral.info
Read: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.
HostK IP address: 91.121.221.224 Local IP address: 172.25.22.77
HostK banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.
Sending: 1 CAPABILITY
Sent 14 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN
Read: 1 OK Pre-login capabilities listed, post-login capabilities have more.
HostK capability before authentication: IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN AUTH
Sending: 2 LOGIN test1 [Redact: Count=2 Showcredentials=OFF]
Sent 23 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE COMPRESS=DEFLATE
2 OK Logged in
HostK: success login on [test1.lamiral.info] with user [test1] auth [LOGIN] or [LOGIN]
ok 1891 - tests_compress_ssl: test1.lamiral.info test1 ssl
ok 1892 - tests_compress_ssl: test1.lamiral.info test1 ssl IsAuthenticated
HostK: Trying to turn imap compression on. Use --nocompressK to avoid compression on hostk
Sending: 3 COMPRESS DEFLATE
Sent 20 bytes
Read: 3 OK Begin compression (0.001 + 0.000 secs).
HostK: Compression is on now
ok 1893 - tests_compress_ssl: test1.lamiral.info compression ok
HostK: Trying to turn imap compression on. Use --nocompressK to avoid compression on hostk
Sending: 2Qpö÷
r
Vpquóqqåå
Sent 22 bytes
Read: 4 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled (0.001 + 0.000 secs).
ERROR: 4 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled (0.001 + 0.000 secs). at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1388.
Mail::IMAPClient::__ANON__("4 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled "...) called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1424
Mail::IMAPClient::_get_response(Mail::IMAPClient=HASH(0x2ac81aea68), 4, undef) called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1350
Mail::IMAPClient::_imap_command_do(Mail::IMAPClient=HASH(0x2ac81aea68), "COMPRESS DEFLATE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1248
Mail::IMAPClient::_imap_command(Mail::IMAPClient=HASH(0x2ac81aea68), "COMPRESS DEFLATE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 480
Mail::IMAPClient::compress(Mail::IMAPClient=HASH(0x2ac81aea68)) called at imapsync line 8776
main::acc_compress_imap(HASH(0x2ac81adab0)) called at imapsync line 8692
main::tests_compress_ssl() called at imapsync line 23849
main::tests(HASH(0x2ac699c6d0)) called at imapsync line 21225
main::unittestssuite(HASH(0x2ac699c6d0)) called at imapsync line 1565
main::single_sync(HASH(0x2ac699c6d0), HASH(0x2ac4b62598), HASH(0x2ac699c868)) called at imapsync line 1385
ERROR: 4 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled (0.001 + 0.000 secs). at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1298.
Mail::IMAPClient::_imap_command(Mail::IMAPClient=HASH(0x2ac81aea68), "COMPRESS DEFLATE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 480
Mail::IMAPClient::compress(Mail::IMAPClient=HASH(0x2ac81aea68)) called at imapsync line 8776
main::acc_compress_imap(HASH(0x2ac81adab0)) called at imapsync line 8692
main::tests_compress_ssl() called at imapsync line 23849
main::tests(HASH(0x2ac699c6d0)) called at imapsync line 21225
main::unittestssuite(HASH(0x2ac699c6d0)) called at imapsync line 1565
main::single_sync(HASH(0x2ac699c6d0), HASH(0x2ac4b62598), HASH(0x2ac699c868)) called at imapsync line 1385
HostK: Failed to turn compression on
ok 1894 - tests_compress_ssl: test1.lamiral.info compression 2nd time call nok
HostK: connecting and login on hostk [test1.lamiral.info] port [993] with user [test1]
Connecting with IO::Socket::SSL PeerAddr test1.lamiral.info PeerPort 993 Proto tcp Timeout 600 Debug 1 SSL_cipher_list DEFAULT:!DH SSL_verifycn_scheme imap SSL_verify_mode 0
Connected to test1.lamiral.info
Read: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.
HostK IP address: 91.121.221.224 Local IP address: 172.25.22.77
HostK banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.
Sending: 1 CAPABILITY
Sent 14 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN
Read: 1 OK Pre-login capabilities listed, post-login capabilities have more.
HostK capability before authentication: IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN AUTH
Sending: 2 LOGIN test1 [Redact: Count=2 Showcredentials=OFF]
Sent 23 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE COMPRESS=DEFLATE
2 OK Logged in
HostK: success login on [test1.lamiral.info] with user [test1] auth [LOGIN] or [LOGIN]
ok 1895 - tests_compress_ssl: test1.lamiral.info test1 ssl
ok 1896 - tests_compress_ssl: test1.lamiral.info test1 ssl no compression IsAuthenticated
HostK: Compression is off. Use --compressK to allow compression on hostk
ok 1897 - tests_compress_ssl: test1.lamiral.info no compression ok
HostK: Compression is off. Use --compressK to allow compression on hostk
ok 1898 - tests_compress_ssl: test1.lamiral.info 2nd no compression ok
# Leaving tests_compress_ssl()
# Entering tests_compress_starttls()
HostK: connecting and login on hostk [test1.lamiral.info] port [143] with user [test1]
Connecting with IO::Socket::IP PeerAddr test1.lamiral.info PeerPort 143 Proto tcp Timeout 600 Debug 1
Connected to test1.lamiral.info
Read: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
HostK IP address: 91.121.221.224 Local IP address: 172.25.22.77
HostK banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
Sending: 1 CAPABILITY
Sent 14 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN
1 OK Pre-login capabilities listed, post-login capabilities have more.
HostK capability before authentication: IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN AUTH
Sending: 2 STARTTLS
Sent 12 bytes
Read: 2 OK Begin TLS negotiation now.
HostK: Socket successfully converted to SSL
Sending: 3 CAPABILITY
Sent 14 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN
Read: 3 OK Pre-login capabilities listed, post-login capabilities have more.
Sending: 4 LOGIN test1 [Redact: Count=4 Showcredentials=OFF]
Sent 23 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE COMPRESS=DEFLATE
4 OK Logged in
HostK: success login on [test1.lamiral.info] with user [test1] auth [LOGIN] or [LOGIN]
ok 1899 - tests_compress_starttls: test1.lamiral.info test1 tls
ok 1900 - tests_compress_starttls: test1.lamiral.info test1 tls IsAuthenticated
HostK: Trying to turn imap compression on. Use --nocompressK to avoid compression on hostk
Sending: 5 COMPRESS DEFLATE
Sent 20 bytes
Read: 5 OK Begin compression (0.001 + 0.000 secs).
HostK: Compression is on now
ok 1901 - tests_compress_starttls: test1.lamiral.info tls compression ok
HostK: Trying to turn imap compression on. Use --nocompressK to avoid compression on hostk
Sending: 2Spö÷
r
Vpquóqqåå
Sent 22 bytes
Read: 6 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled (0.001 + 0.000 secs).
ERROR: 6 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled (0.001 + 0.000 secs). at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1388.
Mail::IMAPClient::__ANON__("6 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled "...) called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1424
Mail::IMAPClient::_get_response(Mail::IMAPClient=HASH(0x2ac819e668), 6, undef) called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1350
Mail::IMAPClient::_imap_command_do(Mail::IMAPClient=HASH(0x2ac819e668), "COMPRESS DEFLATE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1248
Mail::IMAPClient::_imap_command(Mail::IMAPClient=HASH(0x2ac819e668), "COMPRESS DEFLATE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 480
Mail::IMAPClient::compress(Mail::IMAPClient=HASH(0x2ac819e668)) called at imapsync line 8776
main::acc_compress_imap(HASH(0x2ac81b0848)) called at imapsync line 8643
main::tests_compress_starttls() called at imapsync line 23850
main::tests(HASH(0x2ac699c6d0)) called at imapsync line 21225
main::unittestssuite(HASH(0x2ac699c6d0)) called at imapsync line 1565
main::single_sync(HASH(0x2ac699c6d0), HASH(0x2ac4b62598), HASH(0x2ac699c868)) called at imapsync line 1385
ERROR: 6 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled (0.001 + 0.000 secs). at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1298.
Mail::IMAPClient::_imap_command(Mail::IMAPClient=HASH(0x2ac819e668), "COMPRESS DEFLATE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 480
Mail::IMAPClient::compress(Mail::IMAPClient=HASH(0x2ac819e668)) called at imapsync line 8776
main::acc_compress_imap(HASH(0x2ac81b0848)) called at imapsync line 8643
main::tests_compress_starttls() called at imapsync line 23850
main::tests(HASH(0x2ac699c6d0)) called at imapsync line 21225
main::unittestssuite(HASH(0x2ac699c6d0)) called at imapsync line 1565
main::single_sync(HASH(0x2ac699c6d0), HASH(0x2ac4b62598), HASH(0x2ac699c868)) called at imapsync line 1385
HostK: Failed to turn compression on
ok 1902 - tests_compress_starttls: test1.lamiral.info tls compression 2nd time call nok
HostK: connecting and login on hostk [test1.lamiral.info] port [143] with user [test1]
Connecting with IO::Socket::IP PeerAddr test1.lamiral.info PeerPort 143 Proto tcp Timeout 600 Debug 1
Connected to test1.lamiral.info
Read: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
HostK IP address: 91.121.221.224 Local IP address: 172.25.22.77
HostK banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
Sending: 1 CAPABILITY
Sent 14 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN
1 OK Pre-login capabilities listed, post-login capabilities have more.
HostK capability before authentication: IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN AUTH
Sending: 2 STARTTLS
Sent 12 bytes
Read: 2 OK Begin TLS negotiation now.
HostK: Socket successfully converted to SSL
Sending: 3 CAPABILITY
Sent 14 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN
Read: 3 OK Pre-login capabilities listed, post-login capabilities have more.
Sending: 4 LOGIN test1 [Redact: Count=4 Showcredentials=OFF]
Sent 23 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE COMPRESS=DEFLATE
4 OK Logged in
HostK: success login on [test1.lamiral.info] with user [test1] auth [LOGIN] or [LOGIN]
ok 1903 - tests_compress_starttls: test1.lamiral.info test1 tls no compression
ok 1904 - tests_compress_starttls: test1.lamiral.info test1 tls no compression IsAuthenticated
HostK: Compression is off. Use --compressK to allow compression on hostk
ok 1905 - tests_compress_starttls: test1.lamiral.info no compression ok
HostK: Compression is off. Use --compressK to allow compression on hostk
ok 1906 - tests_compress_starttls: test1.lamiral.info 2nd no compression ok
# Leaving tests_compress_starttls()
# Entering tests_compress()
HostK: connecting and login on hostk [test1.lamiral.info] port [143] with user [test1]
Connecting with IO::Socket::IP PeerAddr test1.lamiral.info PeerPort 143 Proto tcp Timeout 600 Debug 1
Connected to test1.lamiral.info
Read: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
HostK IP address: 91.121.221.224 Local IP address: 172.25.22.77
HostK banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
Sending: 1 CAPABILITY
Sent 14 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN
1 OK Pre-login capabilities listed, post-login capabilities have more.
HostK capability before authentication: IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN AUTH
Sending: 2 LOGIN test1 [Redact: Count=2 Showcredentials=OFF]
Sent 23 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE COMPRESS=DEFLATE
2 OK Logged in
HostK: success login on [test1.lamiral.info] with user [test1] auth [LOGIN] or [LOGIN]
ok 1907 - tests_compress: test1.lamiral.info test1
ok 1908 - tests_compress: test1.lamiral.info test1 IsAuthenticated
HostK: Trying to turn imap compression on. Use --nocompressK to avoid compression on hostk
Sending: 3 COMPRESS DEFLATE
Sent 20 bytes
Read: 3 OK Begin compression (0.001 + 0.000 secs).
HostK: Compression is on now
ok 1909 - tests_compress: test1.lamiral.info ok
HostK: Trying to turn imap compression on. Use --nocompressK to avoid compression on hostk
Sending: 2Qpö÷
r
Vpquóqqåå
Sent 22 bytes
Read: 4 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled (0.001 + 0.000 secs).
ERROR: 4 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled (0.001 + 0.000 secs). at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1388.
Mail::IMAPClient::__ANON__("4 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled "...) called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1424
Mail::IMAPClient::_get_response(Mail::IMAPClient=HASH(0x2ac81aaab0), 4, undef) called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1350
Mail::IMAPClient::_imap_command_do(Mail::IMAPClient=HASH(0x2ac81aaab0), "COMPRESS DEFLATE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1248
Mail::IMAPClient::_imap_command(Mail::IMAPClient=HASH(0x2ac81aaab0), "COMPRESS DEFLATE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 480
Mail::IMAPClient::compress(Mail::IMAPClient=HASH(0x2ac81aaab0)) called at imapsync line 8776
main::acc_compress_imap(HASH(0x2ac81a9890)) called at imapsync line 8733
main::tests_compress() called at imapsync line 23851
main::tests(HASH(0x2ac699c6d0)) called at imapsync line 21225
main::unittestssuite(HASH(0x2ac699c6d0)) called at imapsync line 1565
main::single_sync(HASH(0x2ac699c6d0), HASH(0x2ac4b62598), HASH(0x2ac699c868)) called at imapsync line 1385
ERROR: 4 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled (0.001 + 0.000 secs). at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1298.
Mail::IMAPClient::_imap_command(Mail::IMAPClient=HASH(0x2ac81aaab0), "COMPRESS DEFLATE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 480
Mail::IMAPClient::compress(Mail::IMAPClient=HASH(0x2ac81aaab0)) called at imapsync line 8776
main::acc_compress_imap(HASH(0x2ac81a9890)) called at imapsync line 8733
main::tests_compress() called at imapsync line 23851
main::tests(HASH(0x2ac699c6d0)) called at imapsync line 21225
main::unittestssuite(HASH(0x2ac699c6d0)) called at imapsync line 1565
main::single_sync(HASH(0x2ac699c6d0), HASH(0x2ac4b62598), HASH(0x2ac699c868)) called at imapsync line 1385
HostK: Failed to turn compression on
ok 1910 - tests_compress: test1.lamiral.info 2nd nok
HostK: connecting and login on hostk [test1.lamiral.info] port [143] with user [test1]
Connecting with IO::Socket::IP PeerAddr test1.lamiral.info PeerPort 143 Proto tcp Timeout 600 Debug 1
Connected to test1.lamiral.info
Read: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
HostK IP address: 91.121.221.224 Local IP address: 172.25.22.77
HostK banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
Sending: 1 CAPABILITY
Sent 14 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN
1 OK Pre-login capabilities listed, post-login capabilities have more.
HostK capability before authentication: IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN AUTH
Sending: 2 LOGIN test1 [Redact: Count=2 Showcredentials=OFF]
Sent 23 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE COMPRESS=DEFLATE
2 OK Logged in
HostK: success login on [test1.lamiral.info] with user [test1] auth [LOGIN] or [LOGIN]
ok 1911 - tests_compress: test1.lamiral.info test1 tls
ok 1912 - tests_compress: test1.lamiral.info test1 tls IsAuthenticated
HostK: Trying to turn imap compression on. Use --nocompressK to avoid compression on hostk
Sending: 3 COMPRESS DEFLATE
Sent 20 bytes
Read: 3 OK Begin compression (0.001 + 0.000 secs).
HostK: Compression is on now
ok 1913 - tests_compress: test1.lamiral.info tls ok
HostK: Trying to turn imap compression on. Use --nocompressK to avoid compression on hostk
Sending: 2Qpö÷
r
Vpquóqqåå
Sent 22 bytes
Read: 4 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled (0.001 + 0.000 secs).
ERROR: 4 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled (0.001 + 0.000 secs). at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1388.
Mail::IMAPClient::__ANON__("4 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled "...) called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1424
Mail::IMAPClient::_get_response(Mail::IMAPClient=HASH(0x2ac81a9530), 4, undef) called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1350
Mail::IMAPClient::_imap_command_do(Mail::IMAPClient=HASH(0x2ac81a9530), "COMPRESS DEFLATE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1248
Mail::IMAPClient::_imap_command(Mail::IMAPClient=HASH(0x2ac81a9530), "COMPRESS DEFLATE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 480
Mail::IMAPClient::compress(Mail::IMAPClient=HASH(0x2ac81a9530)) called at imapsync line 8776
main::acc_compress_imap(HASH(0x2ac81a9890)) called at imapsync line 8743
main::tests_compress() called at imapsync line 23851
main::tests(HASH(0x2ac699c6d0)) called at imapsync line 21225
main::unittestssuite(HASH(0x2ac699c6d0)) called at imapsync line 1565
main::single_sync(HASH(0x2ac699c6d0), HASH(0x2ac4b62598), HASH(0x2ac699c868)) called at imapsync line 1385
ERROR: 4 NO [COMPRESSIONACTIVE] COMPRESSION=DEFLATE already enabled (0.001 + 0.000 secs). at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 1298.
Mail::IMAPClient::_imap_command(Mail::IMAPClient=HASH(0x2ac81a9530), "COMPRESS DEFLATE") called at /usr/share/perl5/vendor_perl/Mail/IMAPClient.pm line 480
Mail::IMAPClient::compress(Mail::IMAPClient=HASH(0x2ac81a9530)) called at imapsync line 8776
main::acc_compress_imap(HASH(0x2ac81a9890)) called at imapsync line 8743
main::tests_compress() called at imapsync line 23851
main::tests(HASH(0x2ac699c6d0)) called at imapsync line 21225
main::unittestssuite(HASH(0x2ac699c6d0)) called at imapsync line 1565
main::single_sync(HASH(0x2ac699c6d0), HASH(0x2ac4b62598), HASH(0x2ac699c868)) called at imapsync line 1385
HostK: Failed to turn compression on
ok 1914 - tests_compress: test1.lamiral.info tls 2nd nok
HostK: connecting and login on hostk [test1.lamiral.info] port [143] with user [test1]
Connecting with IO::Socket::IP PeerAddr test1.lamiral.info PeerPort 143 Proto tcp Timeout 600 Debug 1
Connected to test1.lamiral.info
Read: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
HostK IP address: 91.121.221.224 Local IP address: 172.25.22.77
HostK banner: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready.
Sending: 1 CAPABILITY
Sent 14 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN
1 OK Pre-login capabilities listed, post-login capabilities have more.
HostK capability before authentication: IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN AUTH
Sending: 2 LOGIN test1 [Redact: Count=2 Showcredentials=OFF]
Sent 23 bytes
Read: * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE COMPRESS=DEFLATE
2 OK Logged in
HostK: success login on [test1.lamiral.info] with user [test1] auth [LOGIN] or [LOGIN]
ok 1915 - tests_compress: test1.lamiral.info test1 ssl
ok 1916 - tests_compress: test1.lamiral.info test1 ssl IsAuthenticated
HostK: Compression is off. Use --compressK to allow compression on hostk
ok 1917 - tests_compress: test1.lamiral.info off ok
HostK: Compression is off. Use --compressK to allow compression on hostk
ok 1918 - tests_compress: test1.lamiral.info 2nd off ok
# Leaving tests_compress()
# Entering tests_get_options_extra_from_file()
ok 1919 - tests_get_options_extra_from_file: no args => undef
ok 1920 - tests_get_options_extra_from_file: undef => undef
ok 1921 - tests_get_options_extra_from_file: mkpath W/tmp/tests/options_extra/
ok 1922 - tests_get_options_extra_from_file: string_to_file filling options_extra.txt with --debugimap1
ok 1923 - tests_get_options_extra_from_file: reading options_extra.txt is --debugimap1
Duplicate specification "debugsleep=f" for option "debugsleep"
Duplicate specification "syncduplicates!" for option "syncduplicates"
Duplicate specification "skipcrossduplicates!" for option "skipcrossduplicates"
Duplicate specification "debugcrossduplicates!" for option "debugcrossduplicates"
ok 1924 - tests_get_options_extra_from_file: --debugimap1 in options_extra.txt => nothing left, empty string return
ok 1925 - tests_get_options_extra_from_file: --debugimap1 in options_extra.txt => ok, acc1->debugimap = 1
ok 1926 - tests_get_options_extra_from_file: string_to_file filling options_extra.txt with --tls1 proutcaca
Duplicate specification "debugsleep=f" for option "debugsleep"
Duplicate specification "syncduplicates!" for option "syncduplicates"
Duplicate specification "skipcrossduplicates!" for option "skipcrossduplicates"
Duplicate specification "debugcrossduplicates!" for option "debugcrossduplicates"
ok 1927 - tests_get_options_extra_from_file: --tls1 proutcaca in options_extra.txt => proutcaca left, proutcaca return
ok 1928 - tests_get_options_extra_from_file: --tls1 proutcaca" => tls1 = 1
ok 1929 - tests_get_options_extra_from_file: string_to_file filling options_extra.txt with --tls2 --proutcaca pipi
Duplicate specification "debugsleep=f" for option "debugsleep"
Duplicate specification "syncduplicates!" for option "syncduplicates"
Duplicate specification "skipcrossduplicates!" for option "skipcrossduplicates"
Duplicate specification "debugcrossduplicates!" for option "debugcrossduplicates"
ok 1930 - tests_get_options_extra_from_file: --tls2 --proutcaca pipi in options_extra.txt => --proutcaca pipi return
ok 1931 - tests_get_options_extra_from_file: --tls2 proutcaca" => tls2 = 1
# Leaving tests_get_options_extra_from_file()
# Entering tests_get_options_from_string()
ok 1932 - tests_get_options_from_string: no args => undef
ok 1933 - tests_get_options_from_string: undef => undef
Duplicate specification "debugsleep=f" for option "debugsleep"
Duplicate specification "syncduplicates!" for option "syncduplicates"
Duplicate specification "skipcrossduplicates!" for option "skipcrossduplicates"
Duplicate specification "debugcrossduplicates!" for option "debugcrossduplicates"
ok 1934 - tests_get_options_from_string: --debugimap1 => ok, nothing left, empty string return
ok 1935 - tests_get_options_from_string: --debugimap1 => ok, acc1->debugimap = 1
Duplicate specification "debugsleep=f" for option "debugsleep"
Duplicate specification "syncduplicates!" for option "syncduplicates"
Duplicate specification "skipcrossduplicates!" for option "skipcrossduplicates"
Duplicate specification "debugcrossduplicates!" for option "debugcrossduplicates"
ok 1936 - tests_get_options_from_string: --debugimap1 caca => ok, caca left, caca return
ok 1937 - tests_get_options_from_string: --debugimap1 => ok, acc1->debugimap = 1
Duplicate specification "debugsleep=f" for option "debugsleep"
Duplicate specification "syncduplicates!" for option "syncduplicates"
Duplicate specification "skipcrossduplicates!" for option "skipcrossduplicates"
Duplicate specification "debugcrossduplicates!" for option "debugcrossduplicates"
ok 1938 - tests_get_options_from_string: --debugimap1 popo roro => ok, popo roro left, popo roro return
ok 1939 - tests_get_options_from_string: --debugimap2 popo roro => ok, acc2->debugimap = 1
ok 1940 - tests_get_options_from_string: acc1->debugimap = 1 still
Duplicate specification "debugsleep=f" for option "debugsleep"
Duplicate specification "syncduplicates!" for option "syncduplicates"
Duplicate specification "skipcrossduplicates!" for option "skipcrossduplicates"
Duplicate specification "debugcrossduplicates!" for option "debugcrossduplicates"
ok 1941 - tests_get_options_from_string: --nodebugimap1 --debugflags --errorsmax 2 => ok, empty string return
ok 1942 - tests_get_options_from_string: acc1->debugimap = 0 now
ok 1943 - tests_get_options_from_string: debugflags = 1 now
ok 1944 - tests_get_options_from_string: mysync->errorsmax = 2 now
Duplicate specification "debugsleep=f" for option "debugsleep"
Duplicate specification "syncduplicates!" for option "syncduplicates"
Duplicate specification "skipcrossduplicates!" for option "skipcrossduplicates"
Duplicate specification "debugcrossduplicates!" for option "debugcrossduplicates"
ok 1945 - tests_get_options_from_string: --folder "IN BOX" --folder JOE => ok, empty string return
ok 1946 - tests_get_options_from_string: "IN BOX" "JOE"
Duplicate specification "debugsleep=f" for option "debugsleep"
Duplicate specification "syncduplicates!" for option "syncduplicates"
Duplicate specification "skipcrossduplicates!" for option "skipcrossduplicates"
Duplicate specification "debugcrossduplicates!" for option "debugcrossduplicates"
ok 1947 - tests_get_options_from_string: --debugflags --koko => --koko
Duplicate specification "debugsleep=f" for option "debugsleep"
Duplicate specification "syncduplicates!" for option "syncduplicates"
Duplicate specification "skipcrossduplicates!" for option "skipcrossduplicates"
Duplicate specification "debugcrossduplicates!" for option "debugcrossduplicates"
ok 1948 - tests_get_options_from_string: --folder "IN BOX" --folder JOE => ok, empty string return
ok 1949 - tests_get_options_from_string: "IN BOX" "JOE"
# Leaving tests_get_options_from_string()
# Entering tests_email_report_message_id()
ok 1950 - email_report_message_id: no args => ...._.._.._.._.._.._...__@imapsync.tk
ok 1951 - email_report_message_id: undef => ...._.._.._.._.._.._...__@imapsync.tk
ok 1952 - email_report_message_id: 1357902468.531 => 2013_01_11_\d\d_07_48_530__@imapsync.tk
ok 1953 - email_report_message_id: 1357902468.531 sarah haras => 2013_01_11_\d\d_07_48_530_sarah_haras@imapsync.tk
ok 1954 - email_report_message_id: 1357902468.531 sar@ah har@as => 2013_01_11_\d\d_07_48_530_sar_ah_har_as@imapsync.tk
# Leaving tests_email_report_message_id()
# Entering tests_date_year_month_day_hour_min_sec_ms()
ok 1955 - year_month_day_hour_min_sec_ms: no args => 1970_01_01_00_00_00_000 GMT
ok 1956 - year_month_day_hour_min_sec_ms: 0 => 1970_01_01_00_00_00_000 GMT
ok 1957 - year_month_day_hour_min_sec_ms: 123456789.123 => 1973_11_29_21_33_09_122 GMT
ok 1958 - year_month_day_hour_min_sec_ms: -1 => 1969_12_31_23_59_59_000 GMT
ok 1959 - year_month_day_hour_min_sec_ms: -0.246 => 1969_12_31_23_59_59_754 GMT
ok 1960 - year_month_day_hour_min_sec_ms: -123456789.135 => 1966_02_02_02_26_50_864 GMT
# Leaving tests_year_month_day_hour_min_sec_ms()
# Entering tests_fractional_of_floor()
ok 1961 - fractional_of_floor: no args => 0
ok 1962 - fractional_of_floor: 0 => 0
ok 1963 - fractional_of_floor: 0 => 0
ok 1964 - fractional_of_floor: 1 => 0
ok 1965 - fractional_of_floor: 1 => 0
ok 1966 - fractional_of_floor: -1 => 0
ok 1967 - fractional_of_floor: -1 => 0
ok 1968 - fractional_of_floor: 1.234 => 0.234
ok 1969 - fractional_of_floor: 1.234 => 0.234
ok 1970 - fractional_of_floor: -1.234 => 0.766
ok 1971 - fractional_of_floor: -1.234 => 0.766
ok 1972 - fractional_of_floor: 10.234 => 0.234
ok 1973 - fractional_of_floor: -10.234 => 0.766
# Leaving tests_fractional_of_floor()
# Entering tests_email_report_date()
ok 1974 - date_rfc822: no args => now: Tue, 30 Sep 2025 08:13:38 +0000
ok 1975 - date_rfc822: 0 => Thu, 01 Jan 1970 00:00:00 +0000
ok 1976 - date_rfc822: 1671706800 => Thu, 22 Dec 2022 11:00:00 +0000
# Leaving tests_email_report_date()
# Entering tests_email_report_from()
ok 1977 - email_report_from: no args => help@imapsync.tk
ok 1978 - email_report_from: undef => help@imapsync.tk
ok 1979 - email_report_from: foo@example.com => foo@example.com
# Leaving tests_email_report_from()
# Entering tests_email_report_from()
ok 1980 - email_report_to: no args => help@imapsync.tk
ok 1981 - email_report_to: undef => help@imapsync.tk
ok 1982 - email_report_to: foo@example.com => foo@example.com
# Leaving tests_email_report_from()
# Entering tests_email_report_body_base()
ok 1983 - email_report_body_base: no args => empty string
ok 1984 - email_report_body_base: undef => empty string
#
#
#
# Imapsync transfer from user1@example.com to user2@example.com
#
#
# Hello!
#
# Imapsync just ended the synchronization from the imap account user1@example.com to the imap account user2@example.com.
#
# Leaving tests_email_report_body_base()
# Entering tests_email_report()
ok 1985 - email_report: undef => empty string
# Message-Id: 2025_09_30_08_13_38_868_user1_example_com_user2_example_com@imapsync.tk
# Date: Tue, 30 Sep 2025 08:13:38 +0000
# From: help@imapsync.tk
# To: user2@example.com
# Subject: Imapsync transferred your account
# Content-Type: text/html
#
#
#
#
#
#
# Imapsync transfer from user1@example.com to user2@example.com
#
#
# Hello!
#
# Imapsync just ended the synchronization from the imap account user1@example.com to the imap account user2@example.com.
#
# c'est extra !
#
#
# Leaving tests_email_report()
# Entering tests_setlogdir()
ok 1986 - setlogdir: no args => LOG_imapsync
ok 1987 - setlogdir: no args => LOG_imapsync
ok 1988 - setlogdir: logdir empty string => empty string
ok 1989 - setlogdir: logdir empty string unchanged
ok 1990 - setlogdir: logdir vallogdir => vallogdir
ok 1991 - setlogdir: logdir vallogdir unchanged
ok 1992 - setlogdir: logdir vallogdir => vallogdir
ok 1993 - setlogdir: logdir vallogdir unchanged
# Leaving tests_setlogdir()
# Entering tests_logfilesuffix()
ok 1994 - tests_logfilesuffix: no args => _
ok 1995 - tests_logfilesuffix: undef => _
ok 1996 - tests_logfilesuffix: valuser1 valuser2 => valuser1_valuser2
ok 1997 - tests_logfilesuffix: valuser1 valuser2 _suppl => valuser1_valuser2_suppl
# Leaving tests_logfilesuffix()
# Entering tests_cgienvcontext()
ok 1998 - cgienvcontext: no args => empty
ok 1999 - cgienvcontext: undef => empty
ok 2000 - cgienvcontext: SERVER_SOFTWARE=Chateau Lami
ok 2001 - cgienvcontext: SERVER_SOFTWARE + REMOTE_HOST
ok 2002 - cgienvcontext: SERVER_SOFTWARE + REMOTE_HOST + --var REMOTE_HOST
ok 2003 - cgienvcontext: SERVER_SOFTWARE + --var REMOTE_HOST
ok 2004 - cgienvcontext: --var REMOTE_HOST
# Leaving tests_cgienvcontext()
# Entering tests_usecache_and_skipcrossduplicates()
ok 2005 - usecache_and_skipcrossduplicates: no args => undef
ok 2006 - usecache_and_skipcrossduplicates: undef => undef
ok 2007 - usecache_and_skipcrossduplicates: usecache=skipcrossduplicates=1 => wrong
# Leaving tests_usecache_and_skipcrossduplicates()
# Entering tests_loglogfile()
ok 2008 - loglogfile: no args => undef
ok 2009 - loglogfile: undef => undef
ok 2010 - loglogfile: no logfile => undef
ok 2011 - loglogfile: logfile=logfile.txt =>
# Leaving tests_loglogfile()
# Entering tests_is_heavy_load_reached()
ok 2012 - heavy_load_reached: no args => 0 or 1
ok 2013 - heavy_load_reached: { } => 0 or 1
ok 2014 - heavy_load_reached: exitonload=0 => 0
# Leaving tests_heavy_load_reached()
# Entering tests_heavy_load_percent_threshold()
# 99 (%)
ok 2015 - heavy_load_percent_threshold: no args => integer
ok 2016 - heavy_load_percent_threshold: { } => integer
# Leaving tests_heavy_load_percent_threshold()
# Entering tests_pctmem_available()
ok 2017 - pctmem_available: no args => undef
ok 2018 - pctmem_available: => 0 or 1
# Leaving tests_pctmem_available()
# Entering tests_filterbuggyflags()
ok 2019 - tests_filterbuggyflags: remove famous /X 1
ok 2020 - tests_filterbuggyflags: remove famous /X 2
ok 2021 - tests_filterbuggyflags: \ is \
ok 2022 - tests_filterbuggyflags: \ is \
# Leaving tests_filterbuggyflags()
# Entering tests_heavy_load_reached_by_memory()
ok 2023 - heavy_load_reached_by_memory: no args => 0 or 1
ok 2024 - heavy_load_reached_by_memory: { } => 0 or 1
# Leaving tests_heavy_load_reached_by_memory()
# Entering tests_heavy_load_reached_by_cpu()
# 3.39 1.70 0.99 5/1417 heavy_load_reached_by_cpu 0
ok 2025 - heavy_load_reached_by_cpu: no args => 0 or 1
ok 2026 - heavy_load_reached_by_cpu: { } => 0 or 1
# Leaving tests_heavy_load_reached_by_cpu()
# Entering tests_load_per_cpu()
# loadavg: 3.39 1.70 0.99 4/1416 cpu_number: 64 load_per_cpu 0
ok 2027 - tests_load_per_cpu: no args => number
ok 2028 - tests_load_per_cpu: { } => number
# Leaving tests_load_per_cpu()
# Entering tests_memory_consumption_surface()
ok 2029 - memory_consumption_surface: no args => undef
ok 2030 - memory_consumption_surface: { } => undef
ok 2031 - memory_consumption_surface: 1 MB 1 hour => 1
ok 2032 - memory_consumption_surface: 500 MB 30 min => 238
# Leaving tests_memory_consumption_surface()
# Entering tests_add()
ok 2033 - tests_add: no args => 0
ok 2034 - tests_add: undef => 0
ok 2035 - tests_add: 0 => 0
ok 2036 - tests_add: 0 0 => 0
ok 2037 - tests_add: 0 0 0 => 0
ok 2038 - tests_add: 1 => 1
ok 2039 - tests_add: 1 1 => 2
ok 2040 - tests_add: 1 1 1 => 3
ok 2041 - tests_add: 1 undef 1 => 2
ok 2042 - tests_add: -1 1 => 0
ok 2043 - tests_add: 1.1 1.1 => 2.2
ok 2044 - tests_add: 1 1 ... 1 100 times => 100 list
ok 2045 - tests_add: 1 1 ... 1 100 times => 100 array
# Leaving tests_add()
# Entering tests_all_pids()
# all_pids 1 2 13 15 16 1426 1427 1501
ok 2046 - tests_all_pids: no args => list of pids
# Leaving tests_all_pids()
# Entering tests_memory_consumption_of_all_pids()
# memory_consumption_of_all_pids: 209977344 bytes aka 209.977 MB
ok 2047 - tests_memory_consumption_of_all_pids no args
# Leaving tests_memory_consumption_of_all_pids()
# Entering tests_remove_qq()
ok 2048 - tests_remove_qq: no args => undef
ok 2049 - tests_remove_qq: empty => empty
ok 2050 - tests_remove_qq: ABC => ABC
ok 2051 - tests_remove_qq: "ABC" => ABC
ok 2052 - tests_remove_qq: ""ABC" => "ABC
ok 2053 - tests_remove_qq: "ABC"" => ABC"
ok 2054 - tests_remove_qq: ""ABC"" => "ABC"
# Leaving tests_remove_qq()
# Entering tests_memory_consumption_all_pids_percent()
# 0.16 (%)
ok 2055 - tests_memory_consumption_all_pids_percent: no args => like 12.34
ok 2056 - tests_memory_consumption_all_pids_percent: > 0
ok 2057 - tests_memory_consumption_all_pids_percent: <= 100
# Leaving tests_memory_consumption_all_pids_percent()
# Entering tests_ram_memory_info()
# ram_memory_info:30.3/124.9 free GiB of RAM, 0.16% used by processes.
# total_ram_memory_bytes_sys_meminfo:134090579968
ok 2058 - ram_memory_info: => some text
# Leaving tests_ram_memory_info()
# Entering tests_firstline_or_string()
ok 2059 - tests_firstline_or_string: no args => undef
Taking string as the value since it is not a file
ok 2060 - tests_firstline_or_string: empty string => please, give a value
Taking string W/tmp/tests/noexist.txt as the value since it is not a file
ok 2061 - tests_firstline_or_string: get W/tmp/tests/noexist.txt string from inexisting W/tmp/tests/noexist.txt
ok 2062 - tests_firstline_or_string: mkpath W/tmp/tests/
ok 2063 - tests_firstline_or_string: put blabla in W/tmp/tests/firstline.txt
Reading first line of file W/tmp/tests/firstline.txt
ok 2064 - tests_firstline_or_string: get blabla from W/tmp/tests/firstline.txt
# Leaving tests_firstline_or_string()
# Entering tests_oauth2_bearer_string()
ok 2065 - tests_oauth2_bearer_string: no args => undef
ok 2066 - tests_oauth2_bearer_string: empty string, no user => undef
Taking string as the value since it is not a file
ok 2067 - tests_oauth2_bearer_string: empty string, empty user => dXNlcj0BYXV0aD1CZWFyZXIgcGxlYXNlLCBnaXZlIGEgdmFsdWUBAQ
Executing script: noexists
open3: exec of noexists failed: No such file or directory at imapsync line 19160.
Taking string as the value since it is not a file
ok 2068 - tests_oauth2_bearer_string: empty string, empty user, noexists command => dXNlcj0BYXV0aD1CZWFyZXIgcGxlYXNlLCBnaXZlIGEgdmFsdWUBAQ
Executing script: true
Taking string as the value since it is not a file
ok 2069 - tests_oauth2_bearer_string: empty string, empty user, true command => dXNlcj0BYXV0aD1CZWFyZXIgcGxlYXNlLCBnaXZlIGEgdmFsdWUBAQ
Executing script: false
Taking string as the value since it is not a file
ok 2070 - tests_oauth2_bearer_string: empty string, empty user, false command => dXNlcj0BYXV0aD1CZWFyZXIgcGxlYXNlLCBnaXZlIGEgdmFsdWUBAQ
Executing script: ls /kkkk
Output of ls /kkkk
ls: cannot access '/kkkk': No such file or directory
Taking string as the value since it is not a file
ok 2071 - tests_oauth2_bearer_string: empty string, empty user, ls /kkkk command => dXNlcj0BYXV0aD1CZWFyZXIgcGxlYXNlLCBnaXZlIGEgdmFsdWUBAQ
Executing script: echo Hi!
Output of echo Hi!
Hi!
Taking string as the value since it is not a file
ok 2072 - tests_oauth2_bearer_string: empty string, empty user, empty command => dXNlcj0BYXV0aD1CZWFyZXIgcGxlYXNlLCBnaXZlIGEgdmFsdWUBAQ
# Leaving tests_oauth2_bearer_string()
# Entering tests_diskspace_available()
ok 2073 - tests_diskspace_available: no args => 1, could touch /var/tmp/imapsync_test_diskspace_available
ok 2074 - tests_diskspace_available: removed /var/tmp/imapsync_test_diskspace_available
ok 2075 - tests_diskspace_available: no args => 1, could touch /var/tmp/imapsync_test_diskspace_available2
ok 2076 - tests_diskspace_available: removed /var/tmp/imapsync_test_diskspace_available2
ok 2077 - tests_diskspace_available: /no/no/no/no => undef
# Leaving tests_diskspace_available()
# Entering tests_generate_a_random_string()
ok 2078 - tests_generate_a_random_string: give me a random string
ok 2079 - tests_generate_a_random_string: 64 characters long
ok 2080 - tests_generate_a_random_string: give another one
ok 2081 - tests_generate_a_random_string: 64 characters long
# ljuvjcyuxbmwqbgrhnppxotgunorgkzdhowyrawvtnaoksrbitxqawzppkrsxbjg illsqtbdxhbwynupqtmhymqxdphgilvrrnukehztywgjlztbcaxmixizhoecwfyv
ok 2082 - tests_generate_a_random_string: hope they are different
ok 2083 - tests_generate_a_random_string: give me a 11 characters random string
ok 2084 - tests_generate_a_random_string: 11 characters long
# xgljbuwurwl
# Leaving tests_generate_a_random_string()
# Entering tests_filter_forbidden_characters()
ok 2085 - tests_filter_forbidden_characters_cgi_context: no args -> undef
ok 2086 - tests_filter_forbidden_characters_cgi_context: empty string -> empty string
ok 2087 - tests_filter_forbidden_characters_cgi_context: a*|?:"<>'b -> a________b
ok 2088 - tests_filter_forbidden_characters_cgi_context: "a b " -> "a_b_"
ok 2089 - tests_filter_forbidden_characters_cgi_context: a\tb -> a_b
ok 2090 - tests_filter_forbidden_characters_cgi_context: a\rb -> a_b
ok 2091 - tests_filter_forbidden_characters_cgi_context: a\nb -> a_b
ok 2092 - tests_filter_forbidden_characters_cgi_context: a\b -> a_b
ok 2093 - tests_filter_forbidden_characters_cgi_context: a-b -> a-b
ok 2094 - tests_filter_forbidden_characters_cgi_context: aé-è-à -ç-Öb -> a__-__-__-__-__b
ok 2095 - tests_filter_forbidden_characters_cgi_context: abcd_ABCDwxyz-WXYZ012789 -> abcd_ABCDwxyz-WXYZ012789
# Leaving tests_filter_forbidden_characters()
# Entering tests_trigger_justconnect1()
ok 2096 - tests_trigger_justconnect1: no args => undef
ok 2097 - tests_trigger_justconnect1: { } => undef
ok 2098 - tests_trigger_justconnect1: --justconnect => 1
ok 2099 - tests_trigger_justconnect1: no more --justconnect => undef
ok 2100 - tests_trigger_justconnect1: just --host1 => 1
ok 2101 - tests_trigger_justconnect1: --host1 --user1 => 1
# Leaving tests_trigger_justconnect1()
# Entering tests_trigger_justconnect2()
ok 2102 - tests_trigger_justconnect2: no args => undef
ok 2103 - tests_trigger_justconnect2: { } => undef
ok 2104 - tests_trigger_justconnect2: --justconnect => 1
ok 2105 - tests_trigger_justconnect2: no more --justconnect => undef
ok 2106 - tests_trigger_justconnect2: just --host2 => 1
ok 2107 - tests_trigger_justconnect1: --host2 --user2 => 1
# Leaving tests_trigger_justconnect2()
# Entering tests_tmpdir()
ok 2108 - tests_tmpdir: no args => ./
ok 2109 - tests_tmpdir: {} + $HOME => $HOME/tmp
ok 2110 - tests_tmpdir: {} + no $HOME => ./
ok 2111 - tests_tmpdir: {}->{tmpdir} + $HOME => {}->{tmpdir}
# Leaving tests_tmpdir()
# Entering tests_cgidir()
ok 2112 - tests_cgidir: no args => undef
ok 2113 # skip Tests avoided in Docker context or foreign host
ok 2114 # skip Tests avoided in Docker context or foreign host
ok 2115 # skip Tests avoided in Docker context or foreign host
# Leaving tests_cgidir()
# Entering tests_separate_host_port_folder()
ok 2116 - tests_separate_host_port_folder: no args => undef
ok 2117 - tests_separate_host_port_folder: empty string => empty array
ok 2118 - tests_separate_host_port_folder: imap.foo.kk => imap.foo.kk
ok 2119 - tests_separate_host_port_folder: imap.foo.kk/ => imap.foo.kk
ok 2120 - tests_separate_host_port_folder: imap.foo.kk:114433 => imap.foo.kk 114433
ok 2121 - tests_separate_host_port_folder: imap.foo.kk:114433/ => imap.foo.kk 114433
ok 2122 - tests_separate_host_port_folder: imap.foo.kk/coco => imap.foo.kk undef coco
ok 2123 - tests_separate_host_port_folder: imap.foo.kk/coco/cucu/ => imap.foo.kk undef coco/cucu/
ok 2124 - tests_separate_host_port_folder: imap.foo.kk:114433/coco => imap.foo.kk 114433 coco
ok 2125 - tests_separate_host_port_folder: imap.foo.kk:114433/coco/cucu/ => imap.foo.kk 114433 coco/cucu/
ok 2126 - tests_separate_host_port_folder: imap.foo.kk/co co => imap.foo.kk undef co co
ok 2127 - tests_separate_host_port_folder: imap.foo.kk/co co/cucu/ => imap.foo.kk undef co co/cucu/
ok 2128 - tests_separate_host_port_folder: imap.foo.kk:114433/co co => imap.foo.kk 114433 co co
ok 2129 - tests_separate_host_port_folder: imap.foo.kk:114433/co co/cucu/ => imap.foo.kk 114433 co co/cucu/
ok 2130 - tests_separate_host_port_folder: imap.foo.kk/co co => imap.foo.kk undef co co
ok 2131 - tests_separate_host_port_folder: imap.foo.kk/co co/cucu/ => imap.foo.kk undef co co/cucu/
ok 2132 - tests_separate_host_port_folder: imap.foo.kk:114433/co co => imap.foo.kk 114433 co co
ok 2133 - tests_separate_host_port_folder: imap.foo.kk:114433/co co/cucu/ => imap.foo.kk 114433 co co/cucu/
# Leaving tests_separate_host_port_folder()
# Entering tests_host1_port1_folderrec_from_host1()
ok 2134 - tests_host1_port1_folderrec_from_host1: no args => undef
ok 2135 - tests_host1_port1_folderrec_from_host1: { } => undef
ok 2136 - tests_host1_port1_folderrec_from_host1: host1 empty => undef
ok 2137 - tests_host1_port1_folderrec_from_host1: host1 empty => host1 empty
ok 2138 - tests_host1_port1_folderrec_from_host1: host1 imap.foo.kk => undef
ok 2139 - tests_host1_port1_folderrec_from_host1: host1 imap.foo.kk => host1 imap.foo.kk
ok 2140 - tests_host1_port1_folderrec_from_host1: host1 imap.foo.kk/ => undef
ok 2141 - tests_host1_port1_folderrec_from_host1: host1 imap.foo.kk/ => host1 imap.foo.kk
Acting like --port1 1234
ok 2142 - tests_host1_port1_folderrec_from_host1: host1 imap.foo.kk:1234 => undef
ok 2143 - tests_host1_port1_folderrec_from_host1: host1 imap.foo.kk:1234 => host1 imap.foo.kk
ok 2144 - tests_host1_port1_folderrec_from_host1: host1 imap.foo.kk:1234 => port1 1234
Acting like --port1 4321
ok 2145 - tests_host1_port1_folderrec_from_host1: host1 imap.foo.qq:4321/ => undef
ok 2146 - tests_host1_port1_folderrec_from_host1: host1 imap.foo.qq:4321/ => host1 imap.foo.qq
ok 2147 - tests_host1_port1_folderrec_from_host1: host1 imap.foo.qq:4321/ => port1 4321
Acting like --folderrec prout/hoho
ok 2148 - tests_host1_port1_folderrec_from_host1: host1 imap.bar.kk/prout/hoho => undef
ok 2149 - tests_host1_port1_folderrec_from_host1: host1 imap.bar.kk/prout/hoho => host1 imap.bar.kk
ok 2150 - tests_host1_port1_folderrec_from_host1: host1 imap.bar.kk/prout/hoho => folderrec prout/hoho
Acting like --port1 2345
Acting like --folderrec prout.haha
ok 2151 - tests_host1_port1_folderrec_from_host1: host1 imap.bar.qq:2345/prout.haha => undef
ok 2152 - tests_host1_port1_folderrec_from_host1: host1 imap.bar.qq:2345/prout.haha => host1 imap.bar.qq
ok 2153 - tests_host1_port1_folderrec_from_host1: host1 imap.bar.qq:2345/prout.haha => port1 2345
ok 2154 - tests_host1_port1_folderrec_from_host1: host1 imap.bar.qq:2345/prout.haha => folderrec prout.haha
# Leaving tests_host1_port1_folderrec_from_host1()
# Entering tests_get_options_extra_from_param()
ok 2155 - tests_get_options_extra_from_param: no args => undef
ok 2156 - tests_get_options_extra_from_param: undef => undef
Duplicate specification "debugsleep=f" for option "debugsleep"
Duplicate specification "syncduplicates!" for option "syncduplicates"
Duplicate specification "skipcrossduplicates!" for option "skipcrossduplicates"
Duplicate specification "debugcrossduplicates!" for option "debugcrossduplicates"
ok 2157 - tests_get_options_extra_from_param: --extra --debugimap1 => nothing left, empty string return
ok 2158 - tests_get_options_extra_from_param: --debugimap1 in options_extra.txt => ok, acc1->debugimap = 1
Duplicate specification "debugsleep=f" for option "debugsleep"
Duplicate specification "syncduplicates!" for option "syncduplicates"
Duplicate specification "skipcrossduplicates!" for option "skipcrossduplicates"
Duplicate specification "debugcrossduplicates!" for option "debugcrossduplicates"
ok 2159 - tests_get_options_extra_from_param: --extra "--tls1 proutcaca" => proutcaca left, proutcaca return
ok 2160 - tests_get_options_extra_from_param: --extra "--tls1 proutcaca" => tls1 = 1
Duplicate specification "debugsleep=f" for option "debugsleep"
Duplicate specification "syncduplicates!" for option "syncduplicates"
Duplicate specification "skipcrossduplicates!" for option "skipcrossduplicates"
Duplicate specification "debugcrossduplicates!" for option "debugcrossduplicates"
ok 2161 - tests_get_options_extra_from_param: --extra "--tls1 --proutcaca" => --proutcaca left, --proutcaca return
ok 2162 - tests_get_options_extra_from_param: --extra "--tls1 --proutcaca" => tls1 = 1
Duplicate specification "debugsleep=f" for option "debugsleep"
Duplicate specification "syncduplicates!" for option "syncduplicates"
Duplicate specification "skipcrossduplicates!" for option "skipcrossduplicates"
Duplicate specification "debugcrossduplicates!" for option "debugcrossduplicates"
ok 2163 - tests_get_options_extra_from_param: --extra "--oauthaccesstoken1 proutcaca" => nothing left, empty string return
ok 2164 - tests_get_options_extra_from_param: --extra "--oauthaccesstoken1 proutcaca" => ->{ acc1 }->{ oauthaccesstoken } = proutcaca
Duplicate specification "debugsleep=f" for option "debugsleep"
Duplicate specification "syncduplicates!" for option "syncduplicates"
Duplicate specification "skipcrossduplicates!" for option "skipcrossduplicates"
Duplicate specification "debugcrossduplicates!" for option "debugcrossduplicates"
ok 2165 - tests_get_options_extra_from_param: --folder "IN BOX" --folder JOE => ok, empty string return
ok 2166 - tests_get_options_extra_from_param: "IN BOX" "JOE"
# Leaving tests_get_options_extra_from_param()
# Entering tests_setlog()
ok 2167 - tests_setlog: no args => undef
ok 2168 - tests_setlog: default => log is on
Logging to a logfile by default. To turn off logging, use --nolog
ok 2169 - tests_setlog: SERVER_SOFTWARE set + Docker => log is on
Logging to a logfile in Docker+CGI context, by default. To turn off logging, use --nolog
ok 2170 - tests_setlog: NET_SERVER_SOFTWARE set + Docker => log is on
Logging to a logfile in Docker+CGI context, by default. To turn off logging, use --nolog
ok 2171 - tests_setlog: Docker context, not CGI => log is off
No log to a logfile in basic Docker context, by default. To turn on logging, use --log
ok 2172 - tests_setlog: CGI context => log is on
Logging to a logfile by default. To turn off logging, use --nolog
# Leaving tests_setlog()
# Entering tests_delete_folders_in_2_not_in_1()
Entering delete_folders_in_2_not_in_1()
ok 2173 - tests_delete_folders_in_2_not_in_1: undef
Entering delete_folders_in_2_not_in_1()
ok 2174 - tests_delete_folders_in_2_not_in_1: undef 2
Entering delete_folders_in_2_not_in_1()
ok 2175 - tests_delete_folders_in_2_not_in_1: undef imap
ok 2176 - require Test::MockObject;
Entering delete_folders_in_2_not_in_1()
ok 2177 - tests_delete_folders_in_2_not_in_1: Unconnected imap
Entering delete_folders_in_2_not_in_1()
ok 2178 - tests_delete_folders_in_2_not_in_1: --delete2folders OFF
Entering delete_folders_in_2_not_in_1()
Deleted DELME1
Deleted DELME2
Leaving delete_folders_in_2_not_in_1()
ok 2179 - tests_delete_folders_in_2_not_in_1: DELME1 DELME2 --delete2folders ON
Entering delete_folders_in_2_not_in_1()
Host2: Not deleting INBOX, since it is RFC mandatory to exist.
Deleted DELME1
Deleted DELME2
Host2: Not deleting Inbox, since it is RFC mandatory to exist.
Leaving delete_folders_in_2_not_in_1()
ok 2180 - tests_delete_folders_in_2_not_in_1: skip INBOX Inbox
Entering delete_folders_in_2_not_in_1()
Deleted DELME1
Not deleting NOTDELME2 because of --delete2foldersbutnot m{NOTDELME2}
Leaving delete_folders_in_2_not_in_1()
ok 2181 - tests_delete_folders_in_2_not_in_1: DELME1 --delete2foldersbutnot NOTDELME2
Entering delete_folders_in_2_not_in_1()
Deleted DELME1
Not deleting NOTME because of --delete2foldersonly m{DELME}
Deleted DELME2
Deleted YESDELMETOO
Leaving delete_folders_in_2_not_in_1()
ok 2182 - tests_delete_folders_in_2_not_in_1: --delete2foldersonly DELME
# Leaving tests_delete_folders_in_2_not_in_1()
# Entering tests_subfolder2_with_delete2folders()
ok 2183 - tests_subfolder2_with_delete2folders: no args => undef
ok 2184 - tests_subfolder2_with_delete2folders: { } => undef
ok 2185 - tests_subfolder2_with_delete2folders: only --delete2foldersonly /QQQ/ => undef
ok 2186 - tests_subfolder2_with_delete2folders: --delete2foldersonly /QQQ/ --subfolder2 SUB => undef
Detected --subfolder2 SUB --delete2folders
Detected also a --delete2foldersonly /QQQ/ so you are on your own about this value.
ok 2187 - tests_subfolder2_with_delete2folders: --delete2foldersonly /QQQ/ --subfolder2 SUB --delete2folders => /QQQ/
Detected --subfolder2 SUB --delete2folders
Adding --delete2foldersonly m{SUB}
ok 2188 - tests_subfolder2_with_delete2folders: --subfolder2 --delete2folders => m{SUB}
ok 2189 - tests_subfolder2_with_delete2folders: --subfolder2 --delete2folders => --delete2foldersonly m{SUB}
# Leaving tests_subfolder2_with_delete2folders()
# Entering tests_infos()
# OSNAME=linux
# hostname=arch-nspawn-1648141
# cwd=/build/imapsync/src/imapsync-2.314
# PROGRAM_NAME=imapsync
# permissions=0755
# PROCESS_ID=1427
# REAL_USER_ID=1000
# EFFECTIVE_USER_ID=1000
# context: Standard
# memory_consumption_of_myself: 183750656 bytes aka 183.751 MB
# cpu_number: 64
# $Id: imapsync,v 2.314 2025/09/23 16:55:17 gilles Exp gilles $
# Leaving tests_infos()
1..2189
# Leaving tests()
Summary of tests: failed 2 tests, run 2189 tests, expected to run 2189 tests.
List of failed tests:
nb 1646 - tests_mailimapclient_connect: ipv6 + ssl: connect to test1ipv6.lamiral.info
nb 1647 - tests_mailimapclient_connect: ipv6 + ssl: logout in ssl is ok on test1ipv6.lamiral.info
# Looks like your test exited with 254 just after 2189.
[1m[31m==> ERROR:[m[1m A failure occurred in check().[m
[1m Aborting...[m
[0m[J[23;2t[1m[31m==> ERROR:[m[1m Build failed, check /var/lib/archbuild/extra-riscv64/felix-6/build[m
[34h[?25h[34h[?25h[34h[?25hreceiving incremental file list
imapsync-2.314-1-riscv64-build.log
imapsync-2.314-1-riscv64-check.log
imapsync-2.314-1-riscv64-prepare.log
sent 81 bytes received 44,553 bytes 89,268.00 bytes/sec
total size is 234,332 speedup is 5.25