]> git.eshelyaron.com Git - emacs.git/commitdiff
New tests for nested archives (bug#70987)
authorJuri Linkov <juri@linkov.net>
Mon, 20 May 2024 06:22:10 +0000 (09:22 +0300)
committerEshel Yaron <me@eshelyaron.com>
Thu, 23 May 2024 07:44:56 +0000 (09:44 +0200)
* 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.

(cherry picked from commit 91e02dde5fefbba87dc4736df40cfaeec2c088c1)

test/data/decompress/tzg.tar.gz [new file with mode: 0644]
test/data/decompress/ztg.zip [new file with mode: 0644]
test/lisp/arc-mode-tests.el
test/lisp/tar-mode-tests.el

diff --git a/test/data/decompress/tzg.tar.gz b/test/data/decompress/tzg.tar.gz
new file mode 100644 (file)
index 0000000..611f543
Binary files /dev/null and b/test/data/decompress/tzg.tar.gz differ
diff --git a/test/data/decompress/ztg.zip b/test/data/decompress/ztg.zip
new file mode 100644 (file)
index 0000000..5f4aea4
Binary files /dev/null and b/test/data/decompress/ztg.zip differ
index acc416d6f789340c3e74b44920aaa9926054ad6c..5ebc56a84fc170640b88e9aaafdba8e022a35c99 100644 (file)
       (when (buffer-live-p zip-buffer) (kill-buffer zip-buffer))
       (when (buffer-live-p gz-buffer) (kill-buffer gz-buffer)))))
 
+(declare-function tar-extract "tar-mode")
+(ert-deftest arc-mode-test-zip-extract-tar-and-gz ()
+  (skip-unless (and archive-zip-extract (executable-find (car archive-zip-extract))))
+  (skip-unless (executable-find "gzip"))
+  (require 'tar-mode)
+  (let* ((zip-file (expand-file-name "ztg.zip" arc-mode-tests-data-directory))
+         zip-buffer tar-buffer gz-buffer)
+    (unwind-protect
+        (with-current-buffer (setq zip-buffer (find-file-noselect zip-file))
+          (with-current-buffer (setq tar-buffer (archive-extract))
+            (setq gz-buffer (tar-extract))
+            (should (equal (char-after) ?\N{SNOWFLAKE}))))
+      (when (buffer-live-p zip-buffer) (kill-buffer zip-buffer))
+      (when (buffer-live-p tar-buffer) (kill-buffer tar-buffer))
+      (when (buffer-live-p gz-buffer) (kill-buffer gz-buffer)))))
+
 (ert-deftest arc-mode-test-zip-ensure-ext ()
   "Regression test for bug#61326."
   (skip-unless (executable-find "zip"))
index b40cd39d11210790b956bfd57944e302b6e25fd3..bafe575fdda2c3f56bdbcb04660496f3a2b8ef57 100644 (file)
       (when (buffer-live-p tar-buffer) (kill-buffer tar-buffer))
       (when (buffer-live-p gz-buffer) (kill-buffer gz-buffer)))))
 
+(ert-deftest tar-mode-test-tar-extract-zip-and-gz ()
+  (skip-unless (executable-find "gzip"))
+  (require 'arc-mode)
+  (let* ((tar-file (expand-file-name "tzg.tar.gz" tar-mode-tests-data-directory))
+         tar-buffer zip-buffer gz-buffer)
+    (unwind-protect
+        (with-current-buffer (setq tar-buffer (find-file-noselect tar-file))
+          (with-current-buffer (setq zip-buffer (tar-extract))
+            (setq gz-buffer (archive-extract))
+            (should (equal (char-after) ?\N{SNOWFLAKE}))))
+      (when (buffer-live-p tar-buffer) (kill-buffer tar-buffer))
+      (when (buffer-live-p zip-buffer) (kill-buffer zip-buffer))
+      (when (buffer-live-p gz-buffer) (kill-buffer gz-buffer)))))
+
 (provide 'tar-mode-tests)
 
 ;;; tar-mode-tests.el ends here