aboutsummaryrefslogtreecommitdiff
path: root/Examples/test-suite/csharp/argcargvtest_runme.cs
blob: 5b7f7c33bd7b4b4203d497fa3959ebf520c6b98b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using System;
using argcargvtestNamespace;

public class argcargvtest_runme {

  public static void Main() {
    string[] largs = {"hi", "hola", "hello"};
    if (argcargvtest.mainc(largs) != 3)
      throw new Exception("bad main typemap");

    string[] targs = {"hi", "hola"};
    if (!argcargvtest.mainv(targs, 0).Equals("hi"))
      throw new Exception("bad main typemap");
    if (!argcargvtest.mainv(targs, 1).Equals("hola"))
      throw new Exception("bad main typemap");
    if (!argcargvtest.mainv(targs, 2).Equals("<<NULL>>"))
      throw new Exception("bad main typemap");

// For dynamically typed languages we test this throws an exception or similar
// at runtime, but for C# this doesn't even compile (but we can't easily
// test for that here).
//  argcargvtest.mainv("hello", 1);

    argcargvtest.initializeApp(largs);

    // Check that an empty array works.
    string[] empty_args = {};
    if (argcargvtest.mainc(empty_args) != 0)
      throw new Exception("bad main typemap");
    if (!argcargvtest.mainv(empty_args, 0).Equals("<<NULL>>"))
      throw new Exception("bad main typemap");

    // Check that empty strings are handled.
    string[] empty_string = {"hello", "", "world"};
    if (argcargvtest.mainc(empty_string) != 3)
      throw new Exception("bad main typemap");
    if (argcargvtest.mainv(empty_string, 0) != "hello")
      throw new Exception("bad main typemap");
    if (argcargvtest.mainv(empty_string, 1) != "")
      throw new Exception("bad main typemap");
    if (argcargvtest.mainv(empty_string, 2) != "world")
      throw new Exception("bad main typemap");
    if (argcargvtest.mainv(empty_string, 3) != "<<NULL>>")
      throw new Exception("bad main typemap");
  }
}