aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJuri Linkov2024-05-20 09:22:10 +0300
committerJuri Linkov2024-05-20 09:22:41 +0300
commit91e02dde5fefbba87dc4736df40cfaeec2c088c1 (patch)
treeca5d4c23dc3f335986f70325db06a3f5ad2f92fa /test
parent44d1687f1f6bc3d261aa2344a714b1f3397b3039 (diff)
downloademacs-91e02dde5fefbba87dc4736df40cfaeec2c088c1.tar.gz
emacs-91e02dde5fefbba87dc4736df40cfaeec2c088c1.zip
New tests for nested archives (bug#70987)
* test/lisp/tar-mode-tests.el (tar-mode-test-tar-extract-zip-and-gz): * test/lisp/arc-mode-tests.el (arc-mode-test-zip-extract-tar-and-gz): New tests. * test/data/decompress/tzg.tar.gz: * test/data/decompress/ztg.zip: New data files to test decompressing of different combinations of nested tar and zip archives.
Diffstat (limited to 'test')
-rw-r--r--test/data/decompress/tzg.tar.gzbin0 -> 255 bytes
-rw-r--r--test/data/decompress/ztg.zipbin0 -> 316 bytes
-rw-r--r--test/lisp/arc-mode-tests.el16
-rw-r--r--test/lisp/tar-mode-tests.el14
4 files changed, 30 insertions, 0 deletions
diff --git a/test/data/decompress/tzg.tar.gz b/test/data/decompress/tzg.tar.gz
new file mode 100644
index 00000000000..611f543688e
--- /dev/null
+++ b/test/data/decompress/tzg.tar.gz
Binary files differ
diff --git a/test/data/decompress/ztg.zip b/test/data/decompress/ztg.zip
new file mode 100644
index 00000000000..5f4aea4c8dc
--- /dev/null
+++ b/test/data/decompress/ztg.zip
Binary files differ
diff --git a/test/lisp/arc-mode-tests.el b/test/lisp/arc-mode-tests.el
index acc416d6f78..5ebc56a84fc 100644
--- a/test/lisp/arc-mode-tests.el
+++ b/test/lisp/arc-mode-tests.el
@@ -46,6 +46,22 @@
46 (when (buffer-live-p zip-buffer) (kill-buffer zip-buffer)) 46 (when (buffer-live-p zip-buffer) (kill-buffer zip-buffer))
47 (when (buffer-live-p gz-buffer) (kill-buffer gz-buffer))))) 47 (when (buffer-live-p gz-buffer) (kill-buffer gz-buffer)))))
48 48
49(declare-function tar-extract "tar-mode")
50(ert-deftest arc-mode-test-zip-extract-tar-and-gz ()
51 (skip-unless (and archive-zip-extract (executable-find (car archive-zip-extract))))
52 (skip-unless (executable-find "gzip"))
53 (require 'tar-mode)
54 (let* ((zip-file (expand-file-name "ztg.zip" arc-mode-tests-data-directory))
55 zip-buffer tar-buffer gz-buffer)
56 (unwind-protect
57 (with-current-buffer (setq zip-buffer (find-file-noselect zip-file))
58 (with-current-buffer (setq tar-buffer (archive-extract))
59 (setq gz-buffer (tar-extract))
60 (should (equal (char-after) ?\N{SNOWFLAKE}))))
61 (when (buffer-live-p zip-buffer) (kill-buffer zip-buffer))
62 (when (buffer-live-p tar-buffer) (kill-buffer tar-buffer))
63 (when (buffer-live-p gz-buffer) (kill-buffer gz-buffer)))))
64
49(ert-deftest arc-mode-test-zip-ensure-ext () 65(ert-deftest arc-mode-test-zip-ensure-ext ()
50 "Regression test for bug#61326." 66 "Regression test for bug#61326."
51 (skip-unless (executable-find "zip")) 67 (skip-unless (executable-find "zip"))
diff --git a/test/lisp/tar-mode-tests.el b/test/lisp/tar-mode-tests.el
index b40cd39d112..bafe575fdda 100644
--- a/test/lisp/tar-mode-tests.el
+++ b/test/lisp/tar-mode-tests.el
@@ -46,6 +46,20 @@
46 (when (buffer-live-p tar-buffer) (kill-buffer tar-buffer)) 46 (when (buffer-live-p tar-buffer) (kill-buffer tar-buffer))
47 (when (buffer-live-p gz-buffer) (kill-buffer gz-buffer))))) 47 (when (buffer-live-p gz-buffer) (kill-buffer gz-buffer)))))
48 48
49(ert-deftest tar-mode-test-tar-extract-zip-and-gz ()
50 (skip-unless (executable-find "gzip"))
51 (require 'arc-mode)
52 (let* ((tar-file (expand-file-name "tzg.tar.gz" tar-mode-tests-data-directory))
53 tar-buffer zip-buffer gz-buffer)
54 (unwind-protect
55 (with-current-buffer (setq tar-buffer (find-file-noselect tar-file))
56 (with-current-buffer (setq zip-buffer (tar-extract))
57 (setq gz-buffer (archive-extract))
58 (should (equal (char-after) ?\N{SNOWFLAKE}))))
59 (when (buffer-live-p tar-buffer) (kill-buffer tar-buffer))
60 (when (buffer-live-p zip-buffer) (kill-buffer zip-buffer))
61 (when (buffer-live-p gz-buffer) (kill-buffer gz-buffer)))))
62
49(provide 'tar-mode-tests) 63(provide 'tar-mode-tests)
50 64
51;;; tar-mode-tests.el ends here 65;;; tar-mode-tests.el ends here