Merged revisions 2302-2362,2364-2452 via svnmerge from
[scons.git] / test / TEX / clean.py
1 #!/usr/bin/env python
2 #
3 # __COPYRIGHT__
4 #
5 # Permission is hereby granted, free of charge, to any person obtaining
6 # a copy of this software and associated documentation files (the
7 # "Software"), to deal in the Software without restriction, including
8 # without limitation the rights to use, copy, modify, merge, publish,
9 # distribute, sublicense, and/or sell copies of the Software, and to
10 # permit persons to whom the Software is furnished to do so, subject to
11 # the following conditions:
12 #
13 # The above copyright notice and this permission notice shall be included
14 # in all copies or substantial portions of the Software.
15 #
16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
17 # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
18 # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20 # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 #
24
25 __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
26
27 """
28 Check that all auxilary files created by LaTeX are properly cleaned by scons -c.
29 """
30
31 import TestSCons
32
33 test = TestSCons.TestSCons()
34
35 latex = test.where_is('latex')
36
37 if not latex:
38     test.skip_test("Could not find tex or latex; skipping test(s).\n")
39
40 # package hyperref generates foo.out
41 # package comment generates comment.cut
42 # todo: add makeindex etc.
43 input_file = r"""
44 \documentclass{article}
45 \usepackage{hyperref}
46 \usepackage{comment}
47 \specialcomment{foocom}{}{}
48 \begin{document}
49 \begin{foocom}
50 Hi
51 \end{foocom}
52 As stated in \cite{X}, this is a bug-a-boo.
53 \bibliography{fooref}
54 \bibliographystyle{plain}
55 \end{document}
56 """
57
58 bibfile = r"""
59 @Article{X,
60   author =       "Mr. X",
61   title =        "A determination of bug-a-boo-ness",
62   journal =      "Journal of B.a.B.",
63   year =         1920,
64   volume =       62,
65   pages =        291
66 }
67 """
68
69 test.write('SConstruct', """\
70 DVI( "foo.ltx" )
71 """)
72
73 test.write('foo.ltx', input_file)
74 test.write('fooref.bib', bibfile)
75
76 test.run()
77
78 test.must_exist('foo.log')
79 test.must_exist('foo.aux')
80 test.must_exist('foo.bbl')
81 test.must_exist('foo.blg')
82 test.must_exist('comment.cut')
83 test.must_exist('foo.out')
84
85 test.run(arguments = '-c')
86
87 test.must_not_exist('foo.log')
88 test.must_not_exist('foo.aux')
89 test.must_not_exist('foo.bbl')
90 test.must_not_exist('foo.blg')
91 test.must_not_exist('comment.cut')
92 test.must_not_exist('foo.out')
93
94 test.pass_test()