diff --git a/test/data/decompress/tzg.tar.gz b/test/data/decompress/tzg.tar.gz new file mode 100644 index 00000000000..611f543688e 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 index 00000000000..5f4aea4c8dc Binary files /dev/null and b/test/data/decompress/ztg.zip 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 @@ (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")) 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 @@ (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