mirror of https://github.com/swig/swig
45 lines
1.8 KiB
D
45 lines
1.8 KiB
D
module argcargvtest_runme;
|
|
|
|
import std.exception;
|
|
import argcargvtest.argcargvtest;
|
|
|
|
void main() {
|
|
auto largs = ["hi", "hola", "hello"];
|
|
enforce(mainc(largs) == 3, "calling mainc failed");
|
|
|
|
auto targs = ["hi", "hola"];
|
|
enforce(mainv(targs, 0) == "hi", "calling mainv failed");
|
|
enforce(mainv(targs, 1) == "hola", "calling mainv failed");
|
|
enforce(mainv(targs, 2) == "<<NULL>>", "calling mainv failed");
|
|
|
|
// For dynamically typed languages we test this throws an exception or similar
|
|
// at runtime, but for D language this doesn't even compile (but we can't easily
|
|
// test for that here).
|
|
// mainv("hello", 1);
|
|
|
|
initializeApp(largs);
|
|
|
|
// Check that an empty array works.
|
|
string[] empty_args;
|
|
enforce(mainc(empty_args) == 0, "calling mainc failed");
|
|
enforce(mainv(empty_args, 0) == "<<NULL>>", "calling mainv failed");
|
|
// In D, an empty array created like empty_args is identical to null.
|
|
enforce(mainc(null) == 0, "calling mainc failed");
|
|
// However an empty array created like this has a non-null .array so test
|
|
// this case is handled too.
|
|
string[] empty_args_array_set = targs;
|
|
empty_args_array_set.length = 0;
|
|
enforce(mainc(empty_args_array_set) == 0, "calling mainc failed");
|
|
// Check creating via slicing too.
|
|
string[] empty_args_array_set2 = targs[0..0];
|
|
enforce(mainc(empty_args_array_set2) == 0, "calling mainc failed");
|
|
|
|
// Check that empty strings are handled.
|
|
auto empty_string = ["hello", "", "world"];
|
|
enforce(mainc(empty_string) == 3, "calling mainc failed");
|
|
enforce(mainv(empty_string, 0) == "hello", "calling mainv failed");
|
|
enforce(mainv(empty_string, 1) == "", "calling mainv failed");
|
|
enforce(mainv(empty_string, 2) == "world", "calling mainv failed");
|
|
enforce(mainv(empty_string, 3) == "<<NULL>>", "calling mainv failed");
|
|
}
|