Skip to content

Commit

Permalink
add test d/14 dub with deps
Browse files Browse the repository at this point in the history
  • Loading branch information
rtbo committed Mar 11, 2022
1 parent f1e8634 commit eb4fd0c
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 0 deletions.
34 changes: 34 additions & 0 deletions test cases/d/14 dub with deps/meson.build
Original file line number Diff line number Diff line change
@@ -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)
59 changes: 59 additions & 0 deletions test cases/d/14 dub with deps/test.d
Original file line number Diff line number Diff line change
@@ -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;
}
}

0 comments on commit eb4fd0c

Please sign in to comment.