diff options
Diffstat (limited to 'test cases/d')
-rw-r--r-- | test cases/d/14 dub with deps/meson.build | 34 | ||||
-rw-r--r-- | test cases/d/14 dub with deps/test.d | 59 |
2 files changed, 93 insertions, 0 deletions
diff --git a/test cases/d/14 dub with deps/meson.build b/test cases/d/14 dub with deps/meson.build new file mode 100644 index 0000000..e0bd847 --- /dev/null +++ b/test cases/d/14 dub with deps/meson.build @@ -0,0 +1,34 @@ +project('dub-with-deps-example', ['c', 'd']) + +dub_exe = find_program('dub', required : false) +if not dub_exe.found() + error('MESON_SKIP_TEST: Dub not found') +endif + +if meson.get_compiler('d').get_id() == 'gcc' + error('MESON_SKIP_TEST: can\'t build dependencies with GDC') +elif meson.get_compiler('d').get_id() == 'llvm' + dc = 'ldc2' +elif meson.get_compiler('d').get_id() == 'dmd' + dc = 'dmd' +endif + +arch = host_machine.cpu_family() + +if host_machine.system() == 'windows' + # check if toolchain is 32bits + sz = meson.get_compiler('c').sizeof('void*') + if arch == 'x86' or sz == 4 + arch = 'x86_mscoff' + endif +endif + +run_command('dub', 'run', 'dub-build-deep', '--yes', '--', 'xlsx', '--compiler', dc, '--arch', arch, + check: true, +) + +xlsx_dep = dependency('xlsx', method: 'dub') + +test_exe = executable('test-test6', 'test.d', dependencies: xlsx_dep) + +test('test dub with deps', test_exe) diff --git a/test cases/d/14 dub with deps/test.d b/test cases/d/14 dub with deps/test.d new file mode 100644 index 0000000..61b5bda --- /dev/null +++ b/test cases/d/14 dub with deps/test.d @@ -0,0 +1,59 @@ +module test; + +// testing import dirs +import xlsx; + +// dependency of xlsx +import dxml.dom; + +const xml = "<!-- comment -->\n" ~ + "<root>\n" ~ + " <foo>some text<whatever/></foo>\n" ~ + " <bar/>\n" ~ + " <baz></baz>\n" ~ + "</root>"; + +int main() +{ + // testing versions + version (Have_dxml) + { + import std.range.primitives : empty; + + auto dom = parseDOM(xml); + assert(dom.type == EntityType.elementStart); + assert(dom.name.empty); + assert(dom.children.length == 2); + + assert(dom.children[0].type == EntityType.comment); + assert(dom.children[0].text == " comment "); + + auto root = dom.children[1]; + assert(root.type == EntityType.elementStart); + assert(root.name == "root"); + assert(root.children.length == 3); + + auto foo = root.children[0]; + assert(foo.type == EntityType.elementStart); + assert(foo.name == "foo"); + assert(foo.children.length == 2); + + assert(foo.children[0].type == EntityType.text); + assert(foo.children[0].text == "some text"); + + assert(foo.children[1].type == EntityType.elementEmpty); + assert(foo.children[1].name == "whatever"); + + assert(root.children[1].type == EntityType.elementEmpty); + assert(root.children[1].name == "bar"); + + assert(root.children[2].type == EntityType.elementStart); + assert(root.children[2].name == "baz"); + assert(root.children[2].children.length == 0); + return 0; + } + else + { + return 1; + } +} |