3 // NUnit Test Cases for Mono.Unix.Native.Stdlib
6 // Jonathan Pryor (jonpryor@vt.edu)
8 // (C) 2004-2005 Jonathan Pryor
14 using NUnit.Framework;
16 using Mono.Unix.Native;
18 namespace MonoTests.Mono.Unix.Native {
20 [TestFixture, Category ("NotOnWindows")]
21 public class StdlibTest
23 private class SignalTest {
24 public int signalReceived;
26 public void Handler (int sn)
35 SignalTest st = new SignalTest ();
38 SignalHandler oh = Stdlib.signal (Signum.SIGURG,
39 new SignalHandler (st.Handler));
41 st.signalReceived = ~NativeConvert.FromSignum (Signum.SIGURG);
44 Stdlib.raise (Signum.SIGURG);
47 NativeConvert.ToSignum (st.signalReceived) == Signum.SIGURG,
48 "#IH: Signal handler not invoked for SIGURG");
51 Stdlib.signal (Signum.SIGURG, oh);
53 st.signalReceived = NativeConvert.FromSignum (Signum.SIGUSR1);
54 Stdlib.raise (Signum.SIGURG);
56 Assert.IsFalse (NativeConvert.ToSignum (st.signalReceived) == Signum.SIGURG,
57 "#IH: Signal Handler invoked when it should have been removed!");
61 // MSVCRT.DLL doesn't export snprintf(3).
62 [Category ("NotDotNet")]
63 [Category ("NotWorking")]
64 public void Snprintf ()
66 StringBuilder s = new StringBuilder (1000);
67 Stdlib.snprintf (s, "hello, %s world!\n");
68 Assert.AreEqual (s.ToString(), "hello, %s world!\n",
69 "#SNPF: string not echoed");
70 s = new StringBuilder (1000);
71 Stdlib.snprintf (s, "yet another %s test", "simple");
72 Assert.AreEqual (s.ToString(), "yet another simple test",
73 "#SNPF: string argument not printed");
74 s = new StringBuilder (1000);
76 @"this is another test:
83 Stdlib.snprintf (s, fmt, 'a', (short) 16, 32, (long) 64, (double) 32.23, 64.46);
85 @"this is another test:
91 double: 64.46" + "\n";
92 Assert.AreEqual (s.ToString(), expected,
93 "#SNPF: printf of many builtin types failed");