1 // UnixMarshalTests.cs - NUnit2 Test Cases for Mono.Unix.UnixMarshal class
4 // Jonathan Pryor (jonpryor@vt.edu)
6 // (c) 2005 Jonathan Pryor
15 namespace MonoTests.Mono.Unix {
17 class RandomEncoding : UTF8Encoding {
18 public RandomEncoding ()
23 public override int GetMaxByteCount (int value)
30 class UnixMarshalTest {
32 public static void Main ()
34 string s = UnixMarshal.GetErrorDescription (Errno.ERANGE);
35 Console.WriteLine ("ERANGE={0}", s);
36 s = UnixMarshal.GetErrorDescription ((Errno) 999999);
37 Console.WriteLine ("Invalid={0}", s);
42 public void TestStringToHeap ()
45 "Hello, world!", true, true,
46 "MS Pゴシック", false, true,
49 for (int i = 0; i < data.Length; i += 3) {
50 string s = (string) data [i+0];
51 bool valid_ascii = (bool) data [i+1];
52 bool valid_unicode = (bool) data [i+2];
54 TestStringToHeap (s, valid_ascii, valid_unicode);
58 private static void TestStringToHeap (string s, bool validAscii, bool validUnicode)
60 TestStringToHeap (s, Encoding.ASCII, validAscii);
61 TestStringToHeap (s, Encoding.UTF7, validUnicode);
62 TestStringToHeap (s, Encoding.UTF8, validUnicode);
63 TestStringToHeap (s, Encoding.Unicode, validUnicode);
64 TestStringToHeap (s, Encoding.BigEndianUnicode, validUnicode);
65 TestStringToHeap (s, new RandomEncoding (), validUnicode);
68 private static void TestStringToHeap (string s, Encoding e, bool mustBeEqual)
70 IntPtr p = UnixMarshal.StringToHeap (s, e);
72 string _s = UnixMarshal.PtrToString (p, e);
74 Assert.AreEqual (s, _s, "#TSTA (" + e.GetType() + ")");