* Process.cs: In PriorityClass setter, first check whether value is
authorGert Driesen <drieseng@users.sourceforge.net>
Sat, 22 Dec 2007 09:48:37 +0000 (09:48 -0000)
committerGert Driesen <drieseng@users.sourceforge.net>
Sat, 22 Dec 2007 09:48:37 +0000 (09:48 -0000)
valid and remove LAMESPEC since the documentation has been corrected
for .NET 3.5. Code formatting.
* ProcessTest.cs: Added tests for PriorityClass.

svn path=/trunk/mcs/; revision=91804

mcs/class/System/System.Diagnostics/ChangeLog
mcs/class/System/System.Diagnostics/Process.cs
mcs/class/System/Test/System.Diagnostics/ChangeLog
mcs/class/System/Test/System.Diagnostics/ProcessTest.cs

index b8cbf1ef79e9a875f52dd84f27bcd566c267b8dd..ed63c1f17d71ed686564b3f3efe8a3f706a6f76d 100644 (file)
@@ -1,3 +1,9 @@
+2007-12-22  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * Process.cs: In PriorityClass setter, first check whether value is
+       valid and remove LAMESPEC since the documentation has been corrected
+       for .NET 3.5. Code formatting.
+
 2007-12-19  Dick Porter  <dick@ximian.com>
 
        * Process.cs: Check that the process has been started before
index 6ba92637bc3c44c7107152756ffda2f5ab309f2f..07ed17f498eeea26807abc464fa7e9ef98c0c6ad 100644 (file)
@@ -209,9 +209,8 @@ namespace System.Diagnostics {
                [MonitoringDescription ("Process identifier.")]
                public int Id {
                        get {
-                               if (pid == 0) {
+                               if (pid == 0)
                                        throw new InvalidOperationException ("Process ID has not been set.");
-                               }
 
                                return(pid);
                        }
@@ -262,9 +261,10 @@ namespace System.Diagnostics {
                [MonitoringDescription ("The maximum working set for this process.")]
                public IntPtr MaxWorkingSet {
                        get {
-                               if(HasExited) {
-                                       throw new InvalidOperationException("The process " + ProcessName + " (ID " + Id + ") has exited");
-                               }
+                               if(HasExited)
+                                       throw new InvalidOperationException(
+                                               "The process " + ProcessName +
+                                               " (ID " + Id + ") has exited");
                                
                                int min;
                                int max;
@@ -291,28 +291,27 @@ namespace System.Diagnostics {
                [MonitoringDescription ("The minimum working set for this process.")]
                public IntPtr MinWorkingSet {
                        get {
-                               if(HasExited) {
-                                       throw new InvalidOperationException("The process " + ProcessName + " (ID " + Id + ") has exited");
-                               }
+                               if(HasExited)
+                                       throw new InvalidOperationException(
+                                               "The process " + ProcessName +
+                                               " (ID " + Id + ") has exited");
                                
                                int min;
                                int max;
-                               bool ok=GetWorkingSet_internal(process_handle, out min, out max);
-                               if(ok==false) {
+                               bool ok= GetWorkingSet_internal (process_handle, out min, out max);
+                               if(!ok)
                                        throw new Win32Exception();
-                               }
-                               
-                               return((IntPtr)min);
+                               return ((IntPtr) min);
                        }
                        set {
-                               if(HasExited) {
-                                       throw new InvalidOperationException("The process " + ProcessName + " (ID " + Id + ") has exited");
-                               }
+                               if(HasExited)
+                                       throw new InvalidOperationException(
+                                               "The process " + ProcessName +
+                                               " (ID " + Id + ") has exited");
                                
-                               bool ok=SetWorkingSet_internal(process_handle, value.ToInt32(), 0, true);
-                               if(ok==false) {
+                               bool ok = SetWorkingSet_internal (process_handle, value.ToInt32(), 0, true);
+                               if (!ok)
                                        throw new Win32Exception();
-                               }
                        }
                }
 
@@ -328,10 +327,9 @@ namespace System.Diagnostics {
                [MonitoringDescription ("The modules that are loaded as part of this process.")]
                public ProcessModuleCollection Modules {
                        get {
-                               if(module_collection==null) {
-                                       module_collection=new ProcessModuleCollection(GetModules_internal(process_handle));
-                               }
-
+                               if (module_collection == null)
+                                       module_collection = new ProcessModuleCollection(
+                                               GetModules_internal (process_handle));
                                return(module_collection);
                        }
                }
@@ -486,9 +484,8 @@ namespace System.Diagnostics {
                [MonitoringDescription ("The relative process priority.")]
                public ProcessPriorityClass PriorityClass {
                        get {
-                               if (process_handle == IntPtr.Zero) {
+                               if (process_handle == IntPtr.Zero)
                                        throw new InvalidOperationException ("Process has not been started.");
-                               }
                                
                                int error;
                                int prio = GetPriorityClass (process_handle, out error);
@@ -497,14 +494,14 @@ namespace System.Diagnostics {
                                return (ProcessPriorityClass) prio;
                        }
                        set {
-                               if (process_handle == IntPtr.Zero) {
-                                       throw new InvalidOperationException ("Process has not been started.");
-                               }
-                               
-                               // LAMESPEC: not documented on MSDN for NET_1_1
                                if (!Enum.IsDefined (typeof (ProcessPriorityClass), value))
-                                       throw new InvalidEnumArgumentException ();
+                                       throw new InvalidEnumArgumentException (
+                                               "value", (int) value,
+                                               typeof (ProcessPriorityClass));
 
+                               if (process_handle == IntPtr.Zero)
+                                       throw new InvalidOperationException ("Process has not been started.");
+                               
                                int error;
                                if (!SetPriorityClass (process_handle, (int) value, out error))
                                        throw new Win32Exception (error);
@@ -565,9 +562,8 @@ namespace System.Diagnostics {
                                         * null, assume the process
                                         * has exited
                                         */
-                                       if(process_name==null) {
+                                       if (process_name == null)
                                                throw new SystemException("The process has exited");
-                                       }
                                        
                                        /* Strip the suffix (if it
                                         * exists) simplistically
@@ -612,9 +608,9 @@ namespace System.Diagnostics {
                [MonitoringDescription ("The standard error stream of this process.")]
                public StreamReader StandardError {
                        get {
-                               if (error_stream == null) {
+                               if (error_stream == null)
                                        throw new InvalidOperationException("Standard error has not been redirected");
-                               }
+
 #if NET_2_0
                                if ((async_mode & AsyncModes.AsyncError) != 0)
                                        throw new InvalidOperationException ("Cannot mix asynchronous and synchonous reads.");
@@ -632,9 +628,8 @@ namespace System.Diagnostics {
                [MonitoringDescription ("The standard input stream of this process.")]
                public StreamWriter StandardInput {
                        get {
-                               if (input_stream == null) {
+                               if (input_stream == null)
                                        throw new InvalidOperationException("Standard input has not been redirected");
-                               }
 
                                return(input_stream);
                        }
@@ -646,9 +641,9 @@ namespace System.Diagnostics {
                [MonitoringDescription ("The standard output stream of this process.")]
                public StreamReader StandardOutput {
                        get {
-                               if (output_stream == null) {
+                               if (output_stream == null)
                                        throw new InvalidOperationException("Standard output has not been redirected");
-                               }
+
 #if NET_2_0
                                if ((async_mode & AsyncModes.AsyncOutput) != 0)
                                        throw new InvalidOperationException ("Cannot mix asynchronous and synchonous reads.");
@@ -820,9 +815,8 @@ namespace System.Diagnostics {
                        int pid = GetPid_internal();
                        IntPtr proc = GetProcess_internal(pid);
                        
-                       if (proc == IntPtr.Zero) {
+                       if (proc == IntPtr.Zero)
                                throw new SystemException("Can't find current process");
-                       }
 
                        return (new Process (proc, pid));
                }
@@ -831,9 +825,8 @@ namespace System.Diagnostics {
                {
                        IntPtr proc = GetProcess_internal(processId);
                        
-                       if (proc == IntPtr.Zero) {
+                       if (proc == IntPtr.Zero)
                                throw new ArgumentException ("Can't find process with ID " + processId.ToString ());
-                       }
 
                        return (new Process (proc, processId));
                }
@@ -943,9 +936,8 @@ namespace System.Diagnostics {
                                throw new InvalidOperationException ("UseShellExecute must be false when redirecting I/O.");
                        }
 
-                       if (startInfo.HaveEnvVars) {
+                       if (startInfo.HaveEnvVars)
                                throw new InvalidOperationException ("UseShellExecute must be false in order to use environment variables.");
-                       }
 
                        FillUserInfo (startInfo, ref proc_info);
                        try {
@@ -1128,10 +1120,8 @@ namespace System.Diagnostics {
                private static bool Start_common (ProcessStartInfo startInfo,
                                                  Process process)
                {
-                       if(startInfo.FileName == null ||
-                          startInfo.FileName == "") {
+                       if (startInfo.FileName == null || startInfo.FileName.Length == 0)
                                throw new InvalidOperationException("File name has not been set");
-                       }
                        
 #if NET_2_0
                        if (startInfo.StandardErrorEncoding != null && !startInfo.RedirectStandardError)
index c970f3079f30ca728c78a7ebd43f557ce3e0a779..56ba62d683d9179851296615dbd018dbec296074 100644 (file)
@@ -1,3 +1,7 @@
+2007-12-22  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ProcessTest.cs: Added tests for PriorityClass.
+
 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
 
        * ProcessTest.cs: Added tests for Start overloads.
index 79a2dc8a361843fddabb086a431a8d66afa43ee3..3cbb80e2fd55e35310f998ea0728d60b66f1c860 100644 (file)
@@ -51,6 +51,48 @@ namespace MonoTests.System.Diagnostics
                        }
                }
 
+               [Test]
+               public void PriorityClass_NotStarted ()
+               {
+                       Process process = new Process ();
+                       try {
+                               process.PriorityClass = ProcessPriorityClass.Normal;
+                               Assert.Fail ("#A1");
+                       } catch (InvalidOperationException ex) {
+                               // No process is associated with this object
+                               Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
+                               Assert.IsNull (ex.InnerException, "#A3");
+                               Assert.IsNotNull (ex.Message, "#A4");
+                       }
+
+                       try {
+                               Assert.Fail ("#B1:" + process.PriorityClass);
+                       } catch (InvalidOperationException ex) {
+                               // No process is associated with this object
+                               Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
+                               Assert.IsNull (ex.InnerException, "#B3");
+                               Assert.IsNotNull (ex.Message, "#B4");
+                       }
+               }
+
+               [Test]
+               public void PriorityClass_Invalid ()
+               {
+                       Process process = new Process ();
+                       try {
+                               process.PriorityClass = (ProcessPriorityClass) 666;
+                               Assert.Fail ("#1");
+                       } catch (InvalidEnumArgumentException ex) {
+                               Assert.AreEqual (typeof (InvalidEnumArgumentException), ex.GetType (), "#2");
+                               Assert.IsNull (ex.InnerException, "#3");
+                               Assert.IsNotNull (ex.Message, "#4");
+                               Assert.IsTrue (ex.Message.IndexOf ("666") != -1, "#5");
+                               Assert.IsTrue (ex.Message.IndexOf (typeof (ProcessPriorityClass).Name) != -1, "#6");
+                               Assert.IsNotNull (ex.ParamName, "#7");
+                               Assert.AreEqual ("value", ex.ParamName, "#8");
+                       }
+               }
+
                [Test] // Start ()
                public void Start1_FileName_Empty ()
                {