From c0cd167c0b1cbf3edf8c631816462d0c4e60da70 Mon Sep 17 00:00:00 2001 From: Adam Samalik Date: Wed, 21 Jun 2023 14:43:25 +0200 Subject: [PATCH] import sources --- .gitignore | 1 - tests/data.pst | Bin 0 -> 271360 bytes tests/runner.sh | 35 ++++++++++++++++ tests/tests.yml | 105 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 tests/data.pst create mode 100755 tests/runner.sh create mode 100644 tests/tests.yml diff --git a/.gitignore b/.gitignore index 470d5a2..7ba24ec 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -SOURCES/libpst-0.6.71.tar.gz /libpst-0.6.71.tar.gz diff --git a/tests/data.pst b/tests/data.pst new file mode 100644 index 0000000000000000000000000000000000000000..8bd5c900775e03b1871031d0ebc537c95a44e5ca GIT binary patch literal 271360 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/dev/null && test "`cat Contacts.contacts | grep -c BEGIN:VCARD`" = "3" ;; + ("readpst_contacts_emails") readpst -tc -cv -w data.pst >/dev/null && test "`cat Contacts.contacts | grep -c '@no.where'`" = "3" ;; + ("readpst_contacts_plain") readpst -tc -cl -w data.pst >/dev/null && test "`cat Contacts.contacts | wc -l`" = "3" ;; + ("readpst_contacts_plain_emails") readpst -tc -cl -w >/dev/null data.pst && test "`cat Contacts.contacts | grep -c '@no.where'`" = "3" ;; + ("readpst_events") readpst -ta data.pst >/dev/null && test "`cat Calendar.calendar | grep -c BEGIN:VEVENT`" = "1" ;; + ("readpst_events_summary") readpst -ta -w data.pst >/dev/null && test "`cat Calendar.calendar | grep -c 'SUMMARY:event on 2020-02-13'`" = "1" ;; + ("readpst_mails") readpst -te data.pst >/dev/null && test "`ls -l *.mbox | wc -l`" = "2" ;; + ("readpst_mails_inbox") readpst -te -w data.pst >/dev/null && test "`cat Inbox.mbox | grep -c 'From '`" = "2" ;; + ("readpst_mails_inbox_to") readpst -te -w data.pst >/dev/null && test "`cat Inbox.mbox | grep -c 'To: zyx@no.where'`" = "2" ;; + ("readpst_mails_inbox_cc") readpst -te -w data.pst >/dev/null && test "`cat Inbox.mbox | grep -c -i 'CC'`" = "0" ;; + ("readpst_mails_inbox_email") readpst -te -w data.pst >/dev/null && test "`cat Inbox.mbox | grep -c 'zyx@no.where'`" = "2" ;; + ("readpst_mails_inbox_subject") readpst -te -w data.pst >/dev/null && test "`cat Inbox.mbox | grep -c 'Subject: Plain text message'`" = "2" ;; + ("readpst_mails_inbox_subject_2") readpst -te -w data.pst >/dev/null && test "`cat Inbox.mbox | grep -c 'Subject: Plain text message \]\['`" = "1" ;; + ("readpst_mails_inbox_body") readpst -te -w data.pst >/dev/null && test "`cat Inbox.mbox | grep 'Plain text' | grep -c -v 'Subject:'`" = "1" ;; + ("readpst_mails_inbox_body_2") readpst -te -w data.pst >/dev/null && test "`cat Inbox.mbox | grep -c 'The second plain text'`" = "1" ;; + ("readpst_mails_drafts") readpst -te -w data.pst >/dev/null && test "`cat Drafts.mbox | grep -c 'From '`" = "1" ;; + ("readpst_mails_drafts_to") readpst -te -w data.pst >/dev/null && test "`cat Drafts.mbox | grep -c 'To: zyx@no.where'`" = "1" ;; + ("readpst_mails_drafts_cc") readpst -te -w data.pst >/dev/null && test "`cat Drafts.mbox | grep -c -i 'CC'`" = "0" ;; + ("readpst_mails_drafts_email") readpst -te -w data.pst >/dev/null && test "`cat Drafts.mbox | grep -c 'zyx@no.where'`" = "1" ;; + ("readpst_mails_drafts_subject") readpst -te -w data.pst >/dev/null && test "`cat Drafts.mbox | grep -c 'Subject: Plain text message'`" = "1" ;; + ("readpst_mails_drafts_subject_2") readpst -te -w data.pst >/dev/null && test "`cat Drafts.mbox | grep -c 'Subject: Plain text message \]\['`" = "1" ;; + ("readpst_mails_drafts_body") readpst -te -w data.pst >/dev/null && test "`cat Drafts.mbox | grep 'Plain text' | grep -c -v 'Subject:'`" = "0" ;; + ("readpst_mails_drafts_body_2") readpst -te -w data.pst >/dev/null && test "`cat Drafts.mbox | grep -c 'The second plain text'`" = "1" ;; + ("") echo "runner.sh: Requires one argument, a test name to run" >&2 ; exit 1 ;; + (*) echo "runner.sh: Unknown test name '%{1}'" >&2 ; exit 1 ;; +esac diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..504e313 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,105 @@ +- hosts: localhost + roles: + - role: standard-test-basic + tags: + - atomic + - classic + required_packages: + - libpst + tests: + - lspst_help: + dir: . + run: lspst -h >/dev/null + - lspst_folders: + dir: . + run: ./runner.sh lspst_folders + - lspst_mails: + dir: . + run: ./runner.sh lspst_mails + - lspst_contacts: + dir: . + run: ./runner.sh lspst_contacts + - lspst_events: + dir: . + run: ./runner.sh lspst_events + - pst2ldif_help: + dir: . + run: pst2ldif -h >/dev/null + - pst2ldif_run: + dir: . + run: ./runner.sh pst2ldif_run + - readpst_help: + dir: . + run: readpst -h >/dev/null + - readpst_basic: + dir: . + run: ./runner.sh readpst_basic + - readpst_contacts: + dir: . + run: ./runner.sh readpst_contacts + - readpst_contacts_emails: + dir: . + run: ./runner.sh readpst_contacts_emails + - readpst_contacts_plain: + dir: . + run: ./runner.sh readpst_contacts_plain + - readpst_contacts_plain_emails: + dir: . + run: ./runner.sh readpst_contacts_plain_emails + - readpst_events: + dir: . + run: ./runner.sh readpst_events + - readpst_events_summary: + dir: . + run: ./runner.sh readpst_events_summary + - readpst_mails: + dir: . + run: ./runner.sh readpst_mails + - readpst_mails_inbox: + dir: . + run: ./runner.sh readpst_mails_inbox + - readpst_mails_inbox_to: + dir: . + run: ./runner.sh readpst_mails_inbox_to + - readpst_mails_inbox_cc: + dir: . + run: ./runner.sh readpst_mails_inbox_cc + - readpst_mails_inbox_email: + dir: . + run: ./runner.sh readpst_mails_inbox_email + - readpst_mails_inbox_subject: + dir: . + run: ./runner.sh readpst_mails_inbox_subject + - readpst_mails_inbox_subject_2: + dir: . + run: ./runner.sh readpst_mails_inbox_subject_2 + - readpst_mails_inbox_body: + dir: . + run: ./runner.sh readpst_mails_inbox_body + - readpst_mails_inbox_body_2: + dir: . + run: ./runner.sh readpst_mails_inbox_body_2 + - readpst_mails_drafts: + dir: . + run: ./runner.sh readpst_mails_drafts + - readpst_mails_drafts_to: + dir: . + run: ./runner.sh readpst_mails_drafts_to + - readpst_mails_drafts_cc: + dir: . + run: ./runner.sh readpst_mails_drafts_cc + - readpst_mails_drafts_email: + dir: . + run: ./runner.sh readpst_mails_drafts_email + - readpst_mails_drafts_subject: + dir: . + run: ./runner.sh readpst_mails_drafts_subject + - readpst_mails_drafts_subject_2: + dir: . + run: ./runner.sh readpst_mails_drafts_subject_2 + - readpst_mails_drafts_body: + dir: . + run: ./runner.sh readpst_mails_drafts_body + - readpst_mails_drafts_body_2: + dir: . + run: ./runner.sh readpst_mails_drafts_body_2