From 2d4664140f8eb4b2c28c7f7ea72b904093c3ac16 Mon Sep 17 00:00:00 2001 From: Dirk Baechle Date: Fri, 20 Dec 2013 22:21:12 +0100 Subject: - added xsltproc tests and improved handling of the base_dir parameter --- src/engine/SCons/Tool/docbook/__init__.py | 54 ++++++++++++++---- .../Docbook/basedir/htmlchunked/htmlchunked_cmd.py | 57 +++++++++++++++++++ .../basedir/htmlchunked/image/SConstruct.cmd | 2 + test/Docbook/basedir/htmlhelp/htmlhelp_cmd.py | 61 +++++++++++++++++++++ test/Docbook/basedir/htmlhelp/image/SConstruct.cmd | 3 + .../basedir/slideshtml/image/SConstruct.cmd | 3 + test/Docbook/basedir/slideshtml/slideshtml_cmd.py | 64 ++++++++++++++++++++++ test/Docbook/basic/html/html_cmd.py | 54 ++++++++++++++++++ test/Docbook/basic/html/image/SConstruct.cmd | 3 + test/Docbook/basic/htmlchunked/htmlchunked_cmd.py | 55 +++++++++++++++++++ .../Docbook/basic/htmlchunked/image/SConstruct.cmd | 3 + test/Docbook/basic/htmlhelp/htmlhelp_cmd.py | 58 ++++++++++++++++++++ test/Docbook/basic/htmlhelp/image/SConstruct.cmd | 3 + test/Docbook/basic/man/image/SConstruct.cmd | 3 + test/Docbook/basic/man/man_cmd.py | 56 +++++++++++++++++++ test/Docbook/basic/slideshtml/image/SConstruct.cmd | 3 + test/Docbook/basic/slideshtml/slideshtml_cmd.py | 64 ++++++++++++++++++++++ 17 files changed, 535 insertions(+), 11 deletions(-) create mode 100644 test/Docbook/basedir/htmlchunked/htmlchunked_cmd.py create mode 100644 test/Docbook/basedir/htmlchunked/image/SConstruct.cmd create mode 100644 test/Docbook/basedir/htmlhelp/htmlhelp_cmd.py create mode 100644 test/Docbook/basedir/htmlhelp/image/SConstruct.cmd create mode 100644 test/Docbook/basedir/slideshtml/image/SConstruct.cmd create mode 100644 test/Docbook/basedir/slideshtml/slideshtml_cmd.py create mode 100644 test/Docbook/basic/html/html_cmd.py create mode 100644 test/Docbook/basic/html/image/SConstruct.cmd create mode 100644 test/Docbook/basic/htmlchunked/htmlchunked_cmd.py create mode 100644 test/Docbook/basic/htmlchunked/image/SConstruct.cmd create mode 100644 test/Docbook/basic/htmlhelp/htmlhelp_cmd.py create mode 100644 test/Docbook/basic/htmlhelp/image/SConstruct.cmd create mode 100644 test/Docbook/basic/man/image/SConstruct.cmd create mode 100644 test/Docbook/basic/man/man_cmd.py create mode 100644 test/Docbook/basic/slideshtml/image/SConstruct.cmd create mode 100644 test/Docbook/basic/slideshtml/slideshtml_cmd.py diff --git a/src/engine/SCons/Tool/docbook/__init__.py b/src/engine/SCons/Tool/docbook/__init__.py index d6713c6..1e88cfe 100644 --- a/src/engine/SCons/Tool/docbook/__init__.py +++ b/src/engine/SCons/Tool/docbook/__init__.py @@ -260,6 +260,34 @@ def __xml_scan(node, env, path, arg): docbook_xml_scanner = SCons.Script.Scanner(function = __xml_scan, argument = None) + +# +# Action generators +# +def __generate_xsltproc_action(source, target, env, for_signature): + cmd = env['DOCBOOK_XSLTPROCCOM'] + # Does the environment have a base_dir defined? + base_dir = env.subst('$base_dir') + if base_dir: + # Yes, so replace target path by its filename + return cmd.replace('$TARGET','${TARGET.file}') + return cmd + + +# +# Emitters +# +def __emit_xsl_basedir(target, source, env): + # Does the environment have a base_dir defined? + base_dir = env.subst('$base_dir') + if base_dir: + # Yes, so prepend it to each target + return [os.path.join(base_dir, str(t)) for t in target], source + + # No, so simply pass target and source names through + return target, source + + # # Builders # @@ -340,11 +368,13 @@ def __xinclude_lxml(target, source, env): __libxml2_builder = SCons.Builder.Builder( action = __build_libxml2, src_suffix = '.xml', - source_scanner = docbook_xml_scanner) + source_scanner = docbook_xml_scanner, + emitter = __emit_xsl_basedir) __lxml_builder = SCons.Builder.Builder( action = __build_lxml, src_suffix = '.xml', - source_scanner = docbook_xml_scanner) + source_scanner = docbook_xml_scanner, + emitter = __emit_xsl_basedir) __xinclude_libxml2_builder = SCons.Builder.Builder( action = __xinclude_libxml2, @@ -358,9 +388,11 @@ __xinclude_lxml_builder = SCons.Builder.Builder( source_scanner = docbook_xml_scanner) __xsltproc_builder = SCons.Builder.Builder( - action = SCons.Action.Action('$DOCBOOK_XSLTPROCCOM','$DOCBOOK_XSLTPROCCOMSTR'), + action = SCons.Action.CommandGeneratorAction(__generate_xsltproc_action, + {'cmdstr' : '$DOCBOOK_XSLTPROCCOMSTR'}), src_suffix = '.xml', - source_scanner = docbook_xml_scanner) + source_scanner = docbook_xml_scanner, + emitter = __emit_xsl_basedir) __xmllint_builder = SCons.Builder.Builder( action = SCons.Action.Action('$DOCBOOK_XMLLINTCOM','$DOCBOOK_XMLLINTCOMSTR'), suffix = '.xml', @@ -420,11 +452,11 @@ def DocbookHtmlChunked(env, target, source=None, *args, **kw): # Create targets result = [] - r = __builder.__call__(env, base_dir+__ensure_suffix(str(target[0]), '.html'), source[0], **kw) + r = __builder.__call__(env, __ensure_suffix(str(target[0]), '.html'), source[0], **kw) env.Depends(r, kw['DOCBOOK_XSL']) result.extend(r) # Add supporting files for cleanup - env.Clean(r, glob.glob(base_dir+'*.html')) + env.Clean(r, glob.glob(os.path.join(base_dir, '*.html'))) return result @@ -455,12 +487,12 @@ def DocbookHtmlhelp(env, target, source=None, *args, **kw): # Create targets result = [] - r = __builder.__call__(env, base_dir+__ensure_suffix(str(target[0]), '.html'), source[0], **kw) + r = __builder.__call__(env, __ensure_suffix(str(target[0]), '.html'), source[0], **kw) env.Depends(r, kw['DOCBOOK_XSL']) result.extend(r) # Add supporting files for cleanup env.Clean(r, ['toc.hhc', 'htmlhelp.hhp', 'index.hhk'] + - glob.glob(base_dir+'[ar|bk|ch]*.html')) + glob.glob(os.path.join(base_dir, '[ar|bk|ch]*.html'))) return result @@ -605,12 +637,12 @@ def DocbookSlidesHtml(env, target, source=None, *args, **kw): # Create targets result = [] - r = __builder.__call__(env, base_dir+__ensure_suffix(str(target[0]), '.html'), source[0], **kw) + r = __builder.__call__(env, __ensure_suffix(str(target[0]), '.html'), source[0], **kw) env.Depends(r, kw['DOCBOOK_XSL']) result.extend(r) # Add supporting files for cleanup - env.Clean(r, [base_dir+'toc.html'] + - glob.glob(base_dir+'foil*.html')) + env.Clean(r, [os.path.join(base_dir, 'toc.html')] + + glob.glob(os.path.join(base_dir, 'foil*.html'))) return result diff --git a/test/Docbook/basedir/htmlchunked/htmlchunked_cmd.py b/test/Docbook/basedir/htmlchunked/htmlchunked_cmd.py new file mode 100644 index 0000000..b507eb1 --- /dev/null +++ b/test/Docbook/basedir/htmlchunked/htmlchunked_cmd.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python +# +# Copyright (c) 2001-2010 The SCons Foundation +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +""" +Test the base_dir argument for the chunked HTML builder while using +the xsltproc executable, if it exists. +""" + +import os +import sys +import TestSCons + +test = TestSCons.TestSCons() + +xsltproc = test.where_is('xsltproc') +if not (xsltproc and + os.path.isdir('/usr/share/xml/docbook/stylesheet/docbook-xsl')): + test.skip_test('No xsltproc or no stylesheets installed, skipping test.\n') + +test.dir_fixture('image') + +# Normal invocation +test.run(arguments=['-f','SConstruct.cmd'], stderr=None) +test.must_exist(test.workpath('output/index.html')) + +# Cleanup +test.run(arguments=['-f','SConstruct.cmd','-c']) +test.must_not_exist(test.workpath('output/index.html')) + +test.pass_test() + +# Local Variables: +# tab-width:4 +# indent-tabs-mode:nil +# End: +# vim: set expandtab tabstop=4 shiftwidth=4: diff --git a/test/Docbook/basedir/htmlchunked/image/SConstruct.cmd b/test/Docbook/basedir/htmlchunked/image/SConstruct.cmd new file mode 100644 index 0000000..d981b28 --- /dev/null +++ b/test/Docbook/basedir/htmlchunked/image/SConstruct.cmd @@ -0,0 +1,2 @@ +env = Environment(DOCBOOK_PREFER_XSLTPROC=1, tools=['docbook']) +env.DocbookHtmlChunked('manual', xsl='html.xsl', base_dir='output/') diff --git a/test/Docbook/basedir/htmlhelp/htmlhelp_cmd.py b/test/Docbook/basedir/htmlhelp/htmlhelp_cmd.py new file mode 100644 index 0000000..a0f5e8a --- /dev/null +++ b/test/Docbook/basedir/htmlhelp/htmlhelp_cmd.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python +# +# Copyright (c) 2001-2010 The SCons Foundation +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +""" +Test the base_dir argument for the HTMLHELP builder while using +the xsltproc executable, if it exists. +""" + +import os +import sys +import TestSCons + +test = TestSCons.TestSCons() + +xsltproc = test.where_is('xsltproc') +if not (xsltproc and + os.path.isdir('/usr/share/xml/docbook/stylesheet/docbook-xsl')): + test.skip_test('No xsltproc or no stylesheets installed, skipping test.\n') + +test.dir_fixture('image') + +# Normal invocation +test.run(arguments=['-f','SConstruct.cmd'], stderr=None) +test.must_exist(test.workpath('output/index.html')) +test.must_exist(test.workpath('htmlhelp.hhp')) +test.must_exist(test.workpath('toc.hhc')) + +# Cleanup +test.run(arguments=['-f','SConstruct.cmd','-c']) +test.must_not_exist(test.workpath('output/index.html')) +test.must_not_exist(test.workpath('htmlhelp.hhp')) +test.must_not_exist(test.workpath('toc.hhc')) + +test.pass_test() + +# Local Variables: +# tab-width:4 +# indent-tabs-mode:nil +# End: +# vim: set expandtab tabstop=4 shiftwidth=4: diff --git a/test/Docbook/basedir/htmlhelp/image/SConstruct.cmd b/test/Docbook/basedir/htmlhelp/image/SConstruct.cmd new file mode 100644 index 0000000..8c7c9ca --- /dev/null +++ b/test/Docbook/basedir/htmlhelp/image/SConstruct.cmd @@ -0,0 +1,3 @@ +env = Environment(DOCBOOK_PREFER_XSLTPROC=1, tools=['docbook']) +env.DocbookHtmlhelp('manual', xsl='htmlhelp.xsl', base_dir='output/') + diff --git a/test/Docbook/basedir/slideshtml/image/SConstruct.cmd b/test/Docbook/basedir/slideshtml/image/SConstruct.cmd new file mode 100644 index 0000000..297aeb5 --- /dev/null +++ b/test/Docbook/basedir/slideshtml/image/SConstruct.cmd @@ -0,0 +1,3 @@ +env = Environment(DOCBOOK_PREFER_XSLTPROC=1, tools=['docbook']) +env.DocbookSlidesHtml('virt', xsl='slides.xsl', base_dir='output/') + diff --git a/test/Docbook/basedir/slideshtml/slideshtml_cmd.py b/test/Docbook/basedir/slideshtml/slideshtml_cmd.py new file mode 100644 index 0000000..51ed6e4 --- /dev/null +++ b/test/Docbook/basedir/slideshtml/slideshtml_cmd.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python +# +# Copyright (c) 2001-2010 The SCons Foundation +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +""" +Test the base_dir argument for the Slides HTML builder while using +the xsltproc executable, if it exists. +""" + +import os +import sys +import TestSCons + +test = TestSCons.TestSCons() + +xsltproc = test.where_is('xsltproc') +if not (xsltproc and + os.path.isdir('/usr/share/xml/docbook/stylesheet/docbook-xsl/slides') and + os.path.isdir('/usr/share/xml/docbook/custom/slides/3.3.1')): + test.skip_test('No xsltproc or no "slides" stylesheets installed, skipping test.\n') + +test.dir_fixture('image') + +# Normal invocation +test.run(arguments=['-f','SConstruct.cmd'], stderr=None) +test.must_exist(test.workpath('output/index.html')) +test.must_exist(test.workpath('output/toc.html')) +test.must_exist(test.workpath('output/foil01.html')) +test.must_exist(test.workpath('output/foilgroup01.html')) + +# Cleanup +test.run(arguments=['-f','SConstruct.cmd','-c']) +test.must_not_exist(test.workpath('output/index.html')) +test.must_not_exist(test.workpath('output/toc.html')) +test.must_not_exist(test.workpath('output/foil01.html')) +test.must_not_exist(test.workpath('output/foilgroup01.html')) + +test.pass_test() + +# Local Variables: +# tab-width:4 +# indent-tabs-mode:nil +# End: +# vim: set expandtab tabstop=4 shiftwidth=4: diff --git a/test/Docbook/basic/html/html_cmd.py b/test/Docbook/basic/html/html_cmd.py new file mode 100644 index 0000000..acb4dad --- /dev/null +++ b/test/Docbook/basic/html/html_cmd.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python +# +# Copyright (c) 2001-2010 The SCons Foundation +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +""" +Test the HTML builder while using +the xsltproc executable, if it exists. +""" + +import TestSCons + +test = TestSCons.TestSCons() + +xsltproc = test.where_is('xsltproc') +if not xsltproc: + test.skip_test('No xsltproc executable found, skipping test.\n') + +test.dir_fixture('image') + +# Normal invocation +test.run(arguments=['-f','SConstruct.cmd']) +test.must_exist(test.workpath('manual.html')) + +# Cleanup +test.run(arguments=['-f','SConstruct.cmd','-c']) +test.must_not_exist(test.workpath('manual.html')) + +test.pass_test() + +# Local Variables: +# tab-width:4 +# indent-tabs-mode:nil +# End: +# vim: set expandtab tabstop=4 shiftwidth=4: diff --git a/test/Docbook/basic/html/image/SConstruct.cmd b/test/Docbook/basic/html/image/SConstruct.cmd new file mode 100644 index 0000000..20b4aa2 --- /dev/null +++ b/test/Docbook/basic/html/image/SConstruct.cmd @@ -0,0 +1,3 @@ +env = Environment(DOCBOOK_PREFER_XSLTPROC=1, tools=['docbook']) +env.DocbookHtml('manual') + diff --git a/test/Docbook/basic/htmlchunked/htmlchunked_cmd.py b/test/Docbook/basic/htmlchunked/htmlchunked_cmd.py new file mode 100644 index 0000000..e1ad49a --- /dev/null +++ b/test/Docbook/basic/htmlchunked/htmlchunked_cmd.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python +# +# Copyright (c) 2001-2010 The SCons Foundation +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +""" +Test the chunked HTML builder while using +the xsltproc executable, if it exists. +""" + +import os +import TestSCons + +test = TestSCons.TestSCons() + +xsltproc = test.where_is('xsltproc') +if not xsltproc: + test.skip_test('No xsltproc executable found, skipping test.\n') + +test.dir_fixture('image') + +# Normal invocation +test.run(arguments=['-f','SConstruct.cmd'], stderr=None) +test.must_exist(test.workpath('index.html')) + +# Cleanup +test.run(arguments=['-f','SConstruct.cmd','-c']) +test.must_not_exist(test.workpath('index.html')) + +test.pass_test() + +# Local Variables: +# tab-width:4 +# indent-tabs-mode:nil +# End: +# vim: set expandtab tabstop=4 shiftwidth=4: diff --git a/test/Docbook/basic/htmlchunked/image/SConstruct.cmd b/test/Docbook/basic/htmlchunked/image/SConstruct.cmd new file mode 100644 index 0000000..e2406f2 --- /dev/null +++ b/test/Docbook/basic/htmlchunked/image/SConstruct.cmd @@ -0,0 +1,3 @@ +env = Environment(DOCBOOK_PREFER_XSLTPROC=1, tools=['docbook']) +env.DocbookHtmlChunked('manual') + diff --git a/test/Docbook/basic/htmlhelp/htmlhelp_cmd.py b/test/Docbook/basic/htmlhelp/htmlhelp_cmd.py new file mode 100644 index 0000000..8e1c1b6 --- /dev/null +++ b/test/Docbook/basic/htmlhelp/htmlhelp_cmd.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python +# +# Copyright (c) 2001-2010 The SCons Foundation +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +""" +Test the HTMLHELP builder while using +the xsltproc executable, if it exists. +""" + +import TestSCons + +test = TestSCons.TestSCons() + +xsltproc = test.where_is('xsltproc') +if not xsltproc: + test.skip_test('No xsltproc executable found, skipping test.\n') + +test.dir_fixture('image') + +# Normal invocation +test.run(arguments=['-f','SConstruct.cmd'], stderr=None) +test.must_exist(test.workpath('index.html')) +test.must_exist(test.workpath('htmlhelp.hhp')) +test.must_exist(test.workpath('toc.hhc')) + +# Cleanup +test.run(arguments=['-f','SConstruct.cmd','-c']) +test.must_not_exist(test.workpath('index.html')) +test.must_not_exist(test.workpath('htmlhelp.hhp')) +test.must_not_exist(test.workpath('toc.hhc')) + +test.pass_test() + +# Local Variables: +# tab-width:4 +# indent-tabs-mode:nil +# End: +# vim: set expandtab tabstop=4 shiftwidth=4: diff --git a/test/Docbook/basic/htmlhelp/image/SConstruct.cmd b/test/Docbook/basic/htmlhelp/image/SConstruct.cmd new file mode 100644 index 0000000..29fb4fa --- /dev/null +++ b/test/Docbook/basic/htmlhelp/image/SConstruct.cmd @@ -0,0 +1,3 @@ +env = Environment(DOCBOOK_PREFER_XSLTPROC=1, tools=['docbook']) +env.DocbookHtmlhelp('manual') + diff --git a/test/Docbook/basic/man/image/SConstruct.cmd b/test/Docbook/basic/man/image/SConstruct.cmd new file mode 100644 index 0000000..8b1406b --- /dev/null +++ b/test/Docbook/basic/man/image/SConstruct.cmd @@ -0,0 +1,3 @@ +env = Environment(DOCBOOK_PREFER_XSLTPROC=1, tools=['docbook']) +env.DocbookMan('refdb') + diff --git a/test/Docbook/basic/man/man_cmd.py b/test/Docbook/basic/man/man_cmd.py new file mode 100644 index 0000000..f5127e3 --- /dev/null +++ b/test/Docbook/basic/man/man_cmd.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python +# +# Copyright (c) 2001-2010 The SCons Foundation +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +""" +Test the Man builder while using +the xsltproc executable, if it exists. +""" + +import TestSCons + +test = TestSCons.TestSCons() + +xsltproc = test.where_is('xsltproc') +if not xsltproc: + test.skip_test('No xsltproc executable found, skipping test.\n') + +test.dir_fixture('image') + +# Normal invocation +test.run(arguments=['-f','SConstruct.cmd'], stderr=None) +test.must_exist(test.workpath('refdb.8')) +test.must_exist(test.workpath('refdb.sh.8')) + +# Cleanup +test.run(arguments=['-f','SConstruct.cmd','-c']) +test.must_not_exist(test.workpath('refdb.8')) +test.must_not_exist(test.workpath('refdb.sh.8')) + +test.pass_test() + +# Local Variables: +# tab-width:4 +# indent-tabs-mode:nil +# End: +# vim: set expandtab tabstop=4 shiftwidth=4: diff --git a/test/Docbook/basic/slideshtml/image/SConstruct.cmd b/test/Docbook/basic/slideshtml/image/SConstruct.cmd new file mode 100644 index 0000000..133cb11 --- /dev/null +++ b/test/Docbook/basic/slideshtml/image/SConstruct.cmd @@ -0,0 +1,3 @@ +env = Environment(DOCBOOK_PREFER_XSLTPROC=1, tools=['docbook']) +env.DocbookSlidesHtml('virt') + diff --git a/test/Docbook/basic/slideshtml/slideshtml_cmd.py b/test/Docbook/basic/slideshtml/slideshtml_cmd.py new file mode 100644 index 0000000..ce5c30b --- /dev/null +++ b/test/Docbook/basic/slideshtml/slideshtml_cmd.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python +# +# Copyright (c) 2001-2010 The SCons Foundation +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +""" +Test the Slides HTML builder while using +the xsltproc executable, if it exists. +""" + +import os +import sys +import TestSCons + +test = TestSCons.TestSCons() + +xsltproc = test.where_is('xsltproc') +if not (xsltproc and + os.path.isdir('/usr/share/xml/docbook/stylesheet/docbook-xsl/slides') and + os.path.isdir('/usr/share/xml/docbook/custom/slides/3.3.1')): + test.skip_test('No xsltproc executable or no "slides" stylesheets installed, skipping test.\n') + +test.dir_fixture('image') + +# Normal invocation +test.run(arguments=['-f','SConstruct.cmd'], stderr=None) +test.must_exist(test.workpath('index.html')) +test.must_exist(test.workpath('toc.html')) +test.must_exist(test.workpath('foil01.html')) +test.must_exist(test.workpath('foilgroup01.html')) + +# Cleanup +test.run(arguments=['-f','SConstruct.cmd','-c']) +test.must_not_exist(test.workpath('index.html')) +test.must_not_exist(test.workpath('toc.html')) +test.must_not_exist(test.workpath('foil01.html')) +test.must_not_exist(test.workpath('foilgroup01.html')) + +test.pass_test() + +# Local Variables: +# tab-width:4 +# indent-tabs-mode:nil +# End: +# vim: set expandtab tabstop=4 shiftwidth=4: -- cgit v0.12