* mml-sec.el (mml-secure-cust-record-keys):
[gnus.git] / lisp / tests / gnustest-gnus-util.el
blobb40ad8574e3f2772ef0d3814e1db4629d102a00f
1 ;;; gnustest-gnus-util.el --- Selectived tests only.
2 ;; Copyright (C) 2015 Free Software Foundation, Inc.
4 ;; Author: Jens Lechtenbörger <jens.lechtenboerger@fsfe.org>
6 ;; This file is not part of GNU Emacs.
8 ;; GNU Emacs is free software; you can redistribute it and/or modify
9 ;; it under the terms of the GNU General Public License as published by
10 ;; the Free Software Foundation; either version 3, or (at your option)
11 ;; any later version.
13 ;; GNU Emacs is distributed in the hope that it will be useful,
14 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 ;; GNU General Public License for more details.
18 ;; You should have received a copy of the GNU General Public License
19 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
21 ;;; Commentary:
23 ;; The tests here are restricted to three functions:
24 ;; gnus-test-list, gnus-subsetp, gnus-setdiff
26 ;; Run as follows:
27 ;; emacs -Q -batch -L .. -l gnustest-gnus-util.el -f ert-run-tests-batch-and-exit
29 ;;; Code:
31 (require 'ert)
32 (require 'gnus-util)
34 (ert-deftest test-list ()
35 ;; False for non-lists.
36 (should-not (gnus-test-list 1 'listp))
37 (should-not (gnus-test-list "42" 'listp))
39 ;; False for empty lists.
40 (should-not (gnus-test-list '() 'listp))
41 (should-not (gnus-test-list '() 'nlistp))
43 ;; Real tests for other lists.
44 (should (gnus-test-list '(()) 'listp))
45 (should (gnus-test-list '(() ()) 'listp))
46 (should-not (gnus-test-list '(1) 'listp))
47 (should-not (gnus-test-list '(() 1) 'listp))
48 (should-not (gnus-test-list '(1 ()) 'listp))
49 (should-not (gnus-test-list '(() 1 ()) 'listp))
52 (ert-deftest subsetp ()
53 ;; False for non-lists.
54 (should-not (gnus-subsetp "1" "1"))
55 (should-not (gnus-subsetp "1" '("1")))
56 (should-not (gnus-subsetp '("1") "1"))
58 ;; Real tests.
59 (should (gnus-subsetp '() '()))
60 (should (gnus-subsetp '() '("1")))
61 (should (gnus-subsetp '("1") '("1")))
62 (should (gnus-subsetp '(42) '("1" 42)))
63 (should (gnus-subsetp '(42) '(42 "1")))
64 (should (gnus-subsetp '(42) '("1" 42 2)))
65 (should-not (gnus-subsetp '("1") '()))
66 (should-not (gnus-subsetp '("1") '(2)))
67 (should-not (gnus-subsetp '("1" 2) '(2)))
68 (should-not (gnus-subsetp '(2 "1") '(2)))
69 (should-not (gnus-subsetp '("1" 2) '(2 3)))
71 ;; Duplicates don't matter for sets.
72 (should (gnus-subsetp '("1" "1") '("1")))
73 (should (gnus-subsetp '("1" 2 "1") '(2 "1")))
74 (should (gnus-subsetp '("1" 2 "1") '(2 "1" "1" 2)))
75 (should-not (gnus-subsetp '("1" 2 "1" 3) '(2 "1" "1" 2))))
77 (ert-deftest setdiff ()
78 ;; False for non-lists.
79 (should-not (gnus-setdiff "1" "1"))
80 (should-not (gnus-setdiff "1" '()))
81 (should-not (gnus-setdiff '() "1"))
83 ;; Real tests.
84 (should-not (gnus-setdiff '() '()))
85 (should-not (gnus-setdiff '() '("1")))
86 (should-not (gnus-setdiff '("1") '("1")))
87 (should (equal '("1") (gnus-setdiff '("1") '())))
88 (should (equal '("1") (gnus-setdiff '("1") '(2))))
89 (should (equal '("1") (gnus-setdiff '("1" 2) '(2))))
90 (should (equal '("1") (gnus-setdiff '("1" 2 3) '(3 2))))
91 (should (equal '("1") (gnus-setdiff '(2 "1" 3) '(3 2))))
92 (should (equal '("1") (gnus-setdiff '(2 3 "1") '(3 2))))
93 (should (equal '(2 "1") (gnus-setdiff '(2 3 "1") '(3))))
95 ;; Duplicates aren't touched for sets if they are not removed.
96 (should-not (gnus-setdiff '("1" "1") '("1")))
97 (should (equal '("1") (gnus-setdiff '(2 "1" 2) '(2))))
98 (should (equal '("1" "1") (gnus-setdiff '(2 "1" 2 "1") '(2)))))
100 ;;; gnustest-gnus-util.el ends here