]> git.notmuchmail.org Git - notmuch/blobdiff - test/test-lib.sh
ruby: create Data_Wrap_Notmuch_Object helper
[notmuch] / test / test-lib.sh
index 3f8d58277dc1b5b550da51826d4cf2365276cf27..d46bb4c34a9165599542b2eff981e5d224f63d67 100644 (file)
@@ -112,6 +112,13 @@ unset ALTERNATE_EDITOR
 
 # for reproducibility
 unset EMAIL
+unset NAME
+
+test_require_emacs () {
+    test_require_external_prereq emacs
+    test_require_external_prereq ${TEST_EMACSCLIENT}
+    test_require_external_prereq dtach
+}
 
 add_gnupg_home ()
 {
@@ -591,6 +598,9 @@ test_emacs_expect_t () {
                exec 1>&6 2>&7          # Restore stdout and stderr
                inside_subtest=
 
+               # test_emacs may update missing external prerequisites
+               test_check_missing_external_prereqs_ "$test_subtest_name" && return
+
                # Report success/failure.
                result=$(cat OUTPUT)
                if [ "$result" = t ]
@@ -700,12 +710,25 @@ notmuch_built_with_sanitize ()
     sed 's/^built_with[.]\(.*\)=.*$/built_with.\1=something/'
 }
 
-notmuch_passwd_sanitize ()
+notmuch_passwd_sanitize()
 {
-    local user=$(id -un)
-    local fqdn=$(hostname -f)
-    local full_name=$(getent passwd $user | cut -d: -f 5 | cut -d, -f1)
-    sed -e "s/$user/USERNAME/" -e "s/$fqdn/FQDN/" -e "s/$full_name/USER_FULL_NAME/"
+    ${NOTMUCH_PYTHON} -c'
+import os, sys, pwd, socket
+
+pw = pwd.getpwuid(os.getuid())
+user = pw.pw_name
+name = pw.pw_gecos.partition(",")[0]
+fqdn = socket.getaddrinfo(socket.gethostname(), 0, 0, socket.SOCK_STREAM, 0, socket.AI_CANONNAME)[0][3]
+
+for l in sys.stdin:
+    if user:
+        l = l.replace(user, "USERNAME")
+    if fqdn:
+        l = l.replace(fqdn, "FQDN").replace(".(none)","")
+    if name:
+        l = l.replace(name, "USER_FULL_NAME")
+    sys.stdout.write(l)
+'
 }
 
 notmuch_config_sanitize ()
@@ -905,7 +928,7 @@ test_expect_success () {
                test_run_ "$1"
                run_ret="$?"
                # test_run_ may update missing external prerequisites
-               test_check_missing_external_prereqs_ "$@" ||
+               test_check_missing_external_prereqs_ "$test_subtest_name" ||
                if [ "$run_ret" = 0 -a "$eval_ret" = 0 ]
                then
                        test_ok_
@@ -929,7 +952,7 @@ test_expect_code () {
                test_run_ "$2"
                run_ret="$?"
                # test_run_ may update missing external prerequisites,
-               test_check_missing_external_prereqs_ "$@" ||
+               test_check_missing_external_prereqs_ "$test_subtest_name" ||
                if [ "$run_ret" = 0 -a "$eval_ret" = "$1" ]
                then
                        test_ok_
@@ -1101,10 +1124,6 @@ test_python() {
        $NOTMUCH_PYTHON -B - > OUTPUT
 }
 
-test_ruby() {
-    MAIL_DIR=$MAIL_DIR $NOTMUCH_RUBY -I "$NOTMUCH_BUILDDIR/bindings/ruby"> OUTPUT
-}
-
 test_C () {
     local exec_file test_file
     exec_file="test${test_count}"