From 483eb2f56657e8e7f419ab1a4fab8dce9ade8609 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 20:24:20 +0200 Subject: Adding upstream version 14.2.21. Signed-off-by: Daniel Baumann --- .../tools/quickbook/test/python/include_glob.qbk | 11 ++ .../quickbook/test/python/include_glob_deps.txt | 6 + .../quickbook/test/python/include_glob_locs.txt | 9 + .../tools/quickbook/test/python/include_path.qbk | 12 ++ .../quickbook/test/python/include_path_deps.txt | 6 + .../quickbook/test/python/include_path_locs.txt | 9 + .../quickbook/test/python/missing_relative.qbk | 14 ++ .../test/python/missing_relative_deps.txt | 4 + .../test/python/missing_relative_locs.txt | 7 + src/boost/tools/quickbook/test/python/run_tests.py | 191 +++++++++++++++++++++ src/boost/tools/quickbook/test/python/simple.qbk | 23 +++ src/boost/tools/quickbook/test/python/simple.xml | 36 ++++ .../test/python/simple_custom_pretty_print.xml | 42 +++++ .../test/python/simple_no_pretty_print.xml | 36 ++++ .../test/python/simple_no_self_linked.xml | 36 ++++ src/boost/tools/quickbook/test/python/sub1/a.qbk | 9 + src/boost/tools/quickbook/test/python/sub2/b.qbk | 9 + .../tools/quickbook/test/python/svg_missing.qbk | 11 ++ .../quickbook/test/python/svg_missing_deps.txt | 4 + .../quickbook/test/python/svg_missing_locs.txt | 5 + 20 files changed, 480 insertions(+) create mode 100644 src/boost/tools/quickbook/test/python/include_glob.qbk create mode 100644 src/boost/tools/quickbook/test/python/include_glob_deps.txt create mode 100644 src/boost/tools/quickbook/test/python/include_glob_locs.txt create mode 100644 src/boost/tools/quickbook/test/python/include_path.qbk create mode 100644 src/boost/tools/quickbook/test/python/include_path_deps.txt create mode 100644 src/boost/tools/quickbook/test/python/include_path_locs.txt create mode 100644 src/boost/tools/quickbook/test/python/missing_relative.qbk create mode 100644 src/boost/tools/quickbook/test/python/missing_relative_deps.txt create mode 100644 src/boost/tools/quickbook/test/python/missing_relative_locs.txt create mode 100644 src/boost/tools/quickbook/test/python/run_tests.py create mode 100644 src/boost/tools/quickbook/test/python/simple.qbk create mode 100644 src/boost/tools/quickbook/test/python/simple.xml create mode 100644 src/boost/tools/quickbook/test/python/simple_custom_pretty_print.xml create mode 100644 src/boost/tools/quickbook/test/python/simple_no_pretty_print.xml create mode 100644 src/boost/tools/quickbook/test/python/simple_no_self_linked.xml create mode 100644 src/boost/tools/quickbook/test/python/sub1/a.qbk create mode 100644 src/boost/tools/quickbook/test/python/sub2/b.qbk create mode 100644 src/boost/tools/quickbook/test/python/svg_missing.qbk create mode 100644 src/boost/tools/quickbook/test/python/svg_missing_deps.txt create mode 100644 src/boost/tools/quickbook/test/python/svg_missing_locs.txt (limited to 'src/boost/tools/quickbook/test/python') diff --git a/src/boost/tools/quickbook/test/python/include_glob.qbk b/src/boost/tools/quickbook/test/python/include_glob.qbk new file mode 100644 index 00000000..6e1f5248 --- /dev/null +++ b/src/boost/tools/quickbook/test/python/include_glob.qbk @@ -0,0 +1,11 @@ +[/ + Copyright 2012-2013 Daniel James + + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt) +] + +[quickbook 1.7] +[article Include Path] +[include ?.qbk] diff --git a/src/boost/tools/quickbook/test/python/include_glob_deps.txt b/src/boost/tools/quickbook/test/python/include_glob_deps.txt new file mode 100644 index 00000000..82fb66e6 --- /dev/null +++ b/src/boost/tools/quickbook/test/python/include_glob_deps.txt @@ -0,0 +1,6 @@ +# Copyright 2012-2013 Daniel James +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) +include_glob.qbk +sub1/a.qbk +sub2/b.qbk diff --git a/src/boost/tools/quickbook/test/python/include_glob_locs.txt b/src/boost/tools/quickbook/test/python/include_glob_locs.txt new file mode 100644 index 00000000..ccab607e --- /dev/null +++ b/src/boost/tools/quickbook/test/python/include_glob_locs.txt @@ -0,0 +1,9 @@ +# Copyright 2012-2013 Daniel James +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) ++ include_glob.qbk +g ?.qbk +g sub1/?.qbk ++ sub1/a.qbk +g sub2/?.qbk ++ sub2/b.qbk diff --git a/src/boost/tools/quickbook/test/python/include_path.qbk b/src/boost/tools/quickbook/test/python/include_path.qbk new file mode 100644 index 00000000..3af3b370 --- /dev/null +++ b/src/boost/tools/quickbook/test/python/include_path.qbk @@ -0,0 +1,12 @@ +[/ + Copyright 2012-2013 Daniel James + + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt) +] + +[quickbook 1.5] +[article Include Path] +[include a.qbk] +[include b.qbk] diff --git a/src/boost/tools/quickbook/test/python/include_path_deps.txt b/src/boost/tools/quickbook/test/python/include_path_deps.txt new file mode 100644 index 00000000..86875d79 --- /dev/null +++ b/src/boost/tools/quickbook/test/python/include_path_deps.txt @@ -0,0 +1,6 @@ +# Copyright 2012-2013 Daniel James +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) +include_path.qbk +sub1/a.qbk +sub2/b.qbk diff --git a/src/boost/tools/quickbook/test/python/include_path_locs.txt b/src/boost/tools/quickbook/test/python/include_path_locs.txt new file mode 100644 index 00000000..7926db61 --- /dev/null +++ b/src/boost/tools/quickbook/test/python/include_path_locs.txt @@ -0,0 +1,9 @@ +# Copyright 2012-2013 Daniel James +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) ++ include_path.qbk +- a.qbk ++ sub1/a.qbk +- b.qbk +- sub1/b.qbk ++ sub2/b.qbk diff --git a/src/boost/tools/quickbook/test/python/missing_relative.qbk b/src/boost/tools/quickbook/test/python/missing_relative.qbk new file mode 100644 index 00000000..ff96b108 --- /dev/null +++ b/src/boost/tools/quickbook/test/python/missing_relative.qbk @@ -0,0 +1,14 @@ +[/ + Copyright 2012-2013 Daniel James + + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt) +] + +[quickbook 1.5] +[article Missing Relative] + +[include ../missing.qbk] +[include missing-dir/x.qbk] +[include missing-dir/../../x.qbk] diff --git a/src/boost/tools/quickbook/test/python/missing_relative_deps.txt b/src/boost/tools/quickbook/test/python/missing_relative_deps.txt new file mode 100644 index 00000000..fb8f27fe --- /dev/null +++ b/src/boost/tools/quickbook/test/python/missing_relative_deps.txt @@ -0,0 +1,4 @@ +# Copyright 2012-2013 Daniel James +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) +missing_relative.qbk diff --git a/src/boost/tools/quickbook/test/python/missing_relative_locs.txt b/src/boost/tools/quickbook/test/python/missing_relative_locs.txt new file mode 100644 index 00000000..ac85cec1 --- /dev/null +++ b/src/boost/tools/quickbook/test/python/missing_relative_locs.txt @@ -0,0 +1,7 @@ +# Copyright 2012-2013 Daniel James +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) ++ missing_relative.qbk +- ../missing.qbk +- missing-dir/x.qbk +- missing-dir/../../x.qbk diff --git a/src/boost/tools/quickbook/test/python/run_tests.py b/src/boost/tools/quickbook/test/python/run_tests.py new file mode 100644 index 00000000..955f52c9 --- /dev/null +++ b/src/boost/tools/quickbook/test/python/run_tests.py @@ -0,0 +1,191 @@ +#!/usr/bin/env python + +# Copyright 2012-2013 Daniel James +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) + +import sys, os, subprocess, tempfile, re + +def main(args, directory): + if len(args) != 1: + print "Usage: output-deps.py quickbook-command" + exit(1) + quickbook_command = args[0] + + failures = 0 + + # Dependency tests + + failures += run_quickbook(quickbook_command, 'svg_missing.qbk', + deps_gold = 'svg_missing_deps.txt') + failures += run_quickbook(quickbook_command, 'svg_missing.qbk', + locations_gold = 'svg_missing_locs.txt') + failures += run_quickbook(quickbook_command, 'missing_relative.qbk', + deps_gold = 'missing_relative_deps.txt', + locations_gold = 'missing_relative_locs.txt') + failures += run_quickbook(quickbook_command, 'include_path.qbk', + deps_gold = 'include_path_deps.txt', + locations_gold = 'include_path_locs.txt', + input_path = ['sub1', 'sub2']) + failures += run_quickbook(quickbook_command, 'include_glob.qbk', + deps_gold = 'include_glob_deps.txt', + locations_gold = 'include_glob_locs.txt', + input_path = ['sub1', 'sub2']) + + # Try building a simple document with various flags. + + failures += run_quickbook(quickbook_command, 'simple.qbk', + output_gold = 'simple.xml') + failures += run_quickbook(quickbook_command, 'simple.qbk', + extra_flags = ['--no-self-linked-headers'], + output_gold = 'simple_no_self_linked.xml') + failures += run_quickbook(quickbook_command, 'simple.qbk', + extra_flags = ['--no-pretty-print'], + output_gold = 'simple_no_pretty_print.xml') + failures += run_quickbook(quickbook_command, 'simple.qbk', + extra_flags = ['--indent','4','--linewidth','60'], + output_gold = 'simple_custom_pretty_print.xml') + + if failures == 0: + print "Success" + else: + print "Failures:",failures + exit(failures) + +def run_quickbook(quickbook_command, filename, output_gold = None, + deps_gold = None, locations_gold = None, input_path = [], + extra_flags = None): + failures = 0 + + command = [quickbook_command, '--debug', filename] + + output_filename = None + if output_gold: + output_filename = temp_filename('.qbk') + command.extend(['--output-file', output_filename]) + + deps_filename = None + if deps_gold: + deps_filename = temp_filename('.txt') + command.extend(['--output-deps', deps_filename]) + + locations_filename = None + if locations_gold: + locations_filename = temp_filename('.txt') + command.extend(['--output-checked-locations', locations_filename]) + + for path in input_path: + command.extend(['-I', path]) + + if extra_flags: + command.extend(extra_flags) + + try: + print 'Running: ' + ' '.join(command) + print + exit_code = subprocess.call(command) + print + success = not exit_code + + if output_filename: + output = load_file(output_filename) + else: + output = None + + if deps_filename: + deps = load_dependencies(deps_filename) + else: + deps = None + + if locations_filename: + locations = load_locations(locations_filename) + else: + locations = None + finally: + if output_filename: os.unlink(output_filename) + if deps_filename: os.unlink(deps_filename) + + if deps_gold: + gold = load_dependencies(deps_gold) + if deps != gold: + failures = failures + 1 + print "Dependencies don't match:" + print "Gold:", gold + print "Result:", deps + print + + if locations_gold: + gold = load_locations(locations_gold) + if locations != gold: + failures = failures + 1 + print "Dependencies don't match:" + print "Gold:", gold + print "Result:", locations + print + + if output_gold: + gold = load_file(output_gold) + if gold != output: + failures = failures + 1 + print "Output doesn't match:" + print + print gold + print + print output + print + + return failures + +def load_dependencies(filename): + dependencies = set() + f = open(filename, 'r') + for path in f: + if path[0] == '#': continue + if path in dependencies: + raise Exception("Duplicate path (%1s) in %2s" % (path, filename)) + dependencies.add(path) + return dependencies + +def load_locations(filename): + line_matcher = re.compile("^([+-g]) (.*)$") + dependencies = {} + f = open(filename, 'r') + glob = None + globs = {} + for line in f: + if line[0] == '#': continue + m = line_matcher.match(line) + + path = m.group(2) + + if not m: + raise Exception("Invalid dependency file: %1s" % filename) + if m.group(1) == 'g': + globs[path] = [] + glob = path + elif glob: + if m.group(1) != '+': + raise Exception("Negative match in glob.") + globs[glob].append(path) + else: + found = m.group(1) == '+' + if path in dependencies: + raise Exception("Duplicate path (%1s) in %2s" % (path, filename)) + dependencies[path] = found + return { 'dependencies': dependencies, 'globs': globs } + +def temp_filename(extension): + file = tempfile.mkstemp(suffix = extension) + os.close(file[0]) + return file[1] + +def load_file(filename): + f = open(filename, 'r') + try: + return f.read() + finally: + f.close() + + return None + +main(sys.argv[1:], os.path.dirname(sys.argv[0])) diff --git a/src/boost/tools/quickbook/test/python/simple.qbk b/src/boost/tools/quickbook/test/python/simple.qbk new file mode 100644 index 00000000..af42ca5c --- /dev/null +++ b/src/boost/tools/quickbook/test/python/simple.qbk @@ -0,0 +1,23 @@ +[/ Copyright 2016 Daniel James. + / Distributed under the Boost Software License, Version 1.0. (See accompanying + / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ] + +[quickbook 1.6] +[article Simple Test Article + [copyright 2016 Daniel James] + [license + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or copy at + [@http://www.boost.org/LICENSE_1_0.txt]) + ] +] + +[section:one One] + +[h1 A] + +Lorem ipsum dolor. Sit amet quis hendrerit pretium massa. Et imperdiet sit luctus et nam. Eget neque vivamus nec aliquam vestibulum. Venenatis id penatibus. Rutrum lobortis tempora. Turpis cras imperdiet. Quis parturient quam sed non libero donec in ut aliquam aliquam purus maecenas con dolor in est felis lorem amet vel. Risus mauris felis. Libero felis fringilla. Sed cursus metus dolor iaculis eget sit ac commodo. Molestie interdum nunc. Erat auctor suscipit. Turpis quisque nonummy. Integer vestibulum vivamus vulputate euismod et sed pretium urna metus scelerisque urna massa vestibulum neque. + +[heading B] + +[endsect] diff --git a/src/boost/tools/quickbook/test/python/simple.xml b/src/boost/tools/quickbook/test/python/simple.xml new file mode 100644 index 00000000..9b8f73be --- /dev/null +++ b/src/boost/tools/quickbook/test/python/simple.xml @@ -0,0 +1,36 @@ + + +
+ Simple Test Article + + + 2016 Daniel James + + + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + + +
+ <link linkend="simple_test_article.one">One</link> + + A + + + Lorem ipsum dolor. Sit amet quis hendrerit pretium massa. Et imperdiet sit + luctus et nam. Eget neque vivamus nec aliquam vestibulum. Venenatis id penatibus. + Rutrum lobortis tempora. Turpis cras imperdiet. Quis parturient quam sed non + libero donec in ut aliquam aliquam purus maecenas con dolor in est felis lorem + amet vel. Risus mauris felis. Libero felis fringilla. Sed cursus metus dolor + iaculis eget sit ac commodo. Molestie interdum nunc. Erat auctor suscipit. + Turpis quisque nonummy. Integer vestibulum vivamus vulputate euismod et sed + pretium urna metus scelerisque urna massa vestibulum neque. + + + B + +
+
diff --git a/src/boost/tools/quickbook/test/python/simple_custom_pretty_print.xml b/src/boost/tools/quickbook/test/python/simple_custom_pretty_print.xml new file mode 100644 index 00000000..07b71e5b --- /dev/null +++ b/src/boost/tools/quickbook/test/python/simple_custom_pretty_print.xml @@ -0,0 +1,42 @@ + + +
+ Simple Test Article + + + 2016 Daniel James + + + + Distributed under the Boost Software License, + Version 1.0. (See accompanying file LICENSE_1_0.txt + or copy at http://www.boost.org/LICENSE_1_0.txt) + + + +
+ <link linkend="simple_test_article.one">One</link> + + A + + + Lorem ipsum dolor. Sit amet quis hendrerit pretium + massa. Et imperdiet sit luctus et nam. Eget neque + vivamus nec aliquam vestibulum. Venenatis id penatibus. + Rutrum lobortis tempora. Turpis cras imperdiet. Quis + parturient quam sed non libero donec in ut aliquam + aliquam purus maecenas con dolor in est felis lorem + amet vel. Risus mauris felis. Libero felis fringilla. + Sed cursus metus dolor iaculis eget sit ac commodo. + Molestie interdum nunc. Erat auctor suscipit. Turpis + quisque nonummy. Integer vestibulum vivamus vulputate + euismod et sed pretium urna metus scelerisque urna + massa vestibulum neque. + + + B + +
+
diff --git a/src/boost/tools/quickbook/test/python/simple_no_pretty_print.xml b/src/boost/tools/quickbook/test/python/simple_no_pretty_print.xml new file mode 100644 index 00000000..258b4339 --- /dev/null +++ b/src/boost/tools/quickbook/test/python/simple_no_pretty_print.xml @@ -0,0 +1,36 @@ + + +
+ Simple Test Article + + + + + + 2016 + Daniel James + + + + + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt) + + + + + + + +
+<link linkend="simple_test_article.one">One</link> +A +Lorem ipsum dolor. Sit amet quis hendrerit pretium massa. Et imperdiet sit luctus et nam. Eget neque vivamus nec aliquam vestibulum. Venenatis id penatibus. Rutrum lobortis tempora. Turpis cras imperdiet. Quis parturient quam sed non libero donec in ut aliquam aliquam purus maecenas con dolor in est felis lorem amet vel. Risus mauris felis. Libero felis fringilla. Sed cursus metus dolor iaculis eget sit ac commodo. Molestie interdum nunc. Erat auctor suscipit. Turpis quisque nonummy. Integer vestibulum vivamus vulputate euismod et sed pretium urna metus scelerisque urna massa vestibulum neque. +B
+
+ diff --git a/src/boost/tools/quickbook/test/python/simple_no_self_linked.xml b/src/boost/tools/quickbook/test/python/simple_no_self_linked.xml new file mode 100644 index 00000000..37dce222 --- /dev/null +++ b/src/boost/tools/quickbook/test/python/simple_no_self_linked.xml @@ -0,0 +1,36 @@ + + +
+ Simple Test Article + + + 2016 Daniel James + + + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + + +
+ One + + A + + + Lorem ipsum dolor. Sit amet quis hendrerit pretium massa. Et imperdiet sit + luctus et nam. Eget neque vivamus nec aliquam vestibulum. Venenatis id penatibus. + Rutrum lobortis tempora. Turpis cras imperdiet. Quis parturient quam sed non + libero donec in ut aliquam aliquam purus maecenas con dolor in est felis lorem + amet vel. Risus mauris felis. Libero felis fringilla. Sed cursus metus dolor + iaculis eget sit ac commodo. Molestie interdum nunc. Erat auctor suscipit. + Turpis quisque nonummy. Integer vestibulum vivamus vulputate euismod et sed + pretium urna metus scelerisque urna massa vestibulum neque. + + + B + +
+
diff --git a/src/boost/tools/quickbook/test/python/sub1/a.qbk b/src/boost/tools/quickbook/test/python/sub1/a.qbk new file mode 100644 index 00000000..f3abe6eb --- /dev/null +++ b/src/boost/tools/quickbook/test/python/sub1/a.qbk @@ -0,0 +1,9 @@ +[/ + Copyright 2012-2013 Daniel James + + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt) +] + +a diff --git a/src/boost/tools/quickbook/test/python/sub2/b.qbk b/src/boost/tools/quickbook/test/python/sub2/b.qbk new file mode 100644 index 00000000..9b4336bd --- /dev/null +++ b/src/boost/tools/quickbook/test/python/sub2/b.qbk @@ -0,0 +1,9 @@ +[/ + Copyright 2012-2013 Daniel James + + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt) +] + +b diff --git a/src/boost/tools/quickbook/test/python/svg_missing.qbk b/src/boost/tools/quickbook/test/python/svg_missing.qbk new file mode 100644 index 00000000..1b54ece4 --- /dev/null +++ b/src/boost/tools/quickbook/test/python/svg_missing.qbk @@ -0,0 +1,11 @@ +[/ + Copyright 2012-2013 Daniel James + + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt) +] + +[article Dependencies for missing svg] + +[$missing.svg] diff --git a/src/boost/tools/quickbook/test/python/svg_missing_deps.txt b/src/boost/tools/quickbook/test/python/svg_missing_deps.txt new file mode 100644 index 00000000..91487e85 --- /dev/null +++ b/src/boost/tools/quickbook/test/python/svg_missing_deps.txt @@ -0,0 +1,4 @@ +# Copyright 2012-2013 Daniel James +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) +svg_missing.qbk diff --git a/src/boost/tools/quickbook/test/python/svg_missing_locs.txt b/src/boost/tools/quickbook/test/python/svg_missing_locs.txt new file mode 100644 index 00000000..0f4c9b80 --- /dev/null +++ b/src/boost/tools/quickbook/test/python/svg_missing_locs.txt @@ -0,0 +1,5 @@ +# Copyright 2012-2013 Daniel James +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) +- html/missing.svg ++ svg_missing.qbk -- cgit v1.2.3