From 04e4b49de75540b400265f47e02ef35a52d96a70 Mon Sep 17 00:00:00 2001 From: Micah Chalmer Date: Mon, 2 Feb 2015 22:49:40 -0500 Subject: Add .travis.yml --- .travis.yml | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..04231a7 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,41 @@ +language: generic + +env: + matrix: + - EMACS=emacs23 + - EMACS=emacs24 + - EMACS=emacs-snapshot + +install: + - if [ "$EMACS" = 'emacs23' ]; then + sudo apt-get -qq update && + sudo apt-get -qq -f install && + sudo apt-get -qq install emacs23-gtk emacs23-el; + fi + - if [ "$EMACS" = 'emacs24' ]; then + sudo add-apt-repository -y ppa:cassou/emacs && + sudo apt-get -qq update && + sudo apt-get -qq -f install && + sudo apt-get -qq install emacs24 emacs24-el; + fi + - if [ "$EMACS" = 'emacs-snapshot' ]; then + sudo add-apt-repository -y ppa:ubuntu-elisp/ppa && + sudo apt-get -qq update && + sudo apt-get -qq -f install && + sudo apt-get -qq install emacs-snapshot && + sudo apt-get -qq install emacs-snapshot-el; + fi + +# Emacs 23 does not come with ERT. Download it and have emacs find it +before_script: + - if [ "$EMACS" = 'emacs23' ]; then + curl -Os https://raw.githubusercontent.com/ohler/ert/c619b56c5bc6a866e33787489545b87d79973205/lisp/emacs-lisp/ert.el && + export EMACSLOADPATH=$(emacs -batch -eval "(princ (mapconcat 'identity load-path \":\"))") && + export EMACSLOADPATH="$EMACSLOADPATH:$PWD"; + fi + +script: + - ./run_rust_emacs_tests.sh + +notifications: + email: false -- cgit v1.2.3 From 8a69f69b150f4f38d7d0a1a93d78c50648b5de8f Mon Sep 17 00:00:00 2001 From: Micah Chalmer Date: Tue, 3 Feb 2015 01:39:23 -0500 Subject: Use old code style for emacs 23 compat The new recommended style is to use the "cl-" prefixed versions, but they do not exist in emacs 23. We still want to stay compatible with that, so use plain "loop" rather than "cl-loop" to allow the tests to work with both old and new versions. ALso "pcase" was introduced in emacs 24, so stop using it to remain compatible with emacs 23. --- rust-mode-tests.el | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/rust-mode-tests.el b/rust-mode-tests.el index 54b4524..6aa3528 100644 --- a/rust-mode-tests.el +++ b/rust-mode-tests.el @@ -616,7 +616,10 @@ fn indented_already() { POS-SYMBOL is a symbol found in `rust-test-positions-alist'. Convert the line-column information from that list into a buffer position value." (interactive "P") - (pcase-let ((`(,line ,column) (cadr (assoc pos-symbol rust-test-positions-alist)))) + (let* ( + (line-and-column (cadr (assoc pos-symbol rust-test-positions-alist))) + (line (nth 0 line-and-column)) + (column (nth 1 line-and-column))) (save-excursion (goto-line line) (move-to-column column) @@ -844,14 +847,14 @@ All positions are position symbols found in `rust-test-positions-alist'." (defun rust-test-group-str-by-face (str) "Fontify `STR' in rust-mode and group it by face, returning a list of substrings of `STR' each followed by its face." - (cl-loop with fontified = (rust-test-fontify-string str) - for start = 0 then end - while start - for end = (next-single-property-change start 'face fontified) - for prop = (get-text-property start 'face fontified) - for text = (substring-no-properties fontified start end) - if prop - append (list text prop))) + (loop with fontified = (rust-test-fontify-string str) + for start = 0 then end + while start + for end = (next-single-property-change start 'face fontified) + for prop = (get-text-property start 'face fontified) + for text = (substring-no-properties fontified start end) + if prop + append (list text prop))) (defun rust-test-font-lock (source face-groups) "Test that `SOURCE' fontifies to the expected `FACE-GROUPS'" -- cgit v1.2.3