summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2021-11-17 21:39:52 +0000
committerRicardo Wurmus <rekado@elephly.net>2021-11-18 13:17:57 +0000
commitf66da037b457f5d92a0b3e3f53121e17571b42c4 (patch)
treea183edf11d471e3644028151f4b40f339c0ebd6f /tests
parent424f2c92b4043c13165beb2f746ab5c10f8ddf83 (diff)
downloadguix-f66da037b457f5d92a0b3e3f53121e17571b42c4.tar.gz
tests: Replace texlive importer tests.
* tests/texlive.scm (xml, sxml): Remove variables.
("fetch-sxml: returns SXML for valid XML", "sxml->package"): Remove tests.
("texlive->guix-package"): Add new test.
Diffstat (limited to 'tests')
-rw-r--r--tests/texlive.scm221
1 files changed, 154 insertions, 67 deletions
diff --git a/tests/texlive.scm b/tests/texlive.scm
index a6f08046a8..368e36e31a 100644
--- a/tests/texlive.scm
+++ b/tests/texlive.scm
@@ -30,87 +30,174 @@
 
 (test-begin "texlive")
 
-(define xml
-  "\
-<entry id=\"foo\">
-   <name>foo</name>
-   <caption>Foomatic frobnication in LuaLaTeX</caption>
-   <authorref id=\"rekado\"/>
-   <license type=\"lppl1.3\"/>
-   <version number=\"2.6a\"/>
-   <description>
-     <p>
-          Foo is a package for LuaLaTeX. It provides an interface to frobnicate gimbals
-          in a foomatic way with the LuaTeX engine.
-     </p>
-     <p>
-          The package requires the bar and golly
-          bundles for extremely special specialties.
-     </p>
-   </description>
-   <ctan path=\"/macros/latex/contrib/foo\" file=\"true\"/>
-   <texlive location=\"foo\"/>
-   <keyval key=\"topic\" value=\"tests\"/>
-  null
-</entry>")
+(define %fake-tlpdb
+  '(("stricttex"
+     . ((name
+         . "stricttex")
+        (shortdesc
+         . "Strictly balanced brackets and numbers in command names")
+        (longdesc
+         . "This is a small, LuaLaTeX-only package providing you with three,
+sometimes useful features: It allows you to make brackets [...]  \"strict\",
+meaning that each [ must be balanced by a ]. It allows you to use numbers in
+command names, so that you can do stuff like \\newcommand\\pi12{\\pi_{12}}. It
+allows you to use numbers and primes in command names, so that you can do
+stuff like \\newcommand\\pi'12{\\pi '_{12}}.")
+        (docfiles
+         . ("texmf-dist/doc/lualatex/stricttex/README.md"
+            "texmf-dist/doc/lualatex/stricttex/stricttex.pdf"))
+        (runfiles
+         . ("texmf-dist/tex/lualatex/stricttex/stricttex.lua"
+            "texmf-dist/tex/lualatex/stricttex/stricttex.sty"))
+        (catalogue-license . "lppl1.3c")))
+    ("texsis"
+     . ((name
+         . "texsis")
+        (shortdesc
+         . "Plain TeX macros for Physicists")
+        (longdesc
+         . "TeXsis is a TeX macro package which provides useful features for
+typesetting research papers and related documents. For example, it includes
+support specifically for: Automatic numbering of equations, figures, tables
+and references; Simplified control of type sizes, line spacing, footnotes,
+running headlines and footlines, and tables of contents, figures and tables;
+Specialized document formats for research papers, preprints and \"e-prints\",
+conference proceedings, theses, books, referee reports, letters, and
+memoranda; Simplified means of constructing an index for a book or thesis;
+Easy to use double column formatting; Specialized environments for lists,
+theorems and proofs, centered or non-justified text, and listing computer
+code; Specialized macros for easily constructing ruled tables. TeXsis was
+originally developed for physicists, but others may also find it useful. It is
+completely compatible with Plain TeX.")
+        (depend . ("cm" "hyphen-base" "knuth-lib" "plain" "tex"))
+        (docfiles
+         . ("texmf-dist/doc/man/man1/texsis.1"
+            "texmf-dist/doc/man/man1/texsis.man1.pdf"
+            "texmf-dist/doc/otherformats/texsis/base/COPYING"
+            "texmf-dist/doc/otherformats/texsis/base/Example.tex"
+            "texmf-dist/doc/otherformats/texsis/base/Fonts.tex"
+            "texmf-dist/doc/otherformats/texsis/base/INSTALL"
+            "texmf-dist/doc/otherformats/texsis/base/Install.tex"
+            "texmf-dist/doc/otherformats/texsis/base/MANIFEST"
+            "texmf-dist/doc/otherformats/texsis/base/Manual.fgl"
+            "texmf-dist/doc/otherformats/texsis/base/Manual.ref"
+            "texmf-dist/doc/otherformats/texsis/base/Manual.tbl"
+            "texmf-dist/doc/otherformats/texsis/base/Manual.tex"
+            "texmf-dist/doc/otherformats/texsis/base/NEWS"
+            "texmf-dist/doc/otherformats/texsis/base/README"
+            "texmf-dist/doc/otherformats/texsis/base/TXSapxF.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXScover.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSdcol.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSdoc.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSdoc0.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSdocM.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSend.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSenvmt.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSeqns.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSfigs.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSfmts.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSfonts.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSinstl.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSintro.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSletr.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSmisc.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSprns.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSrefs.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSrevs.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSruled.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSsects.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXSsite.000"
+            "texmf-dist/doc/otherformats/texsis/base/TXSsymb.doc"
+            "texmf-dist/doc/otherformats/texsis/base/TXStags.doc"
+            "texmf-dist/doc/otherformats/texsis/base/index.tex"
+            "texmf-dist/doc/otherformats/texsis/base/letr"
+            "texmf-dist/doc/otherformats/texsis/base/penguin.eps"
+            "texmf-dist/doc/otherformats/texsis/base/penguin2.eps"
+            "texmf-dist/doc/otherformats/texsis/base/texsis.el"
+            "texmf-dist/doc/otherformats/texsis/base/texsis.lsm"))
+        (runfiles
+         . ("texmf-dist/bibtex/bst/texsis/texsis.bst"
+            "texmf-dist/tex/texsis/base/AIP.txs"
+            "texmf-dist/tex/texsis/base/CVformat.txs"
+            "texmf-dist/tex/texsis/base/Elsevier.txs"
+            "texmf-dist/tex/texsis/base/Exam.txs"
+            "texmf-dist/tex/texsis/base/Formletr.txs"
+            "texmf-dist/tex/texsis/base/IEEE.txs"
+            "texmf-dist/tex/texsis/base/PhysRev.txs"
+            "texmf-dist/tex/texsis/base/Spanish.txs"
+            "texmf-dist/tex/texsis/base/Swedish.txs"
+            "texmf-dist/tex/texsis/base/TXSconts.tex"
+            "texmf-dist/tex/texsis/base/TXSdcol.tex"
+            "texmf-dist/tex/texsis/base/TXSenvmt.tex"
+            "texmf-dist/tex/texsis/base/TXSeqns.tex"
+            "texmf-dist/tex/texsis/base/TXSfigs.tex"
+            "texmf-dist/tex/texsis/base/TXSfmts.tex"
+            "texmf-dist/tex/texsis/base/TXSfonts.tex"
+            "texmf-dist/tex/texsis/base/TXShead.tex"
+            "texmf-dist/tex/texsis/base/TXSinit.tex"
+            "texmf-dist/tex/texsis/base/TXSletr.tex"
+            "texmf-dist/tex/texsis/base/TXSmacs.tex"
+            "texmf-dist/tex/texsis/base/TXSmemo.tex"
+            "texmf-dist/tex/texsis/base/TXSprns.tex"
+            "texmf-dist/tex/texsis/base/TXSrefs.tex"
+            "texmf-dist/tex/texsis/base/TXSruled.tex"
+            "texmf-dist/tex/texsis/base/TXSsects.tex"
+            "texmf-dist/tex/texsis/base/TXSsite.tex"
+            "texmf-dist/tex/texsis/base/TXSsymb.tex"
+            "texmf-dist/tex/texsis/base/TXStags.tex"
+            "texmf-dist/tex/texsis/base/TXStitle.tex"
+            "texmf-dist/tex/texsis/base/Tablebod.txs"
+            "texmf-dist/tex/texsis/base/WorldSci.txs"
+            "texmf-dist/tex/texsis/base/color.txs"
+            "texmf-dist/tex/texsis/base/nuclproc.txs"
+            "texmf-dist/tex/texsis/base/printfont.txs"
+            "texmf-dist/tex/texsis/base/spine.txs"
+            "texmf-dist/tex/texsis/base/texsis.tex"
+            "texmf-dist/tex/texsis/base/thesis.txs"
+            "texmf-dist/tex/texsis/base/twin.txs"
+            "texmf-dist/tex/texsis/config/texsis.ini"))
+        (catalogue-license . "lppl")))))
 
-(define sxml
-  '(*TOP* (entry (@ (id "foo"))
-                 (name "foo")
-                 (caption "Foomatic frobnication in LuaLaTeX")
-                 (authorref (@ (id "rekado")))
-                 (license (@ (type "lppl1.3")))
-                 (version (@ (number "2.6a")))
-                 (description
-                  (p "\n          Foo is a package for LuaLaTeX. It provides an interface to frobnicate gimbals\n          in a foomatic way with the LuaTeX engine.\n     ")
-                  (p "\n          The package requires the bar and golly\n          bundles for extremely special specialties.\n     "))
-                 (ctan (@ (path "/macros/latex/contrib/foo") (file "true")))
-                 (texlive (@ (location "foo")))
-                 (keyval (@ (value "tests") (key "topic")))
-                 "\n  null\n")))
-
-(test-equal "fetch-sxml: returns SXML for valid XML"
-  sxml
-  (with-http-server `((200 ,xml))
-    (parameterize ((current-http-proxy (%local-url)))
-      (fetch-sxml "foo"))))
-
-;; TODO:
-(test-assert "sxml->package"
+(test-assert "texlive->guix-package"
   ;; Replace network resources with sample data.
   (mock ((guix build svn) svn-fetch
          (lambda* (url revision directory
                        #:key (svn-command "svn")
                        (user-name #f)
-                       (password #f))
+                       (password #f)
+                       (recursive? #t))
            (mkdir-p directory)
            (with-output-to-file (string-append directory "/foo")
              (lambda ()
                (display "source")))))
-        (let ((result (sxml->package sxml)))
+        (let ((result (texlive->guix-package "texsis"
+                                             #:package-database
+                                             (lambda _ %fake-tlpdb))))
           (match result
             (('package
-               ('name "texlive-latex-foo")
-               ('version "2.6a")
-               ('source ('origin
-                          ('method 'svn-fetch)
-                          ('uri ('texlive-ref "latex" "foo"))
-                          ('sha256
-                           ('base32
-                            (? string? hash)))))
-               ('build-system 'texlive-build-system)
-               ('arguments ('quote (#:tex-directory "latex/foo")))
-               ('home-page "http://www.ctan.org/pkg/foo")
-               ('synopsis "Foomatic frobnication in LuaLaTeX")
-               ('description
-                "Foo is a package for LuaLaTeX.  It provides an interface to \
-frobnicate gimbals in a foomatic way with the LuaTeX engine.  The package \
-requires the bar and golly bundles for extremely special specialties.")
-               ('license 'lppl1.3+))
-             #t)
+               ('inherit ('simple-texlive-package
+                          "texlive-texsis"
+                          ('list "doc/man/man1/"
+                                 "doc/otherformats/texsis/base/"
+                                 "bibtex/bst/texsis/"
+                                 "tex/texsis/base/"
+                                 "tex/texsis/config/")
+                          ('base32 (? string? hash))
+                          #:trivial? #t))
+               ('propagated-inputs
+                (("texlive-cm" ',texlive-cm)
+                 ("texlive-hyphen-base" ',texlive-hyphen-base)
+                 ("texlive-knuth-lib" ',texlive-knuth-lib)
+                 ("texlive-plain" ',texlive-plain)
+                 ("texlive-tex" ',texlive-tex)))
+               ('home-page "https://www.tug.org/texlive/")
+               ('synopsis "Plain TeX macros for Physicists")
+               ('description (? string? description))
+               ('license 'lppl))
+             #true)
             (_
              (begin
-               (format #t "~s\n" result)
+               (format #t "~s~%" result)
                (pk 'fail result #f)))))))
 
 (test-end "texlive")