From 08ada551465598ce835adda181e106bb0bd8785c Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 5 Jun 2016 09:29:14 +2100 Subject: [PATCH] [PATCH 2/4] test: factor out some boilerplate from C tests --- b5/fc85a1a845082441606531e506838fcb4802ce | 200 ++++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 b5/fc85a1a845082441606531e506838fcb4802ce diff --git a/b5/fc85a1a845082441606531e506838fcb4802ce b/b5/fc85a1a845082441606531e506838fcb4802ce new file mode 100644 index 000000000..b4a7b2e47 --- /dev/null +++ b/b5/fc85a1a845082441606531e506838fcb4802ce @@ -0,0 +1,200 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by arlo.cworth.org (Postfix) with ESMTP id E02016DE02A9 + for ; Sat, 4 Jun 2016 05:29:42 -0700 (PDT) +X-Virus-Scanned: Debian amavisd-new at cworth.org +X-Spam-Flag: NO +X-Spam-Score: -0.012 +X-Spam-Level: +X-Spam-Status: No, score=-0.012 tagged_above=-999 required=5 + tests=[AWL=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] + autolearn=disabled +Received: from arlo.cworth.org ([127.0.0.1]) + by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id TQZnZkhSFopx for ; + Sat, 4 Jun 2016 05:29:34 -0700 (PDT) +Received: from fethera.tethera.net (fethera.tethera.net [198.245.60.197]) + by arlo.cworth.org (Postfix) with ESMTPS id 8B1286DE0297 + for ; Sat, 4 Jun 2016 05:29:34 -0700 (PDT) +Received: from remotemail by fethera.tethera.net with local (Exim 4.84) + (envelope-from ) + id 1b9Aha-0004yg-QM; Sat, 04 Jun 2016 08:29:18 -0400 +Received: (nullmailer pid 23493 invoked by uid 1000); + Sat, 04 Jun 2016 12:29:27 -0000 +From: David Bremner +To: Istvan Marko , Jani Nikula , + notmuch@notmuchmail.org +Subject: [PATCH 2/4] test: factor out some boilerplate from C tests +Date: Sat, 4 Jun 2016 09:29:14 -0300 +Message-Id: <1465043356-23420-3-git-send-email-david@tethera.net> +X-Mailer: git-send-email 2.8.1 +In-Reply-To: <1465043356-23420-1-git-send-email-david@tethera.net> +References: + <1465043356-23420-1-git-send-email-david@tethera.net> +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.20 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Sat, 04 Jun 2016 12:29:43 -0000 + +The trick of having a common header file doesn't work to share between +test scripts, so make an include file in the test directory. +--- + test/T590-libconfig.sh | 39 ++++++++++++++------------------------- + test/notmuch-test.h | 15 +++++++++++++++ + test/test-lib.sh | 2 +- + 3 files changed, 30 insertions(+), 26 deletions(-) + create mode 100644 test/notmuch-test.h + +diff --git a/test/T590-libconfig.sh b/test/T590-libconfig.sh +index 9c1e566..e8c078d 100755 +--- a/test/T590-libconfig.sh ++++ b/test/T590-libconfig.sh +@@ -6,20 +6,9 @@ test_description="library config API" + add_email_corpus + + cat < c_head +-#include + #include + #include +-#include +- +-void run(int line, notmuch_status_t ret) +-{ +- if (ret) { +- fprintf (stderr, "line %d: %s\n", line, ret); +- exit (1); +- } +-} +- +-#define RUN(v) run(__LINE__, v); ++#include + + int main (int argc, char** argv) + { +@@ -27,23 +16,23 @@ int main (int argc, char** argv) + char *val; + notmuch_status_t stat; + +- RUN(notmuch_database_open (argv[1], NOTMUCH_DATABASE_MODE_READ_WRITE, &db)); ++ EXPECT0(notmuch_database_open (argv[1], NOTMUCH_DATABASE_MODE_READ_WRITE, &db)); + + EOF + + cat < c_tail +- RUN(notmuch_database_destroy(db)); ++ EXPECT0(notmuch_database_destroy(db)); + } + EOF + + test_begin_subtest "notmuch_database_{set,get}_config" + cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { +- RUN(notmuch_database_set_config (db, "testkey1", "testvalue1")); +- RUN(notmuch_database_set_config (db, "testkey2", "testvalue2")); +- RUN(notmuch_database_get_config (db, "testkey1", &val)); ++ EXPECT0(notmuch_database_set_config (db, "testkey1", "testvalue1")); ++ EXPECT0(notmuch_database_set_config (db, "testkey2", "testvalue2")); ++ EXPECT0(notmuch_database_get_config (db, "testkey1", &val)); + printf("testkey1 = %s\n", val); +- RUN(notmuch_database_get_config (db, "testkey2", &val)); ++ EXPECT0(notmuch_database_get_config (db, "testkey2", &val)); + printf("testkey2 = %s\n", val); + } + EOF +@@ -60,7 +49,7 @@ test_begin_subtest "notmuch_database_get_config_list: empty list" + cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_config_list_t *list; +- RUN(notmuch_database_get_config_list (db, "nonexistent", &list)); ++ EXPECT0(notmuch_database_get_config_list (db, "nonexistent", &list)); + printf("valid = %d\n", notmuch_config_list_valid (list)); + notmuch_config_list_destroy (list); + } +@@ -77,9 +66,9 @@ test_begin_subtest "notmuch_database_get_config_list: all pairs" + cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_config_list_t *list; +- RUN(notmuch_database_set_config (db, "zzzafter", "afterval")); +- RUN(notmuch_database_set_config (db, "aaabefore", "beforeval")); +- RUN(notmuch_database_get_config_list (db, "", &list)); ++ EXPECT0(notmuch_database_set_config (db, "zzzafter", "afterval")); ++ EXPECT0(notmuch_database_set_config (db, "aaabefore", "beforeval")); ++ EXPECT0(notmuch_database_get_config_list (db, "", &list)); + for (; notmuch_config_list_valid (list); notmuch_config_list_move_to_next (list)) { + printf("%s %s\n", notmuch_config_list_key (list), notmuch_config_list_value(list)); + } +@@ -100,7 +89,7 @@ test_begin_subtest "notmuch_database_get_config_list: one prefix" + cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { + notmuch_config_list_t *list; +- RUN(notmuch_database_get_config_list (db, "testkey", &list)); ++ EXPECT0(notmuch_database_get_config_list (db, "testkey", &list)); + for (; notmuch_config_list_valid (list); notmuch_config_list_move_to_next (list)) { + printf("%s %s\n", notmuch_config_list_key (list), notmuch_config_list_value(list)); + } +@@ -118,7 +107,7 @@ test_expect_equal_file EXPECTED OUTPUT + test_begin_subtest "dump config" + cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { +- RUN(notmuch_database_set_config (db, "key with spaces", "value, with, spaces!")); ++ EXPECT0(notmuch_database_set_config (db, "key with spaces", "value, with, spaces!")); + } + EOF + notmuch dump --include=config >OUTPUT +@@ -136,7 +125,7 @@ test_begin_subtest "restore config" + notmuch dump --include=config >EXPECTED + cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} + { +- RUN(notmuch_database_set_config (db, "testkey1", "mutatedvalue")); ++ EXPECT0(notmuch_database_set_config (db, "testkey1", "mutatedvalue")); + } + EOF + notmuch restore --include=config ++#include ++ ++void expect0(int line, notmuch_status_t ret) ++{ ++ if (ret) { ++ fprintf (stderr, "line %d: %s\n", line, ret); ++ exit (1); ++ } ++} ++ ++#define EXPECT0(v) expect0(__LINE__, v); ++#endif +diff --git a/test/test-lib.sh b/test/test-lib.sh +index 201d0eb..442d293 100644 +--- a/test/test-lib.sh ++++ b/test/test-lib.sh +@@ -1199,7 +1199,7 @@ test_C () { + test_file="${exec_file}.c" + cat > ${test_file} + export LD_LIBRARY_PATH=${TEST_DIRECTORY}/../lib +- ${TEST_CC} ${TEST_CFLAGS} -I${TEST_DIRECTORY}/../lib -o ${exec_file} ${test_file} -L${TEST_DIRECTORY}/../lib/ -lnotmuch -ltalloc ++ ${TEST_CC} ${TEST_CFLAGS} -I${TEST_DIRECTORY} -I${TEST_DIRECTORY}/../lib -o ${exec_file} ${test_file} -L${TEST_DIRECTORY}/../lib/ -lnotmuch -ltalloc + echo "== stdout ==" > OUTPUT.stdout + echo "== stderr ==" > OUTPUT.stderr + ./${exec_file} "$@" 1>>OUTPUT.stdout 2>>OUTPUT.stderr +-- +2.8.1 + -- 2.26.2