nunit c# source code defects report by parasoft dottest

88
dotTEST Report [09/21/11 14:13:53] Page 1 dotTEST Report [09/21/11 14:13:53] STATIC ANALYSIS Project Name Tasks suppressed / total / per 10,000 lines Files checked / total Lines checked / total loadtest-assembly 0 | 0 | 0 21 | 21 3520 | 3520 mock-assembly 0 | 0 | 0 2 | 2 340 | 340 nonamespace-assembly 0 | 0 | 0 2 | 2 64 | 64 nunit-agent.exe 0 | 0 | 0 4 | 4 236 | 236 nunit-console 0 | 9 | 92 7 | 7 969 | 969 nunit-console.exe 0 | 0 | 0 4 | 4 140 | 140 nunit-console.tests 0 | 0 | 0 5 | 5 547 | 547 nunit-gui 0 | 17 | 19 35 | 35 8549 | 8549 nunit-gui.exe 0 | 0 | 0 4 | 4 146 | 146 nunit-gui.tests 0 | 0 | 0 4 | 4 243 | 243 nunit-server.exe 0 | 0 | 0 2 | 2 76 | 76 nunit.core.dll 0 | 18 | 15 86 | 86 11963 | 11963 nunit.core.interfaces.dll 0 | 11 | 20 47 | 47 5392 | 5392 nunit.core.tests 0 | 24 | 25 78 | 78 9410 | 9410 nunit.fixtures 0 | 0 | 0 7 | 7 374 | 374 nunit.fixtures.tests 0 | 0 | 0 3 | 3 187 | 187 nunit.framework.dll 0 | 1 | 0 100 | 100 19597 | 19597 nunit.framework.tests 0 | 4 | 3 70 | 70 10837 | 10837 nunit.mocks 0 | 0 | 0 13 | 13 718 | 718 nunit.mocks.tests 0 | 0 | 0 3 | 3 556 | 556 nunit.uiexception.dll 0 | 33 | 46 46 | 46 7170 | 7170 nunit.uiexception.tests 0 | 0 | 0 35 | 35 6760 | 6760 nunit.uikit.dll 0 | 27 | 19 64 | 64 13743 | 13743 nunit.uikit.tests 0 | 0 | 0 11 | 11 1245 | 1245 nunit.util.dll 0 | 15 | 16 64 | 64 9310 | 9310 nunit.util.tests 0 | 12 | 21 47 | 47 5678 | 5678 pnunit-agent 0 | 2 | 29 5 | 5 687 | 687 pnunit-launcher 0 | 1 | 14 6 | 6 671 | 671 pnunit.framework

Upload: engineering-software-lab

Post on 08-May-2015

730 views

Category:

Technology


5 download

DESCRIPTION

Software defects report on the as a result of a Parasoft dotTEST Data Flow Analysis (Static Code Analysis ) Bugdetective scan

TRANSCRIPT

Page 1: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 1

dotTEST Report [09/21/11 14:13:53]

STATIC ANALYSIS

Project Name

Tasks suppressed / total / per 10,000 lines

Files checked / total

Lines checked / total

loadtest-assembly 0 | 0 | 0 21 | 21 3520 | 3520

mock-assembly 0 | 0 | 0 2 | 2 340 | 340

nonamespace-assembly 0 | 0 | 0 2 | 2 64 | 64

nunit-agent.exe 0 | 0 | 0 4 | 4 236 | 236

nunit-console 0 | 9 | 92 7 | 7 969 | 969

nunit-console.exe 0 | 0 | 0 4 | 4 140 | 140

nunit-console.tests 0 | 0 | 0 5 | 5 547 | 547

nunit-gui 0 | 17 | 19 35 | 35 8549 | 8549

nunit-gui.exe 0 | 0 | 0 4 | 4 146 | 146

nunit-gui.tests 0 | 0 | 0 4 | 4 243 | 243

nunit-server.exe 0 | 0 | 0 2 | 2 76 | 76

nunit.core.dll 0 | 18 | 15 86 | 86 11963 | 11963

nunit.core.interfaces.dll 0 | 11 | 20 47 | 47 5392 | 5392

nunit.core.tests 0 | 24 | 25 78 | 78 9410 | 9410

nunit.fixtures 0 | 0 | 0 7 | 7 374 | 374

nunit.fixtures.tests 0 | 0 | 0 3 | 3 187 | 187

nunit.framework.dll 0 | 1 | 0 100 | 100 19597 | 19597

nunit.framework.tests 0 | 4 | 3 70 | 70 10837 | 10837

nunit.mocks 0 | 0 | 0 13 | 13 718 | 718

nunit.mocks.tests 0 | 0 | 0 3 | 3 556 | 556

nunit.uiexception.dll 0 | 33 | 46 46 | 46 7170 | 7170

nunit.uiexception.tests 0 | 0 | 0 35 | 35 6760 | 6760

nunit.uikit.dll 0 | 27 | 19 64 | 64 13743 | 13743

nunit.uikit.tests 0 | 0 | 0 11 | 11 1245 | 1245

nunit.util.dll 0 | 15 | 16 64 | 64 9310 | 9310

nunit.util.tests 0 | 12 | 21 47 | 47 5678 | 5678

pnunit-agent 0 | 2 | 29 5 | 5 687 | 687

pnunit-launcher 0 | 1 | 14 6 | 6 671 | 671

pnunit.framework

Page 2: Nunit  C# source code  defects report by Parasoft dotTEST

Page 2 dotTEST Report [09/21/11 14:13:53]

0 | 0 | 0 3 | 3 267 | 267

pnunit.tests 0 | 0 | 0 3 | 3 80 | 80

test-assembly 0 | 0 | 0 32 | 32 3185 | 3185

test-utilities 0 | 1 | 13 7 | 7 746 | 746

timing-tests 0 | 0 | 0 3 | 3 151 | 151

Total [0:41:59] 0 | 175 | 14 823 | 823 123557 | 123557

All Tasks by Category

[38] Resources (BD.RES) [38] Ensure resources are deallocated (BD.RES.LEAKS-1) [85] Exceptions (BD.EXCEPT) [32] Avoid ArgumentNullException (BD.EXCEPT.AN-1) [53] Avoid NullReferenceException (BD.EXCEPT.NR-1) [48] Security (BD.SECURITY) [46] Prevent exposure of sensitive data (BD.SECURITY.SENS-1) [2] Protect against file name injection (BD.SECURITY.TDFNAMES-1) [4] Possible Bugs (BD.PB) [4] Do not append null value to strings (BD.PB.STRNULL-2)

[171] Severity 1 - Highest [32] Avoid ArgumentNullException (BD.EXCEPT.AN-1) [53] Avoid NullReferenceException (BD.EXCEPT.NR-1) [38] Ensure resources are deallocated (BD.RES.LEAKS-1) [46] Prevent exposure of sensitive data (BD.SECURITY.SENS-1) [2] Protect against file name injection (BD.SECURITY.TDFNAMES-1) [4] Severity 2 - High [4] Do not append null value to strings (BD.PB.STRNULL-2)

Author

Taskssuppressed/ total / recommended

daniel.l 0 175 50

Total Tasks: 175 daniel.l [175] ^nunit/nunit-console/ConsoleUi.cs180: Stream not closed: ((StreamWriter)errorWriter).stream, errorStreamWriter.stream BD.RES.LEAKS-1 . ConsoleUi.cs (36): TextWriter outWriter = Console.Out;

. ConsoleUi.cs (37): bool redirectOutput = options.output != null #x26;#x26; options.output != string.Empty;

. ConsoleUi.cs (38): if ( redirectOutput )

. ConsoleUi.cs (45): TextWriter errorWriter = Console.Error;

. ConsoleUi.cs (46): bool redirectError = options.err != null #x26;#x26; options.err != string.Empty;

. ConsoleUi.cs (47): if ( redirectError )

.C ConsoleUi.cs (49): StreamWriter errorStreamWriter = new StreamWriter( options.err ); // Allocated resource variable: new StreamWriter.stream

. ConsoleUi.cs (50): errorStreamWriter.AutoFlush = true; // Allocated resource variable: errorStreamWriter.stream! ConsoleUi.cs (51): errorWriter = errorStreamWriter; // Allocated resource variable: errorStreamWriter.stream. ConsoleUi.cs (54): TestPackage package = MakeTestPackage(options); // Allocated resource variable: ((StreamWriter)errorWriter).stream,errorStreamWriter.stream!E ConsoleUi.cs (56): Console.WriteLine("ProcessModel: {0} DomainUsage: {1}", package.Settings.Contains("ProcessModel") ?package.Settings[... // Console.WriteLine() throws: IOException // Allocated resource variable: ((StreamWriter)errorWriter).stream,errorStreamWriter.stream.P ConsoleUi.cs (180): } // Allocated resource variable: ((StreamWriter)errorWriter).stream, errorStreamWriter.stream

180: Stream not closed: ((StreamWriter)outWriter).stream, outStreamWriter.stream BD.RES.LEAKS-1 . ConsoleUi.cs (36): TextWriter outWriter = Console.Out;

. ConsoleUi.cs (37): bool redirectOutput = options.output != null #x26;#x26; options.output != string.Empty;

. ConsoleUi.cs (38): if ( redirectOutput )

.C ConsoleUi.cs (40): StreamWriter outStreamWriter = new StreamWriter( options.output ); // Allocated resource variable: newStreamWriter.stream. ConsoleUi.cs (41): outStreamWriter.AutoFlush = true; // Allocated resource variable: outStreamWriter.stream! ConsoleUi.cs (42): outWriter = outStreamWriter; // Allocated resource variable: outStreamWriter.stream. ConsoleUi.cs (45): TextWriter errorWriter = Console.Error; // Allocated resource variable: ((StreamWriter)outWriter).stream,outStreamWriter.stream. ConsoleUi.cs (46): bool redirectError = options.err != null #x26;#x26; options.err != string.Empty; // Allocated resource variable:((StreamWriter)outWriter).stream, outStreamWriter.stream. ConsoleUi.cs (47): if ( redirectError ) // Allocated resource variable: ((StreamWriter)outWriter).stream, outStreamWriter.stream!E ConsoleUi.cs (49): StreamWriter errorStreamWriter = new StreamWriter( options.err ); // StreamWriter..ctor() throws:DirectoryNotFoundException // Allocated resource variable: ((StreamWriter)outWriter).stream, outStreamWriter.stream.P ConsoleUi.cs (180): } // Allocated resource variable: ((StreamWriter)outWriter).stream, outStreamWriter.stream

324: Leakage of ToString() result ("status") via console BD.SECURITY.SENS-1

Page 3: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 3

. ConsoleUi.cs (320): string status = result.IsFailure || result.IsError ? string.Format("{0} {1}", result.FailureSite, result.ResultState) : .... TestResult.cs (160): return resultState == ResultState.Failure; }. ConsoleUi.cs (320): string status = result.IsFailure || result.IsError ? string.Format("{0} {1}", result.FailureSite, result.ResultState) : .... TestResult.cs (168): return resultState == ResultState.Error; }. ConsoleUi.cs (320): string status = result.IsFailure || result.IsError ? string.Format("{0} {1}", result.FailureSite, result.ResultState) : .... TestResult.cs (97): return resultState; }.C ConsoleUi.cs (320): string status = result.IsFailure || result.IsError ? string.Format("{0} {1}", result.FailureSite, result.ResultState) : ... // Sensitivedata: new ResultState.ToString().P ConsoleUi.cs (324): Console.WriteLine("{0}) {1} : {2}", ++reportIndex, status, result.FullName); // Sensitive data: status

nunit/nunit-console/Runner.cs90: Leakage of exception data ("ex.get_Message()") via console BD.SECURITY.SENS-1 . Runner.cs (88): catch( FileNotFoundException ex )

CP Runner.cs (90): Console.WriteLine( ex.Message ); // Sensitive data: ex.get_Message()95: Leakage of ToString() result ("ex.ToString()") via console BD.SECURITY.SENS-1 . Runner.cs (93): catch( Exception ex )

CP Runner.cs (95): Console.WriteLine( "Unhandled Exception:\n{0}", ex.ToString() ); // Sensitive data: ex.ToString()135: Leakage of reflection data ("productName") via console BD.SECURITY.SENS-1 . Runner.cs (113): Assembly executingAssembly = Assembly.GetExecutingAssembly();

. Runner.cs (114): string versionText = executingAssembly.GetName().Version.ToString();

. Runner.cs (116): string productName = "NUnit";

. Runner.cs (117): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T...

.C Runner.cs (119): object[] objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyProductAttribute), false); // Sensitive data:executingAssembly.GetCustomAttributes(...). Runner.cs (120): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs! Runner.cs (121): productName = ((AssemblyProductAttribute)objectAttrs[0]).Product; // Sensitive data: objectAttrs. Runner.cs (123): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); // Sensitive data:productName. Runner.cs (124): if ( objectAttrs.Length > 0 ) // Sensitive data: productName. Runner.cs (127): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute), false); // Sensitive data:productName. Runner.cs (128): if (objectAttrs.Length > 0) // Sensitive data: productName.P Runner.cs (135): Console.WriteLine(String.Format("{0} version {1}", productName, versionText)); // Sensitive data: productName

135: Leakage of reflection data ("versionText") via console BD.SECURITY.SENS-1 . Runner.cs (113): Assembly executingAssembly = Assembly.GetExecutingAssembly();

.C Runner.cs (114): string versionText = executingAssembly.GetName().Version.ToString(); // Sensitive data: executingAssembly.GetName()

. Runner.cs (116): string productName = "NUnit"; // Sensitive data: versionText

. Runner.cs (117): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T... //Sensitive data: versionText. Runner.cs (119): object[] objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyProductAttribute), false); // Sensitive data:versionText. Runner.cs (120): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText. Runner.cs (123): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); // Sensitive data: versionText. Runner.cs (124): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText. Runner.cs (127): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute), false); // Sensitive data:versionText. Runner.cs (128): if (objectAttrs.Length > 0) // Sensitive data: versionText.P Runner.cs (135): Console.WriteLine(String.Format("{0} version {1}", productName, versionText)); // Sensitive data: versionText

135: Leakage of reflection data ("versionText") via console BD.SECURITY.SENS-1 . Runner.cs (113): Assembly executingAssembly = Assembly.GetExecutingAssembly();

. Runner.cs (114): string versionText = executingAssembly.GetName().Version.ToString();

. Runner.cs (116): string productName = "NUnit";

. Runner.cs (117): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T...

. Runner.cs (119): object[] objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyProductAttribute), false);

. Runner.cs (120): if ( objectAttrs.Length > 0 )

. Runner.cs (123): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);

. Runner.cs (124): if ( objectAttrs.Length > 0 )

.C Runner.cs (127): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute), false); // Sensitive data:executingAssembly.GetCustomAttributes(...). Runner.cs (128): if (objectAttrs.Length > 0) // Sensitive data: objectAttrs! Runner.cs (130): string configText = ((AssemblyConfigurationAttribute)objectAttrs[0]).Configuration; // Sensitive data: objectAttrs. Runner.cs (131): if (configText != "") // Sensitive data: configText! Runner.cs (132): versionText += string.Format(" ({0})", configText); // Sensitive data: configText.P Runner.cs (135): Console.WriteLine(String.Format("{0} version {1}", productName, versionText)); // Sensitive data: versionText

136: Leakage of reflection data ("copyrightText") via console BD.SECURITY.SENS-1 . Runner.cs (113): Assembly executingAssembly = Assembly.GetExecutingAssembly();

. Runner.cs (114): string versionText = executingAssembly.GetName().Version.ToString();

. Runner.cs (116): string productName = "NUnit";

. Runner.cs (117): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T...

. Runner.cs (119): object[] objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyProductAttribute), false);

. Runner.cs (120): if ( objectAttrs.Length > 0 )

.C Runner.cs (123): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); // Sensitive data:executingAssembly.GetCustomAttributes(...). Runner.cs (124): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs! Runner.cs (125): copyrightText = ((AssemblyCopyrightAttribute)objectAttrs[0]).Copyright; // Sensitive data: objectAttrs. Runner.cs (127): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute), false); // Sensitive data:copyrightText. Runner.cs (128): if (objectAttrs.Length > 0) // Sensitive data: copyrightText

Page 4: Nunit  C# source code  defects report by Parasoft dotTEST

Page 4 dotTEST Report [09/21/11 14:13:53]

. Runner.cs (135): Console.WriteLine(String.Format("{0} version {1}", productName, versionText)); // Sensitive data: copyrightText

.P Runner.cs (136): Console.WriteLine(copyrightText); // Sensitive data: copyrightTextnunit/nunit-gui/AboutBox.cs66: Leakage of reflection data ("versionText") via Windows Forms control BD.SECURITY.SENS-1 . AboutBox.cs (34): private System.ComponentModel.Container components = null;

. AboutBox.cs (36): public AboutBox()

. AboutBox.cs (41): InitializeComponent();

. AboutBox.cs (46): Assembly executingAssembly = Assembly.GetExecutingAssembly();

.C AboutBox.cs (47): string versionText = executingAssembly.GetName().Version.ToString(); // Sensitive data: executingAssembly.GetName()

. AboutBox.cs (49): object [] objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false); //Sensitive data: versionText. AboutBox.cs (50): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText. AboutBox.cs (53): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute), false); // Sensitive data:versionText. AboutBox.cs (54): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText. AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C.T... // Sensitive data: versionText. AboutBox.cs (62): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); // Sensitive data:versionText. AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText.P AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data: versionText

66: Leakage of reflection data ("versionText") via Windows Forms control BD.SECURITY.SENS-1 . AboutBox.cs (34): private System.ComponentModel.Container components = null;

. AboutBox.cs (36): public AboutBox()

. AboutBox.cs (41): InitializeComponent();

. AboutBox.cs (46): Assembly executingAssembly = Assembly.GetExecutingAssembly();

. AboutBox.cs (47): string versionText = executingAssembly.GetName().Version.ToString();

.C AboutBox.cs (49): object [] objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false); //Sensitive data: executingAssembly.GetCustomAttributes(...). AboutBox.cs (50): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs! AboutBox.cs (51): versionText = ((AssemblyInformationalVersionAttribute)objectAttrs[0]).InformationalVersion; // Sensitive data: objectAttrs. AboutBox.cs (53): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute), false); // Sensitive data:versionText. AboutBox.cs (54): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText. AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C.T... // Sensitive data: versionText. AboutBox.cs (62): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); // Sensitive data:versionText. AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText.P AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data: versionText

66: Leakage of reflection data ("versionText") via Windows Forms control BD.SECURITY.SENS-1 .C AboutBox.cs (53): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute), false); // Sensitive data:

executingAssembly.GetCustomAttributes(...). AboutBox.cs (54): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs! AboutBox.cs (56): string configText = ((AssemblyConfigurationAttribute)objectAttrs[0]).Configuration; // Sensitive data: objectAttrs. AboutBox.cs (57): if ( configText != "" ) // Sensitive data: configText! AboutBox.cs (58): versionText += string.Format(" ({0})",configText); // Sensitive data: configText. AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C.T... // Sensitive data: versionText. AboutBox.cs (62): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); // Sensitive data:versionText. AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText.P AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data: versionText

67: Leakage of reflection data ("copyrightText") via Windows Forms control BD.SECURITY.SENS-1 . AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T...

.C AboutBox.cs (62): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); // Sensitive data:executingAssembly.GetCustomAttributes(...). AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs! AboutBox.cs (64): copyrightText = ((AssemblyCopyrightAttribute)objectAttrs[0]).Copyright; // Sensitive data: objectAttrs. AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data: copyrightText.P AboutBox.cs (67): copyright.Text = copyrightText; // Sensitive data: copyrightText

nunit/nunit-gui/ExceptionDetailsForm.cs118: Leakage of ToString() result ("this.FormatMessage(...)") via Windows Forms control BD.SECURITY.SENS-1 ! ExceptionDetailsForm.cs (118): this.message.Text = FormatMessage( exception );

. ExceptionDetailsForm.cs (126): StringBuilder sb = new StringBuilder();

. ExceptionDetailsForm.cs (128): Exception ex = exception; ex != null

. ExceptionDetailsForm.cs (130): if ( ex != exception )

.C ExceptionDetailsForm.cs (131): sb.Append( ex.GetType().ToString() ); // Sensitive data: ex.GetType().ToString()

. ExceptionDetailsForm.cs (132): sb.Append( ": " ); // Sensitive data: sb

. ExceptionDetailsForm.cs (133): sb.Append( ex.Message ); // Sensitive data: sb

. ExceptionDetailsForm.cs (128): ex != null; ex = ex.InnerException // Sensitive data: sb! ExceptionDetailsForm.cs (136): return sb.ToString(); // Sensitive data: sb! ExceptionDetailsForm.cs (137): } // Sensitive data: CS$1$0000.P ExceptionDetailsForm.cs (118): this.message.Text = FormatMessage( exception ); // Sensitive data: this.FormatMessage(...)

118: Leakage of exception data ("this.FormatMessage(...)") via Windows Forms control BD.SECURITY.SENS-1 ! ExceptionDetailsForm.cs (118): this.message.Text = FormatMessage( exception );

. ExceptionDetailsForm.cs (126): StringBuilder sb = new StringBuilder();

Page 5: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 5

. ExceptionDetailsForm.cs (128): Exception ex = exception; ex != null

. ExceptionDetailsForm.cs (130): if ( ex != exception )

. ExceptionDetailsForm.cs (131): sb.Append( ex.GetType().ToString() );

. ExceptionDetailsForm.cs (132): sb.Append( ": " );

.C ExceptionDetailsForm.cs (133): sb.Append( ex.Message ); // Sensitive data: ex.get_Message()

. ExceptionDetailsForm.cs (128): ex != null; ex = ex.InnerException // Sensitive data: sb! ExceptionDetailsForm.cs (136): return sb.ToString(); // Sensitive data: sb! ExceptionDetailsForm.cs (137): } // Sensitive data: CS$1$0000.P ExceptionDetailsForm.cs (118): this.message.Text = FormatMessage( exception ); // Sensitive data: this.FormatMessage(...)

121: Leakage of ToString() result ("this.FormatStackTrace(...)") via Windows Forms control BD.SECURITY.SENS-1 ! ExceptionDetailsForm.cs (121): this.stackTrace.Text = FormatStackTrace( exception );

! ExceptionDetailsForm.cs (142): AppendStackTrace( sb, exception );.C ExceptionDetailsForm.cs (152): sb.Append( ex.GetType().ToString() );. ExceptionDetailsForm.cs (153): sb.Append( "...\r\n" );. ExceptionDetailsForm.cs (154): sb.Append( ex.StackTrace );. ExceptionDetailsForm.cs (155): sb.Append( "\r\n\r\n" );. ExceptionDetailsForm.cs (156): }! ExceptionDetailsForm.cs (144): return sb.ToString(); // Sensitive data: *sb! ExceptionDetailsForm.cs (145): } // Sensitive data: CS$1$0000.P ExceptionDetailsForm.cs (121): this.stackTrace.Text = FormatStackTrace( exception ); // Sensitive data: this.FormatStackTrace(...)

121: Leakage of exception data ("this.FormatStackTrace(...)") via Windows Forms control BD.SECURITY.SENS-1 ! ExceptionDetailsForm.cs (121): this.stackTrace.Text = FormatStackTrace( exception );

! ExceptionDetailsForm.cs (142): AppendStackTrace( sb, exception );. ExceptionDetailsForm.cs (152): sb.Append( ex.GetType().ToString() );. ExceptionDetailsForm.cs (153): sb.Append( "...\r\n" );.C ExceptionDetailsForm.cs (154): sb.Append( ex.StackTrace );. ExceptionDetailsForm.cs (155): sb.Append( "\r\n\r\n" );. ExceptionDetailsForm.cs (156): }! ExceptionDetailsForm.cs (144): return sb.ToString(); // Sensitive data: *sb! ExceptionDetailsForm.cs (145): } // Sensitive data: CS$1$0000.P ExceptionDetailsForm.cs (121): this.stackTrace.Text = FormatStackTrace( exception ); // Sensitive data: this.FormatStackTrace(...)

nunit/nunit-gui/NUnitForm.cs1631: "this.get_TestLoader().get_AssemblyInfo()" may possibly be null BD.EXCEPT.NR-1 . NUnitForm.cs (1628): if ( e.Name != null #x26;#x26; File.Exists( e.Name ) )

. TestEventArgs.cs (199): return name; }

. NUnitForm.cs (1628): if ( e.Name != null #x26;#x26; File.Exists( e.Name ) )

. TestEventArgs.cs (199): return name; }

. NUnitForm.cs (1628): if ( e.Name != null #x26;#x26; File.Exists( e.Name ) )

. NUnitForm.cs (1630): Version version = Environment.Version;

. NUnitForm.cs (1631): TestLoader.AssemblyInfo

. NUnitForm.cs (814): if ( _testLoader == null )

. NUnitForm.cs (816): return _testLoader;

. NUnitForm.cs (817): }! NUnitForm.cs (1631): TestLoader.AssemblyInfo! TestLoader.cs (179): return testRunner == null ? null : testRunner.AssemblyInfo;.C ProxyTestRunner.cs (76): return testRunner == null ? null : testRunner.AssemblyInfo; } // Null value carrier: CS$1$0000! TestLoader.cs (179): return testRunner == null ? null : testRunner.AssemblyInfo; } // Null value carrier: this.testRunner.get_AssemblyInfo().P NUnitForm.cs (1631): TestLoader.AssemblyInfo // Null value carrier: this.get_TestLoader().get_AssemblyInfo()

1631: "this.get_TestLoader().get_AssemblyInfo()" may possibly be null BD.EXCEPT.NR-1 . NUnitForm.cs (1628): if ( e.Name != null #x26;#x26; File.Exists( e.Name ) )

. TestEventArgs.cs (199): return name; }

. NUnitForm.cs (1628): if ( e.Name != null #x26;#x26; File.Exists( e.Name ) )

. TestEventArgs.cs (199): return name; }

. NUnitForm.cs (1628): if ( e.Name != null #x26;#x26; File.Exists( e.Name ) )

. NUnitForm.cs (1630): Version version = Environment.Version;

. NUnitForm.cs (1631): TestLoader.AssemblyInfo

. NUnitForm.cs (814): if ( _testLoader == null )

. NUnitForm.cs (816): return _testLoader;

. NUnitForm.cs (817): }! NUnitForm.cs (1631): TestLoader.AssemblyInfo.C TestLoader.cs (179): return testRunner == null ? null : testRunner.AssemblyInfo; } // Null value carrier: CS$1$0000.P NUnitForm.cs (1631): TestLoader.AssemblyInfo // Null value carrier: this.get_TestLoader().get_AssemblyInfo()

1678: "this.get_TestLoader().get_AssemblyInfo()" may possibly be null BD.EXCEPT.NR-1 . NUnitForm.cs (1669): if ( longOpDisplay != null )

. NUnitForm.cs (1674): EnableRunCommand( true );

. NUnitForm.cs (1809): runButton.Enabled = enable;

. NUnitForm.cs (1810): runAllMenuItem.Enabled = enable;

. NUnitForm.cs (1811): runSelectedMenuItem.Enabled = enable;

. NUnitForm.cs (1812): runFailedMenuItem.Enabled = enable #x26;#x26; this.TestLoader.TestResult != null #x26;#x26;(this.TestLoader.TestResult.ResultState == R.... NUnitForm.cs (814): if ( _testLoader == null ). NUnitForm.cs (816): return _testLoader;. NUnitForm.cs (817): }. NUnitForm.cs (1812): runFailedMenuItem.Enabled = enable #x26;#x26; this.TestLoader.TestResult != null #x26;#x26;(this.TestLoader.TestResult.ResultState == R.... TestLoader.cs (169): return testResult; }. NUnitForm.cs (1812): runFailedMenuItem.Enabled = enable #x26;#x26; this.TestLoader.TestResult != null #x26;#x26;(this.TestLoader.TestResult.ResultState == R...

Page 6: Nunit  C# source code  defects report by Parasoft dotTEST

Page 6 dotTEST Report [09/21/11 14:13:53]

. NUnitForm.cs (1815): }

. NUnitForm.cs (1676): if ( TestLoader.TestCount == 0 )

. NUnitForm.cs (814): if ( _testLoader == null )

. NUnitForm.cs (816): return _testLoader;

. NUnitForm.cs (817): }

. NUnitForm.cs (1676): if ( TestLoader.TestCount == 0 )

. TestLoader.cs (184): return loadedTest == null ? 0 : loadedTest.TestCount; }

. NUnitForm.cs (1676): if ( TestLoader.TestCount == 0 )

. NUnitForm.cs (1678): TestLoader.AssemblyInfo

. NUnitForm.cs (814): if ( _testLoader == null )

. NUnitForm.cs (816): return _testLoader;

. NUnitForm.cs (817): }! NUnitForm.cs (1678): TestLoader.AssemblyInfo! TestLoader.cs (179): return testRunner == null ? null : testRunner.AssemblyInfo;.C ProxyTestRunner.cs (76): return testRunner == null ? null : testRunner.AssemblyInfo; } // Null value carrier: CS$1$0000! TestLoader.cs (179): return testRunner == null ? null : testRunner.AssemblyInfo; } // Null value carrier: this.testRunner.get_AssemblyInfo().P NUnitForm.cs (1678): TestLoader.AssemblyInfo // Null value carrier: this.get_TestLoader().get_AssemblyInfo()

1678: "this.get_TestLoader().get_AssemblyInfo()" may possibly be null BD.EXCEPT.NR-1 . NUnitForm.cs (1669): if ( longOpDisplay != null )

. NUnitForm.cs (1674): EnableRunCommand( true );

. NUnitForm.cs (1809): runButton.Enabled = enable;

. NUnitForm.cs (1810): runAllMenuItem.Enabled = enable;

. NUnitForm.cs (1811): runSelectedMenuItem.Enabled = enable;

. NUnitForm.cs (1812): runFailedMenuItem.Enabled = enable #x26;#x26; this.TestLoader.TestResult != null #x26;#x26;(this.TestLoader.TestResult.ResultState == R.... NUnitForm.cs (814): if ( _testLoader == null ). NUnitForm.cs (816): return _testLoader;. NUnitForm.cs (817): }. NUnitForm.cs (1812): runFailedMenuItem.Enabled = enable #x26;#x26; this.TestLoader.TestResult != null #x26;#x26;(this.TestLoader.TestResult.ResultState == R.... TestLoader.cs (169): return testResult; }. NUnitForm.cs (1812): runFailedMenuItem.Enabled = enable #x26;#x26; this.TestLoader.TestResult != null #x26;#x26;(this.TestLoader.TestResult.ResultState == R.... NUnitForm.cs (1815): }. NUnitForm.cs (1676): if ( TestLoader.TestCount == 0 ). NUnitForm.cs (814): if ( _testLoader == null ). NUnitForm.cs (816): return _testLoader;. NUnitForm.cs (817): }. NUnitForm.cs (1676): if ( TestLoader.TestCount == 0 ). TestLoader.cs (184): return loadedTest == null ? 0 : loadedTest.TestCount; }. NUnitForm.cs (1676): if ( TestLoader.TestCount == 0 ). NUnitForm.cs (1678): TestLoader.AssemblyInfo. NUnitForm.cs (814): if ( _testLoader == null ). NUnitForm.cs (816): return _testLoader;. NUnitForm.cs (817): }! NUnitForm.cs (1678): TestLoader.AssemblyInfo.C TestLoader.cs (179): return testRunner == null ? null : testRunner.AssemblyInfo; } // Null value carrier: CS$1$0000.P NUnitForm.cs (1678): TestLoader.AssemblyInfo // Null value carrier: this.get_TestLoader().get_AssemblyInfo()

nunit/nunit-gui/ProjectEditor.cs684: "this.selectedConfig" may possibly be null BD.EXCEPT.NR-1 . ProjectEditor.cs (682): selectedConfig = project.Configs[(string)configComboBox.SelectedItem];

. NUnitProject.cs (267): return configs; }! ProjectEditor.cs (682): selectedConfig = project.Configs[(string)configComboBox.SelectedItem];. ProjectConfigCollection.cs (34): int index = IndexOf( name );. ProjectConfigCollection.cs (63): int index = 0; index < InnerList.Count. ProjectConfigCollection.cs (70): return -1;. ProjectConfigCollection.cs (71): }. ProjectConfigCollection.cs (34): int index = IndexOf( name );.C ProjectConfigCollection.cs (35): return index >= 0 ? (ProjectConfig)InnerList[index]: null; // Null value carrier: CS$1$0000! ProjectConfigCollection.cs (36): } // Null value carrier: CS$1$0000! ProjectEditor.cs (682): selectedConfig = project.Configs[(string)configComboBox.SelectedItem]; // Null value carrier:this.project.get_Configs().get_Item(...).P ProjectEditor.cs (684): RuntimeFramework framework = selectedConfig.RuntimeFramework; // Null value carrier: this.selectedConfig

702: Leakage of ToString() result ("version.ToString()") via Windows Forms control BD.SECURITY.SENS-1 CP ProjectEditor.cs (702): runtimeVersionComboBox.Text = version.ToString(); // Sensitive data: version.ToString()888: "applicationBase" may possibly be null BD.PB.STRNULL-2 . ProjectEditor.cs (863): if ( applicationBaseTextBox.Text != String.Empty )

.C ProjectEditor.cs (865): string applicationBase = null; // Null value carrier: applicationBase!E ProjectEditor.cs (869): applicationBase = Path.Combine( project.BasePath, applicationBaseTextBox.Text ); // NUnitProject.get_BasePath()throws: PathTooLongException // Null value carrier: applicationBase. NUnitProject.cs (133): if ( !BasePathSpecified )!E NUnitProject.cs (134): return DefaultBasePath; // NUnitProject.get_DefaultBasePath() throws: PathTooLongException!E NUnitProject.cs (111): return Path.GetDirectoryName( projectPath ); } // Path.GetDirectoryName() throws: PathTooLongException. ProjectEditor.cs (872): catch( Exception exception ) // Null value carrier: applicationBase. ProjectEditor.cs (874): applicationBaseTextBox.SelectAll(); // Null value carrier: applicationBase. ProjectEditor.cs (875): UserMessage.DisplayFailure( exception, "Invalid ApplicationBase" ); // Null value carrier: applicationBase. ProjectEditor.cs (876): e.Cancel = true; // Null value carrier: applicationBase. ProjectEditor.cs (877): } // Null value carrier: applicationBase

Page 7: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 7

. ProjectEditor.cs (886): if ( !Directory.Exists( applicationBase ) ) // Null value carrier: applicationBase

.P ProjectEditor.cs (888): string msg = string.Format( "The directory {0} does not exist. Do you want to create it?", applicationBase ); // Null valuecarrier: applicationBase

nunit/nunit-gui/SettingsPages/AdvancedLoaderSettingsPage.cs153: Leakage of ToString() result ("this.settings.GetSetting(...)") via Windows Forms control BD.SECURITY.SENS-1 . AdvancedLoaderSettingsPage.cs (150): this.settings = Services.UserSettings;

. Services.cs (68): if ( userSettings == null )

. Services.cs (73): if ( userSettings == null )

. Services.cs (76): return userSettings;

. Services.cs (77): }

. AdvancedLoaderSettingsPage.cs (150): this.settings = Services.UserSettings;

. AdvancedLoaderSettingsPage.cs (152): enableShadowCopyCheckBox.Checked = settings.GetSetting( "Options.TestLoader.ShadowCopyFiles",true );. SettingsGroup.cs (150): object result = GetSetting(settingName );. SettingsGroup.cs (68): return storage.GetSetting( settingName );. SettingsGroup.cs (69): }. SettingsGroup.cs (150): object result = GetSetting(settingName );. SettingsGroup.cs (152): if ( result == null ). SettingsGroup.cs (153): return defaultValue;. SettingsGroup.cs (176): }. AdvancedLoaderSettingsPage.cs (152): enableShadowCopyCheckBox.Checked = settings.GetSetting( "Options.TestLoader.ShadowCopyFiles",true );! AdvancedLoaderSettingsPage.cs (153): shadowCopyPathTextBox.Text = settings.GetSetting("Options.TestLoader.ShadowCopyPath", "");. SettingsGroup.cs (187): object result = GetSetting(settingName );. SettingsGroup.cs (68): return storage.GetSetting( settingName );. SettingsGroup.cs (69): }. SettingsGroup.cs (187): object result = GetSetting(settingName );. SettingsGroup.cs (189): if ( result == null ). SettingsGroup.cs (192): if ( result is string ).C SettingsGroup.cs (195): return result.ToString(); // Sensitive data: result.ToString()! SettingsGroup.cs (196): } // Sensitive data: CS$1$0000.P AdvancedLoaderSettingsPage.cs (153): shadowCopyPathTextBox.Text = settings.GetSetting("Options.TestLoader.ShadowCopyPath", ""); //Sensitive data: this.settings.GetSetting(...)

nunit/nunit-gui/TestAssemblyInfoForm.cs128: Leakage of reflection data ("text") via Windows Forms control BD.SECURITY.SENS-1 . TestAssemblyInfoForm.cs (24): this.Text = "Test Assemblies";

. TestAssemblyInfoForm.cs (25): this.TextBox.WordWrap = false;

. ScrollingTextDisplayForm.cs (115): return textBox; }

. TestAssemblyInfoForm.cs (25): this.TextBox.WordWrap = false;

. TestAssemblyInfoForm.cs (27): this.TextBox.Font = new System.Drawing.Font(FontFamily.GenericMonospace, 8.25F);

. ScrollingTextDisplayForm.cs (115): return textBox; }

. TestAssemblyInfoForm.cs (27): this.TextBox.Font = new System.Drawing.Font(FontFamily.GenericMonospace, 8.25F);

. TestAssemblyInfoForm.cs (29): base.OnLoad(e);

. ScrollingTextDisplayForm.cs (125): base.OnLoad(e);

. ScrollingTextDisplayForm.cs (127): SetMessageLabelSize();

. ScrollingTextDisplayForm.cs (137): Rectangle rect = message.ClientRectangle;

. ScrollingTextDisplayForm.cs (138): Graphics g = Graphics.FromHwnd(Handle);

. ScrollingTextDisplayForm.cs (139): SizeF sizeNeeded = g.MeasureString(message.Text, message.Font, rect.Width);

. ScrollingTextDisplayForm.cs (140): int delta = sizeNeeded.ToSize().Height - rect.Height;

. ScrollingTextDisplayForm.cs (142): message.Height += delta;

. ScrollingTextDisplayForm.cs (143): textBox.Top += delta;

. ScrollingTextDisplayForm.cs (144): textBox.Height -= delta;

. ScrollingTextDisplayForm.cs (145): }

. ScrollingTextDisplayForm.cs (128): }

. TestAssemblyInfoForm.cs (31): Process p = Process.GetCurrentProcess();

. TestAssemblyInfoForm.cs (32): int currentProcessId = p.Id;

. TestAssemblyInfoForm.cs (33): string currentDomainName = "";

.C TestAssemblyInfoForm.cs (35): AppendProcessInfo( currentProcessId, Path.GetFileName(Assembly.GetEntryAssembly().Location),RuntimeFramework.CurrentFra... // Sensitive data: GetEntryAssembly().get_Location()! TestAssemblyInfoForm.cs (69): AppendBoldText(string.Format("{0} ( {1} )\r\n", moduleName, pid)); // Sensitive data: moduleName. TestAssemblyInfoForm.cs (125): TextBox.Select(TextBox.Text.Length, 0); // Sensitive data: text. TestAssemblyInfoForm.cs (126): TextBox.SelectionFont = new Font(TextBox.Font, FontStyle.Bold); // Sensitive data: text.P TestAssemblyInfoForm.cs (128): TextBox.SelectedText += text; // Sensitive data: text

nunit/nunit.core.dll/AssemblyResolver.cs99: Stream not closed: this.fs, this.rdr.m_stream BD.RES.LEAKS-1 . AssemblyResolver.cs (80): string fullName = args.Name;

. AssemblyResolver.cs (81): int index = fullName.IndexOf(',');

. AssemblyResolver.cs (82): if(index == -1)

. AssemblyResolver.cs (88): if ( _cache.Contains( fullName ) )

. AssemblyResolver.cs (28): return _resolved.ContainsKey( name );

. AssemblyResolver.cs (29): }

. AssemblyResolver.cs (88): if ( _cache.Contains( fullName ) )

. AssemblyResolver.cs (94): string dir in _dirs

. AssemblyResolver.cs (96): string file in Directory.GetFiles( dir, "*.dll" )

. AssemblyResolver.cs (98): string fullFile = Path.Combine( dir, file );EP AssemblyResolver.cs (99): AssemblyReader rdr = new AssemblyReader(fullFile); // AssemblyReader..ctor() throws: IOException // Allocatedresource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (22): UInt16 dos_magic = 0xffff;

Page 8: Nunit  C# source code  defects report by Parasoft dotTEST

Page 8 dotTEST Report [09/21/11 14:13:53]

. AssemblyReader.cs (23): UInt32 pe_signature = 0xffffffff;

. AssemblyReader.cs (29): private uint peHeader = 0;

. AssemblyReader.cs (30): private uint fileHeader = 0;

. AssemblyReader.cs (31): private uint optionalHeader = 0;

. AssemblyReader.cs (32): private uint dataDirectory = 0;

. AssemblyReader.cs (33): private uint dataSections = 0;

. AssemblyReader.cs (44): public AssemblyReader( string assemblyPath )

. AssemblyReader.cs (46): this.assemblyPath = assemblyPath;!E AssemblyReader.cs (47): CalcHeaderOffsets(); // AssemblyReader.CalcHeaderOffsets() throws: IOException.C AssemblyReader.cs (58): this.fs = new FileStream( assemblyPath, FileMode.Open, FileAccess.Read ); // Allocated resource variable: newFileStream! AssemblyReader.cs (59): this.rdr = new BinaryReader( fs ); // Allocated resource variable: this.fs!E AssemblyReader.cs (60): dos_magic = rdr.ReadUInt16(); // BinaryReader.ReadUInt16() throws: IOException // Allocated resource variable:this.fs, this.rdr.m_stream

122: Stream not closed: rdr.fs, rdr.rdr.m_stream BD.RES.LEAKS-1 . AssemblyResolver.cs (80): string fullName = args.Name;

. AssemblyResolver.cs (81): int index = fullName.IndexOf(',');

. AssemblyResolver.cs (82): if(index == -1)

. AssemblyResolver.cs (88): if ( _cache.Contains( fullName ) )

. AssemblyResolver.cs (28): return _resolved.ContainsKey( name );

. AssemblyResolver.cs (29): }

. AssemblyResolver.cs (88): if ( _cache.Contains( fullName ) )

. AssemblyResolver.cs (94): string dir in _dirs

. AssemblyResolver.cs (96): string file in Directory.GetFiles( dir, "*.dll" )

. AssemblyResolver.cs (98): string fullFile = Path.Combine( dir, file );! AssemblyResolver.cs (99): AssemblyReader rdr = new AssemblyReader(fullFile);. AssemblyReader.cs (22): UInt16 dos_magic = 0xffff;. AssemblyReader.cs (23): UInt32 pe_signature = 0xffffffff;. AssemblyReader.cs (29): private uint peHeader = 0;. AssemblyReader.cs (30): private uint fileHeader = 0;. AssemblyReader.cs (31): private uint optionalHeader = 0;. AssemblyReader.cs (32): private uint dataDirectory = 0;. AssemblyReader.cs (33): private uint dataSections = 0;. AssemblyReader.cs (44): public AssemblyReader( string assemblyPath ). AssemblyReader.cs (46): this.assemblyPath = assemblyPath;! AssemblyReader.cs (47): CalcHeaderOffsets();.C AssemblyReader.cs (58): this.fs = new FileStream( assemblyPath, FileMode.Open, FileAccess.Read ); // Allocated resource variable: newFileStream! AssemblyReader.cs (59): this.rdr = new BinaryReader( fs ); // Allocated resource variable: this.fs. AssemblyReader.cs (60): dos_magic = rdr.ReadUInt16(); // Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (61): if ( dos_magic == 0x5a4d ) // Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (101): } // Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (48): } // Allocated resource variable: this.fs, this.rdr.m_stream! AssemblyResolver.cs (99): AssemblyReader rdr = new AssemblyReader(fullFile); // Allocated resource variable: new AssemblyReader.fs, newAssemblyReader.rdr.m_stream. AssemblyResolver.cs (102): if (rdr.IsDotNetFile) // Allocated resource variable: rdr.fs, rdr.rdr.m_stream. AssemblyReader.cs (130): return IsValidPeFile #x26;#x26; numDataDirectoryEntries > 14 #x26;#x26; DataDirectoryRva(14) != 0; // Allocatedresource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (125): return dos_magic == 0x5a4d #x26;#x26; pe_signature == 0x00004550; } // Allocated resource variable: this.fs,this.rdr.m_stream. AssemblyReader.cs (130): return IsValidPeFile #x26;#x26; numDataDirectoryEntries > 14 #x26;#x26; DataDirectoryRva(14) != 0; } // Allocatedresource variable: this.fs, this.rdr.m_stream. AssemblyResolver.cs (102): if (rdr.IsDotNetFile) // Allocated resource variable: rdr.fs, rdr.rdr.m_stream. AssemblyResolver.cs (111): } // Allocated resource variable: rdr.fs, rdr.rdr.m_stream. AssemblyResolver.cs (117): } // Allocated resource variable: rdr.fs, rdr.rdr.m_stream. AssemblyResolver.cs (96): in // Allocated resource variable: rdr.fs, rdr.rdr.m_stream. AssemblyResolver.cs (94): in // Allocated resource variable: rdr.fs, rdr.rdr.m_stream!E AssemblyResolver.cs (120): log.Debug( string.Format( "Not in Cache: {0}", fullName) ); // String.Format() throws: FormatException // Allocatedresource variable: rdr.fs, rdr.rdr.m_stream.P AssemblyResolver.cs (122): } // Allocated resource variable: rdr.fs, rdr.rdr.m_stream

nunit/nunit.core.dll/Builders/NUnitTestCaseBuilder.cs347: "arglist" may possibly be null BD.EXCEPT.NR-1 . NUnitTestCaseBuilder.cs (241): if (testMethod.Method.IsAbstract)

. TestMethod.cs (110): return method; }

. NUnitTestCaseBuilder.cs (241): if (testMethod.Method.IsAbstract)

. NUnitTestCaseBuilder.cs (248): if (!testMethod.Method.IsPublic)

. TestMethod.cs (110): return method; }

. NUnitTestCaseBuilder.cs (248): if (!testMethod.Method.IsPublic)

. NUnitTestCaseBuilder.cs (255): ParameterInfo[] parameters = testMethod.Method.GetParameters();

. TestMethod.cs (110): return method; }

. NUnitTestCaseBuilder.cs (255): ParameterInfo[] parameters = testMethod.Method.GetParameters();

. NUnitTestCaseBuilder.cs (256): int argsNeeded = parameters.Length;

.C NUnitTestCaseBuilder.cs (258): object[] arglist = null; // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (259): int argsProvided = 0; // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (261): if (parms != null) // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (279): if (!testMethod.Method.ReturnType.Equals(typeof(void)) #x26;#x26; (parms == null || !parms.HasExpectedResult#x26;#x26; parms.ExpectedEx... // Null value carrier: arglist. NUnitTestCaseBuilder.cs (287): if (argsProvided > 0 #x26;#x26; argsNeeded == 0) // Null value carrier: arglist. NUnitTestCaseBuilder.cs (294): if (argsProvided == 0 #x26;#x26; argsNeeded > 0) // Null value carrier: arglist

Page 9: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 9

. NUnitTestCaseBuilder.cs (323): if (argsProvided != argsNeeded ) // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (331): if (testMethod.Method.IsGenericMethodDefinition) // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (333): Type[] typeArguments = GetTypeArgumentsForMethod(testMethod.Method, arglist); // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (368): Type[] typeParameters = method.GetGenericArguments(); // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (369): Type[] typeArguments = new Type[typeParameters.Length]; // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (370): ParameterInfo[] parameters = method.GetParameters(); // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (372): int typeIndex = 0; typeIndex < typeArguments.Length // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (385): return typeArguments; // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (386): } // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (333): Type[] typeArguments = GetTypeArgumentsForMethod(testMethod.Method, arglist); // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (334): in typeArguments // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (342): testMethod.method = testMethod.Method.MakeGenericMethod(typeArguments); // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (343): parameters = testMethod.Method.GetParameters(); // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (345): int i = 0; i < parameters.Length // Null value carrier: arglist

.P NUnitTestCaseBuilder.cs (347): if (arglist[i].GetType() != parameters[i].ParameterType #x26;#x26; arglist[i] is IConvertible) // Null value carrier:arglist

379: "arglist" may possibly be null BD.EXCEPT.NR-1 . NUnitTestCaseBuilder.cs (241): if (testMethod.Method.IsAbstract)

. TestMethod.cs (110): return method; }

. NUnitTestCaseBuilder.cs (241): if (testMethod.Method.IsAbstract)

. NUnitTestCaseBuilder.cs (248): if (!testMethod.Method.IsPublic)

. TestMethod.cs (110): return method; }

. NUnitTestCaseBuilder.cs (248): if (!testMethod.Method.IsPublic)

. NUnitTestCaseBuilder.cs (255): ParameterInfo[] parameters = testMethod.Method.GetParameters();

. TestMethod.cs (110): return method; }

. NUnitTestCaseBuilder.cs (255): ParameterInfo[] parameters = testMethod.Method.GetParameters();

. NUnitTestCaseBuilder.cs (256): int argsNeeded = parameters.Length;

.C NUnitTestCaseBuilder.cs (258): object[] arglist = null; // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (259): int argsProvided = 0; // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (261): if (parms != null) // Null value carrier: arglist

. NUnitTestCaseBuilder.cs (279): if (!testMethod.Method.ReturnType.Equals(typeof(void)) #x26;#x26; (parms == null || !parms.HasExpectedResult#x26;#x26; parms.ExpectedEx... // Null value carrier: arglist. NUnitTestCaseBuilder.cs (287): if (argsProvided > 0 #x26;#x26; argsNeeded == 0) // Null value carrier: arglist. NUnitTestCaseBuilder.cs (294): if (argsProvided == 0 #x26;#x26; argsNeeded > 0) // Null value carrier: arglist. NUnitTestCaseBuilder.cs (323): if (argsProvided != argsNeeded ) // Null value carrier: arglist. NUnitTestCaseBuilder.cs (331): if (testMethod.Method.IsGenericMethodDefinition) // Null value carrier: arglist! NUnitTestCaseBuilder.cs (333): Type[] typeArguments = GetTypeArgumentsForMethod(testMethod.Method, arglist); // Null value carrier: arglist. NUnitTestCaseBuilder.cs (368): Type[] typeParameters = method.GetGenericArguments(); // Null value carrier: arglist. NUnitTestCaseBuilder.cs (369): Type[] typeArguments = new Type[typeParameters.Length]; // Null value carrier: arglist. NUnitTestCaseBuilder.cs (370): ParameterInfo[] parameters = method.GetParameters(); // Null value carrier: arglist. NUnitTestCaseBuilder.cs (372): int typeIndex = 0; typeIndex < typeArguments.Length // Null value carrier: arglist. NUnitTestCaseBuilder.cs (374): Type typeParameter = typeParameters[typeIndex]; // Null value carrier: arglist. NUnitTestCaseBuilder.cs (376): int argIndex = 0; argIndex < parameters.Length // Null value carrier: arglist. NUnitTestCaseBuilder.cs (378): if (parameters[argIndex].ParameterType.Equals(typeParameter)) // Null value carrier: arglist.P NUnitTestCaseBuilder.cs (379): typeArguments[typeIndex] = TypeHelper.BestCommonType( typeArguments[typeIndex],arglist[argIndex].GetType()); // Null value carrier: arglist

nunit/nunit.core.dll/Builders/NUnitTestFixtureBuilder.cs113: "typeArgs" may possibly be null BD.EXCEPT.NR-1 . NUnitTestFixtureBuilder.cs (101): object[] arguments = null;

. NUnitTestFixtureBuilder.cs (102): IList categories = null;

. NUnitTestFixtureBuilder.cs (104): if (attr != null)

. NUnitTestFixtureBuilder.cs (106): arguments = (object[])Reflect.GetPropertyValue(attr, "Arguments");

. Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public | BindingFlags.Instance );

. Reflect.cs (337): PropertyInfo property = GetNamedProperty( obj.GetType(), name, bindingFlags );

. Reflect.cs (338): if ( property != null )

. Reflect.cs (340): return null;

. Reflect.cs (341): }

. Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public | BindingFlags.Instance );

. Reflect.cs (326): }

. NUnitTestFixtureBuilder.cs (106): arguments = (object[])Reflect.GetPropertyValue(attr, "Arguments");

. NUnitTestFixtureBuilder.cs (108): categories = Reflect.GetPropertyValue(attr, "Categories") as IList;

. Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public | BindingFlags.Instance );

. Reflect.cs (337): PropertyInfo property = GetNamedProperty( obj.GetType(), name, bindingFlags );

. Reflect.cs (338): if ( property != null )

. Reflect.cs (340): return null;

. Reflect.cs (341): }

. Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public | BindingFlags.Instance );

. Reflect.cs (326): }

. NUnitTestFixtureBuilder.cs (108): categories = Reflect.GetPropertyValue(attr, "Categories") as IList;

. NUnitTestFixtureBuilder.cs (110): if (type.ContainsGenericParameters)! NUnitTestFixtureBuilder.cs (112): Type[] typeArgs = (Type[])Reflect.GetPropertyValue(attr, "TypeArgs");! Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public | BindingFlags.Instance );. Reflect.cs (337): PropertyInfo property = GetNamedProperty( obj.GetType(), name, bindingFlags );. Reflect.cs (314): return type.GetProperty( name, bindingFlags );. Reflect.cs (315): }. Reflect.cs (337): PropertyInfo property = GetNamedProperty( obj.GetType(), name, bindingFlags );. Reflect.cs (338): if ( property != null ).C Reflect.cs (340): return null; // Null value carrier: CS$1$0000! Reflect.cs (341): } // Null value carrier: CS$1$0000

Page 10: Nunit  C# source code  defects report by Parasoft dotTEST

Page 10 dotTEST Report [09/21/11 14:13:53]

! Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public | BindingFlags.Instance ); // Null value carrier: GetPropertyValue(...)! Reflect.cs (326): } // Null value carrier: CS$1$0000! NUnitTestFixtureBuilder.cs (112): Type[] typeArgs = (Type[])Reflect.GetPropertyValue(attr, "TypeArgs"); // Null value carrier: GetPropertyValue(...).P NUnitTestFixtureBuilder.cs (113): if( typeArgs.Length > 0 || TypeHelper.CanDeduceTypeArgsFromArgs(type, arguments, ref typeArgs)) // Nullvalue carrier: typeArgs

279: "args" may possibly be null BD.EXCEPT.NR-1 ! NUnitTestFixtureBuilder.cs (276): object[] args = (object[])Reflect.GetPropertyValue(attrs[i], "Arguments");

! Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public | BindingFlags.Instance );.C Reflect.cs (340): return null; // Null value carrier: CS$1$0000! Reflect.cs (341): } // Null value carrier: CS$1$0000! Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public | BindingFlags.Instance ); // Null value carrier: GetPropertyValue(...)! Reflect.cs (326): } // Null value carrier: CS$1$0000! NUnitTestFixtureBuilder.cs (276): object[] args = (object[])Reflect.GetPropertyValue(attrs[i], "Arguments"); // Null value carrier:GetPropertyValue(...). NUnitTestFixtureBuilder.cs (277): object[] typeArgs = (object[])Reflect.GetPropertyValue(attrs[i], "TypeArgs"); // Null value carrier: args.P NUnitTestFixtureBuilder.cs (279): if (args.Length > 0 || typeArgs != null #x26;#x26; typeArgs.Length > 0) // Null value carrier: args

nunit/nunit.core.dll/Builders/TestAssemblyBuilder.cs50: Stream not closed: this.fs, this.rdr.m_stream BD.RES.LEAKS-1 . TestAssemblyBuilder.cs (48): if ( assemblyInfo == null #x26;#x26; assembly != null )

EP TestAssemblyBuilder.cs (50): AssemblyReader rdr = new AssemblyReader( assembly ); // AssemblyReader..ctor() throws: IOException //Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (22): UInt16 dos_magic = 0xffff;. AssemblyReader.cs (23): UInt32 pe_signature = 0xffffffff;. AssemblyReader.cs (29): private uint peHeader = 0;. AssemblyReader.cs (30): private uint fileHeader = 0;. AssemblyReader.cs (31): private uint optionalHeader = 0;. AssemblyReader.cs (32): private uint dataDirectory = 0;. AssemblyReader.cs (33): private uint dataSections = 0;. AssemblyReader.cs (50): public AssemblyReader( Assembly assembly ). AssemblyReader.cs (52): this.assemblyPath = AssemblyHelper.GetAssemblyPath( assembly );. AssemblyHelper.cs (23): string path = assembly.CodeBase;. AssemblyHelper.cs (24): Uri uri = new Uri(path);. AssemblyHelper.cs (27): if (!uri.IsFile). AssemblyHelper.cs (28): return assembly.Location;. AssemblyHelper.cs (34): }. AssemblyReader.cs (52): this.assemblyPath = AssemblyHelper.GetAssemblyPath( assembly );!E AssemblyReader.cs (53): CalcHeaderOffsets(); // AssemblyReader.CalcHeaderOffsets() throws: IOException.C AssemblyReader.cs (58): this.fs = new FileStream( assemblyPath, FileMode.Open, FileAccess.Read ); // Allocated resource variable: newFileStream! AssemblyReader.cs (59): this.rdr = new BinaryReader( fs ); // Allocated resource variable: this.fs!E AssemblyReader.cs (60): dos_magic = rdr.ReadUInt16(); // BinaryReader.ReadUInt16() throws: IOException // Allocated resource variable:this.fs, this.rdr.m_stream

57: Stream not closed: rdr.fs, rdr.rdr.m_stream BD.RES.LEAKS-1 . TestAssemblyBuilder.cs (48): if ( assemblyInfo == null #x26;#x26; assembly != null )

! TestAssemblyBuilder.cs (50): AssemblyReader rdr = new AssemblyReader( assembly );. AssemblyReader.cs (22): UInt16 dos_magic = 0xffff;. AssemblyReader.cs (23): UInt32 pe_signature = 0xffffffff;. AssemblyReader.cs (29): private uint peHeader = 0;. AssemblyReader.cs (30): private uint fileHeader = 0;. AssemblyReader.cs (31): private uint optionalHeader = 0;. AssemblyReader.cs (32): private uint dataDirectory = 0;. AssemblyReader.cs (33): private uint dataSections = 0;. AssemblyReader.cs (50): public AssemblyReader( Assembly assembly ). AssemblyReader.cs (52): this.assemblyPath = AssemblyHelper.GetAssemblyPath( assembly );. AssemblyHelper.cs (23): string path = assembly.CodeBase;. AssemblyHelper.cs (24): Uri uri = new Uri(path);. AssemblyHelper.cs (27): if (!uri.IsFile). AssemblyHelper.cs (28): return assembly.Location;. AssemblyHelper.cs (34): }. AssemblyReader.cs (52): this.assemblyPath = AssemblyHelper.GetAssemblyPath( assembly );! AssemblyReader.cs (53): CalcHeaderOffsets();.C AssemblyReader.cs (58): this.fs = new FileStream( assemblyPath, FileMode.Open, FileAccess.Read ); // Allocated resource variable: newFileStream! AssemblyReader.cs (59): this.rdr = new BinaryReader( fs ); // Allocated resource variable: this.fs. AssemblyReader.cs (60): dos_magic = rdr.ReadUInt16(); // Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (61): if ( dos_magic == 0x5a4d ) // Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (101): } // Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (54): } // Allocated resource variable: this.fs, this.rdr.m_stream! TestAssemblyBuilder.cs (50): AssemblyReader rdr = new AssemblyReader( assembly ); // Allocated resource variable: new AssemblyReader.fs,new AssemblyReader.rdr.m_stream. TestAssemblyBuilder.cs (51): Version imageRuntimeVersion = new Version( rdr.ImageRuntimeVersion.Substring( 1 ) ); // Allocated resourcevariable: rdr.fs, rdr.rdr.m_stream. AssemblyReader.cs (142): string runtimeVersion = string.Empty; // Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (144): if (this.IsDotNetFile) // Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (130): return IsValidPeFile #x26;#x26; numDataDirectoryEntries > 14 #x26;#x26; DataDirectoryRva(14) != 0; // Allocatedresource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (125): return dos_magic == 0x5a4d #x26;#x26; pe_signature == 0x00004550; } // Allocated resource variable: this.fs,this.rdr.m_stream

Page 11: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 11

. AssemblyReader.cs (130): return IsValidPeFile #x26;#x26; numDataDirectoryEntries > 14 #x26;#x26; DataDirectoryRva(14) != 0; } // Allocatedresource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (144): if (this.IsDotNetFile) // Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (171): return runtimeVersion; // Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (172): } // Allocated resource variable: this.fs, this.rdr.m_stream!E TestAssemblyBuilder.cs (51): Version imageRuntimeVersion = new Version( rdr.ImageRuntimeVersion.Substring( 1 ) ); // Version..ctor() throws:OverflowException // Allocated resource variable: rdr.fs, rdr.rdr.m_stream.P TestAssemblyBuilder.cs (57): } // Allocated resource variable: rdr.fs, rdr.rdr.m_stream

182: "assembly" may possibly be null BD.EXCEPT.NR-1 . TestAssemblyBuilder.cs (171): Assembly assembly = null;

. TestAssemblyBuilder.cs (175): AssemblyName assemblyName = AssemblyName.GetAssemblyName( Path.GetFileName( path ) );

. TestAssemblyBuilder.cs (177): assembly = Assembly.Load(assemblyName);

.C TestAssemblyBuilder.cs (179): if ( assembly != null ) // Null value carrier: assembly

.P TestAssemblyBuilder.cs (182): log.Info( "Loaded assembly " + assembly.FullName ); // Null value carrier: assemblynunit/nunit.core.dll/Builders/TestCaseSourceProvider.cs73: "info.GetInstance()" may possibly be null BD.EXCEPT.NR-1 ! TestCaseSourceProvider.cs (73): info.GetInstance()

! ProviderInfo.cs (52): return (IEnumerable)GetProviderObjectFromMember(members[0]);.C ProviderInfo.cs (57): object providerObject = null; // Null value carrier: providerObject. ProviderInfo.cs (58): object instance = null; // Null value carrier: providerObject. ProviderInfo.cs (60): switch (member.MemberType) // Null value carrier: providerObject! ProviderInfo.cs (88): return providerObject; // Null value carrier: providerObject! ProviderInfo.cs (89): } // Null value carrier: CS$1$0000! ProviderInfo.cs (52): return (IEnumerable)GetProviderObjectFromMember(members[0]); // Null value carrier:this.GetProviderObjectFromMember(...)! ProviderInfo.cs (53): } // Null value carrier: CS$1$0000.P TestCaseSourceProvider.cs (73): info.GetInstance() // Null value carrier: info.GetInstance()

nunit/nunit.core.dll/NUnitConfiguration.cs203: Registry key not closed: key BD.RES.LEAKS-1 . NUnitConfiguration.cs (187): if (monoExePath == null)

. NUnitConfiguration.cs (189): string[] searchNames = IsWindows() ? new string[] { "mono.bat", "mono.cmd", "mono.exe" } : new string[] { "mono","mono..... NUnitConfiguration.cs (237): return Environment.OSVersion.Platform == PlatformID.Win32NT;. NUnitConfiguration.cs (238): }. NUnitConfiguration.cs (189): string[] searchNames = IsWindows() ? new string[] { "mono.bat", "mono.cmd", "mono.exe" } : new string[] { "mono","mono..... NUnitConfiguration.cs (193): monoExePath = FindOneOnPath(searchNames);. NUnitConfiguration.cs (232): return null;. NUnitConfiguration.cs (233): }. NUnitConfiguration.cs (193): monoExePath = FindOneOnPath(searchNames);. NUnitConfiguration.cs (195): if (monoExePath == null #x26;#x26; IsWindows()). NUnitConfiguration.cs (237): return Environment.OSVersion.Platform == PlatformID.Win32NT;. NUnitConfiguration.cs (238): }. NUnitConfiguration.cs (195): if (monoExePath == null #x26;#x26; IsWindows()).C NUnitConfiguration.cs (197): RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono"); // Allocated resource variable:LocalMachine.OpenSubKey(...). NUnitConfiguration.cs (198): if (key != null) // Allocated resource variable: key. NUnitConfiguration.cs (200): string version = key.GetValue("DefaultCLR") as string; // Allocated resource variable: key. NUnitConfiguration.cs (201): if (version != null) // Allocated resource variable: key.P NUnitConfiguration.cs (203): key = key.OpenSubKey(version); // Allocated resource variable: key

219: Registry key not closed: key BD.RES.LEAKS-1 . NUnitConfiguration.cs (187): if (monoExePath == null)

. NUnitConfiguration.cs (189): string[] searchNames = IsWindows() ? new string[] { "mono.bat", "mono.cmd", "mono.exe" } : new string[] { "mono","mono..... NUnitConfiguration.cs (237): return Environment.OSVersion.Platform == PlatformID.Win32NT;. NUnitConfiguration.cs (238): }. NUnitConfiguration.cs (189): string[] searchNames = IsWindows() ? new string[] { "mono.bat", "mono.cmd", "mono.exe" } : new string[] { "mono","mono..... NUnitConfiguration.cs (193): monoExePath = FindOneOnPath(searchNames);. NUnitConfiguration.cs (232): return null;. NUnitConfiguration.cs (233): }. NUnitConfiguration.cs (193): monoExePath = FindOneOnPath(searchNames);. NUnitConfiguration.cs (195): if (monoExePath == null #x26;#x26; IsWindows()). NUnitConfiguration.cs (237): return Environment.OSVersion.Platform == PlatformID.Win32NT;. NUnitConfiguration.cs (238): }. NUnitConfiguration.cs (195): if (monoExePath == null #x26;#x26; IsWindows()).C NUnitConfiguration.cs (197): RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono"); // Allocated resource variable:LocalMachine.OpenSubKey(...). NUnitConfiguration.cs (198): if (key != null) // Allocated resource variable: key!E NUnitConfiguration.cs (200): string version = key.GetValue("DefaultCLR") as string; // RegistryKey.GetValue() throws: SecurityException //Allocated resource variable: key.P NUnitConfiguration.cs (219): } // Allocated resource variable: key

219: Registry key not closed: key BD.RES.LEAKS-1 . NUnitConfiguration.cs (187): if (monoExePath == null)

. NUnitConfiguration.cs (189): string[] searchNames = IsWindows() ? new string[] { "mono.bat", "mono.cmd", "mono.exe" } : new string[] { "mono","mono..... NUnitConfiguration.cs (237): return Environment.OSVersion.Platform == PlatformID.Win32NT;. NUnitConfiguration.cs (238): }

Page 12: Nunit  C# source code  defects report by Parasoft dotTEST

Page 12 dotTEST Report [09/21/11 14:13:53]

. NUnitConfiguration.cs (189): string[] searchNames = IsWindows() ? new string[] { "mono.bat", "mono.cmd", "mono.exe" } : new string[] { "mono","mono..... NUnitConfiguration.cs (193): monoExePath = FindOneOnPath(searchNames);. NUnitConfiguration.cs (232): return null;. NUnitConfiguration.cs (233): }. NUnitConfiguration.cs (193): monoExePath = FindOneOnPath(searchNames);. NUnitConfiguration.cs (195): if (monoExePath == null #x26;#x26; IsWindows()). NUnitConfiguration.cs (237): return Environment.OSVersion.Platform == PlatformID.Win32NT;. NUnitConfiguration.cs (238): }. NUnitConfiguration.cs (195): if (monoExePath == null #x26;#x26; IsWindows()). NUnitConfiguration.cs (197): RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono");. NUnitConfiguration.cs (198): if (key != null). NUnitConfiguration.cs (200): string version = key.GetValue("DefaultCLR") as string;. NUnitConfiguration.cs (201): if (version != null).C NUnitConfiguration.cs (203): key = key.OpenSubKey(version); // Allocated resource variable: key.OpenSubKey(...). NUnitConfiguration.cs (204): if (key != null) // Allocated resource variable: key!E NUnitConfiguration.cs (206): string installDir = key.GetValue("SdkInstallRoot") as string; // RegistryKey.GetValue() throws: SecurityException //Allocated resource variable: key.P NUnitConfiguration.cs (219): } // Allocated resource variable: key

nunit/nunit.core.dll/NUnitFramework.cs229: "categoryName" may possibly be null BD.EXCEPT.NR-1 . NUnitFramework.cs (175): Attribute attribute in attributes

. NUnitFramework.cs (177): Type attributeType = attribute.GetType();

. NUnitFramework.cs (178): string attributeName = attributeType.FullName;

. NUnitFramework.cs (179): bool isValid = test.RunState != RunState.NotRunnable;

. Test.cs (186): return runState; }

. NUnitFramework.cs (179): bool isValid = test.RunState != RunState.NotRunnable;

. NUnitFramework.cs (181): switch (attributeName)

. NUnitFramework.cs (224): if ( Reflect.InheritsFrom( attributeType, CategoryAttribute ) )

. Reflect.cs (130): Type current = type; current != typeof( object )

. Reflect.cs (131): if( current.FullName == typeName )

. Reflect.cs (132): return true;

. Reflect.cs (135): }

. NUnitFramework.cs (224): if ( Reflect.InheritsFrom( attributeType, CategoryAttribute ) )! NUnitFramework.cs (226): string categoryName = (string)Reflect.GetPropertyValue(attribute, PropertyNames.CategoryName);! Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public | BindingFlags.Instance );. Reflect.cs (337): PropertyInfo property = GetNamedProperty( obj.GetType(), name, bindingFlags );. Reflect.cs (314): return type.GetProperty( name, bindingFlags );. Reflect.cs (315): }. Reflect.cs (337): PropertyInfo property = GetNamedProperty( obj.GetType(), name, bindingFlags );. Reflect.cs (338): if ( property != null ).C Reflect.cs (340): return null; // Null value carrier: CS$1$0000! Reflect.cs (341): } // Null value carrier: CS$1$0000! Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public | BindingFlags.Instance ); // Null value carrier: GetPropertyValue(...)! Reflect.cs (326): } // Null value carrier: CS$1$0000! NUnitFramework.cs (226): string categoryName = (string)Reflect.GetPropertyValue(attribute, PropertyNames.CategoryName); // Null valuecarrier: GetPropertyValue(...). NUnitFramework.cs (227): test.Categories.Add(categoryName); // Null value carrier: categoryName.P NUnitFramework.cs (229): if (categoryName.IndexOfAny(new char[] { ',', '!', '+', '-' }) >= 0) // Null value carrier: categoryName

nunit/nunit.core.dll/SimpleTestRunner.cs150: "this.get_Test()" may possibly be null BD.EXCEPT.NR-1 . SimpleTestRunner.cs (145): log.Debug("Starting test run");

. Logger.cs (70): Log(InternalTraceLevel.Verbose, message);

. Logger.cs (82): if (InternalTrace.Level >= level)

. Logger.cs (84): }

. Logger.cs (71): }

. SimpleTestRunner.cs (148): this.runThread = Thread.CurrentThread;! SimpleTestRunner.cs (150): listener.RunStarted( this.Test.TestName.FullName, test.CountTestCases( filter ) );.C SimpleTestRunner.cs (82): return test == null ? null : new TestNode( test ); } // Null value carrier: CS$1$0000.P SimpleTestRunner.cs (150): listener.RunStarted( this.Test.TestName.FullName, test.CountTestCases( filter ) ); // Null value carrier:this.get_Test()

nunit/nunit.core.dll/TestMethod.cs77: "method" may possibly be null BD.EXCEPT.NR-1 ! TestCaseResultFixture.cs (25): caseResult = new TestResult( new TestInfo(new NUnitTestMethod(Reflect.GetNamedMethod( this.GetType(),

"DummyMethod" ) ) .... Reflect.cs (240): GetMethods( fixtureType ). Reflect.cs (185): MethodInfo[] result = fixtureType.GetMethods(AllMembers);. Reflect.cs (187): return result;. Reflect.cs (188): }. Reflect.cs (240): in GetMethods( fixtureType ).C Reflect.cs (246): return null; // Null value carrier: CS$1$0000! Reflect.cs (247): } // Null value carrier: CS$1$0000! TestCaseResultFixture.cs (25): caseResult = new TestResult( new TestInfo(new NUnitTestMethod(Reflect.GetNamedMethod( this.GetType(),"DummyMethod" ) ) ... // Null value carrier: GetNamedMethod(...)! NUnitTestMethod.cs (17): public NUnitTestMethod(MethodInfo method) : base(method) // Null value carrier: method.P TestMethod.cs (77): public TestMethod( MethodInfo method ) : base( method.ReflectedType.FullName, method.Name ) // Null value carrier:method

279: "testResult" may possibly be null BD.EXCEPT.NR-1

Page 13: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 13

. TestMethod.cs (268): TestResult testResult = null;. TestMethod.cs (270): int repeatCount = this.Properties.Contains("Repeat") ? (int)this.Properties["Repeat"] : 1;. Test.cs (254): if ( properties == null ). Test.cs (257): return properties;. Test.cs (258): }. TestMethod.cs (270): int repeatCount = this.Properties.Contains("Repeat") ? (int)this.Properties["Repeat"] : 1;. TestMethod.cs (273): while (repeatCount-- > 0). TestMethod.cs (275): testResult = ShouldRunOnOwnThread ? new TestMethodThread(this).Run(NullListener.NULL, TestFilter.Empty) :RunTest();. TestMethod.cs (149): return base.ShouldRunOnOwnThread || Timeout > 0;. Test.cs (93): return RequiresThread || ApartmentState != ApartmentState.Unknown #x26;#x26; ApartmentState != GetCurrentApartment();. Test.cs (96): }. TestMethod.cs (149): return base.ShouldRunOnOwnThread || Timeout > 0;. TestMethod.cs (150): }! TestMethod.cs (275): testResult = ShouldRunOnOwnThread ? new TestMethodThread(this).Run(NullListener.NULL, TestFilter.Empty) :RunTest();! TestThread.cs (152): public TestMethodThread(TestMethod testMethod) : base(testMethod).C TestThread.cs (34): protected TestResult threadResult; // Null value carrier: this.threadResult. TestThread.cs (49): protected TestThread(Test test) // Null value carrier: this.threadResult. TestThread.cs (51): this.test = test; // Null value carrier: this.threadResult. TestThread.cs (53): this.thread = new Thread(new ThreadStart(RunTestProc)); // Null value carrier: this.threadResult. TestThread.cs (54): thread.CurrentCulture = Thread.CurrentThread.CurrentCulture; // Null value carrier: this.threadResult. TestThread.cs (55): thread.CurrentUICulture = Thread.CurrentThread.CurrentUICulture; // Null value carrier: this.threadResult. TestThread.cs (58): if ( test.ApartmentState != ApartmentState.Unknown ) // Null value carrier: this.threadResult. TestThread.cs (60): } // Null value carrier: this.threadResult. TestThread.cs (155): this.testMethod = testMethod; // Null value carrier: this.threadResult. TestThread.cs (156): } // Null value carrier: this.threadResult! TestMethod.cs (275): testResult = ShouldRunOnOwnThread ? new TestMethodThread(this).Run(NullListener.NULL, TestFilter.Empty) :RunTest(); // Null value carrier: new TestMethodThread.threadResult. TestThread.cs (89): TestResult testResult = new TestResult(test); // Null value carrier: this.threadResult. TestThread.cs (91): this.thrownException = null; // Null value carrier: this.threadResult. TestThread.cs (92): this.listener = listener; // Null value carrier: this.threadResult. TestThread.cs (93): this.filter = filter; // Null value carrier: this.threadResult. TestThread.cs (94): this.contextDictionary = (TestMethod.ContextDictionary)CallContext.GetData("NUnit.Framework.TestContext"); // Null valuecarrier: this.threadResult. TestThread.cs (96): log.Debug("Starting test in separate thread"); // Null value carrier: this.threadResult. TestThread.cs (97): thread.Start(); // Null value carrier: this.threadResult. TestThread.cs (98): thread.Join(this.Timeout); // Null value carrier: this.threadResult. TestThread.cs (162): return testMethod.Timeout == 0 ? System.Threading.Timeout.Infinite : testMethod.Timeout; // Null value carrier:this.threadResult. TestThread.cs (165): } // Null value carrier: this.threadResult. TestThread.cs (98): thread.Join(this.Timeout); // Null value carrier: this.threadResult. TestThread.cs (101): if (thread.IsAlive) // Null value carrier: this.threadResult. TestThread.cs (108): if (thrownException != null) // Null value carrier: this.threadResult. TestThread.cs (115): log.Debug("Test completed normally"); // Null value carrier: this.threadResult! TestThread.cs (116): testResult = threadResult; // Null value carrier: this.threadResult! TestThread.cs (119): return testResult; // Null value carrier: testResult! TestThread.cs (120): } // Null value carrier: CS$1$0000! TestMethod.cs (275): testResult = ShouldRunOnOwnThread ? new TestMethodThread(this).Run(NullListener.NULL, TestFilter.Empty) :RunTest(); // Null value carrier: new TestMethodThread.Run(...).P TestMethod.cs (279): if (testResult.ResultState == ResultState.Failure || testResult.ResultState == ResultState.Error || testResult.ResultSta... //Null value carrier: testResult

450: "this._ec.get_CurrentTest().get_FixtureType()" may possibly be null BD.EXCEPT.NR-1 . TestMethod.cs (439): switch (key as string)

. TestMethod.cs (450): return AssemblyHelper.GetDirectoryName(_ec.CurrentTest.FixtureType.Assembly);

. TestExecutionContext.cs (352): return currentTest; }! TestMethod.cs (450): return AssemblyHelper.GetDirectoryName(_ec.CurrentTest.FixtureType.Assembly);.C Test.cs (305): return null; } // Null value carrier: CS$1$0000.P TestMethod.cs (450): return AssemblyHelper.GetDirectoryName(_ec.CurrentTest.FixtureType.Assembly); // Null value carrier:this._ec.get_CurrentTest().get_FixtureType()

nunit/nunit.core.interfaces.dll/RuntimeFramework.cs358: Registry key not closed: subKey BD.RES.LEAKS-1 . RuntimeFramework.cs (350): if (Environment.OSVersion.Platform == PlatformID.Win32NT)

. RuntimeFramework.cs (353): RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono");

. RuntimeFramework.cs (354): if (key == null)

. RuntimeFramework.cs (356): string version in key.GetSubKeyNames()

.C RuntimeFramework.cs (358): RegistryKey subKey = key.OpenSubKey(version); // Allocated resource variable: key.OpenSubKey(...)

. RuntimeFramework.cs (359): string monoPrefix = subKey.GetValue("SdkInstallRoot") as string; // Allocated resource variable: subKey

. RuntimeFramework.cs (361): AppendMonoFramework(frameworks, monoPrefix, version); // Allocated resource variable: subKey

. RuntimeFramework.cs (362): } // Allocated resource variable: subKey

. RuntimeFramework.cs (356): string version in // Allocated resource variable: subKey

.P RuntimeFramework.cs (358): RegistryKey subKey = key.OpenSubKey(version); // Allocated resource variable: subKey366: Registry key not closed: key BD.RES.LEAKS-1 . RuntimeFramework.cs (350): if (Environment.OSVersion.Platform == PlatformID.Win32NT)

.C RuntimeFramework.cs (353): RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono"); // Allocated resourcevariable: LocalMachine.OpenSubKey(...). RuntimeFramework.cs (354): if (key == null) // Allocated resource variable: key!E RuntimeFramework.cs (356): key.GetSubKeyNames() // RegistryKey.GetSubKeyNames() throws: IOException // Allocated resource variable:key

Page 14: Nunit  C# source code  defects report by Parasoft dotTEST

Page 14 dotTEST Report [09/21/11 14:13:53]

.P RuntimeFramework.cs (366): } // Allocated resource variable: key366: Registry key not closed: subKey BD.RES.LEAKS-1 . RuntimeFramework.cs (350): if (Environment.OSVersion.Platform == PlatformID.Win32NT)

. RuntimeFramework.cs (353): RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono");

. RuntimeFramework.cs (354): if (key == null)

. RuntimeFramework.cs (356): string version in key.GetSubKeyNames()

.C RuntimeFramework.cs (358): RegistryKey subKey = key.OpenSubKey(version); // Allocated resource variable: key.OpenSubKey(...)!E RuntimeFramework.cs (359): string monoPrefix = subKey.GetValue("SdkInstallRoot") as string; // RegistryKey.GetValue() throws:SecurityException // Allocated resource variable: subKey.P RuntimeFramework.cs (366): } // Allocated resource variable: subKey

383: Registry key not closed: key BD.RES.LEAKS-1 . RuntimeFramework.cs (372): string monoPrefix = null;

. RuntimeFramework.cs (373): string version = null;

. RuntimeFramework.cs (375): if (Environment.OSVersion.Platform == PlatformID.Win32NT)

.C RuntimeFramework.cs (377): RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono"); // Allocated resourcevariable: LocalMachine.OpenSubKey(...). RuntimeFramework.cs (378): if (key != null) // Allocated resource variable: key. RuntimeFramework.cs (380): version = key.GetValue("DefaultCLR") as string; // Allocated resource variable: key. RuntimeFramework.cs (381): if (version != null #x26;#x26; version != "") // Allocated resource variable: key.P RuntimeFramework.cs (383): key = key.OpenSubKey(version); // Allocated resource variable: key

396: Registry key not closed: key BD.RES.LEAKS-1 . RuntimeFramework.cs (372): string monoPrefix = null;

. RuntimeFramework.cs (373): string version = null;

. RuntimeFramework.cs (375): if (Environment.OSVersion.Platform == PlatformID.Win32NT)

.C RuntimeFramework.cs (377): RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono"); // Allocated resourcevariable: LocalMachine.OpenSubKey(...). RuntimeFramework.cs (378): if (key != null) // Allocated resource variable: key!E RuntimeFramework.cs (380): version = key.GetValue("DefaultCLR") as string; // RegistryKey.GetValue() throws: SecurityException // Allocatedresource variable: key.P RuntimeFramework.cs (396): } // Allocated resource variable: key

396: Registry key not closed: key BD.RES.LEAKS-1 . RuntimeFramework.cs (372): string monoPrefix = null;

. RuntimeFramework.cs (373): string version = null;

. RuntimeFramework.cs (375): if (Environment.OSVersion.Platform == PlatformID.Win32NT)

. RuntimeFramework.cs (377): RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono");

. RuntimeFramework.cs (378): if (key != null)

. RuntimeFramework.cs (380): version = key.GetValue("DefaultCLR") as string;

. RuntimeFramework.cs (381): if (version != null #x26;#x26; version != "")

.C RuntimeFramework.cs (383): key = key.OpenSubKey(version); // Allocated resource variable: key.OpenSubKey(...)

. RuntimeFramework.cs (384): if (key != null) // Allocated resource variable: key!E RuntimeFramework.cs (385): monoPrefix = key.GetValue("SdkInstallRoot") as string; // RegistryKey.GetValue() throws: SecurityException //Allocated resource variable: key.P RuntimeFramework.cs (396): } // Allocated resource variable: key

440: Registry key not closed: key2 BD.RES.LEAKS-1 . RuntimeFramework.cs (431): if (Environment.OSVersion.Platform == PlatformID.Win32NT)

. RuntimeFramework.cs (433): RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\.NETFramework\policy");

. RuntimeFramework.cs (434): if (key != null)

. RuntimeFramework.cs (436): string name in key.GetSubKeyNames()

. RuntimeFramework.cs (438): if (name.StartsWith("v"))

. RuntimeFramework.cs (444): }

. RuntimeFramework.cs (436): string name in

. RuntimeFramework.cs (438): if (name.StartsWith("v"))

.C RuntimeFramework.cs (440): RegistryKey key2 = key.OpenSubKey(name); // Allocated resource variable: key.OpenSubKey(...)

. RuntimeFramework.cs (441): in key2.GetValueNames() // Allocated resource variable: key2

. RuntimeFramework.cs (444): } // Allocated resource variable: key2

. RuntimeFramework.cs (436): string name in // Allocated resource variable: key2

. RuntimeFramework.cs (438): if (name.StartsWith("v")) // Allocated resource variable: key2

.P RuntimeFramework.cs (440): RegistryKey key2 = key.OpenSubKey(name); // Allocated resource variable: key2447: Registry key not closed: key BD.RES.LEAKS-1 . RuntimeFramework.cs (431): if (Environment.OSVersion.Platform == PlatformID.Win32NT)

.C RuntimeFramework.cs (433): RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\.NETFramework\policy"); //Allocated resource variable: LocalMachine.OpenSubKey(...). RuntimeFramework.cs (434): if (key != null) // Allocated resource variable: key!E RuntimeFramework.cs (436): key.GetSubKeyNames() // RegistryKey.GetSubKeyNames() throws: IOException // Allocated resource variable:key.P RuntimeFramework.cs (447): } // Allocated resource variable: key

447: Registry key not closed: key2 BD.RES.LEAKS-1 . RuntimeFramework.cs (431): if (Environment.OSVersion.Platform == PlatformID.Win32NT)

. RuntimeFramework.cs (433): RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\.NETFramework\policy");

. RuntimeFramework.cs (434): if (key != null)

. RuntimeFramework.cs (436): string name in key.GetSubKeyNames()

. RuntimeFramework.cs (438): if (name.StartsWith("v"))

. RuntimeFramework.cs (444): }

. RuntimeFramework.cs (436): string name in

. RuntimeFramework.cs (438): if (name.StartsWith("v"))

.C RuntimeFramework.cs (440): RegistryKey key2 = key.OpenSubKey(name); // Allocated resource variable: key.OpenSubKey(...)

Page 15: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 15

!E RuntimeFramework.cs (441): key2.GetValueNames() // RegistryKey.GetValueNames() throws: SecurityException // Allocated resource variable:key2.P RuntimeFramework.cs (447): } // Allocated resource variable: key2

nunit/nunit.core.interfaces.dll/TestInfo.cs79: "test" may possibly be null BD.EXCEPT.NR-1 ! TestSuiteTreeViewFixture.cs (153): TestSuite fixture = (TestSuite)findTest( "MockTestFixture", suite );

.C TestSuiteTreeViewFixture.cs (165): Test result = null; // Null value carrier: result

. TestSuiteTreeViewFixture.cs (166): if (test.TestName.Name == name) // Null value carrier: result

. TestSuiteTreeViewFixture.cs (168): if (test.Tests != null) // Null value carrier: result! TestSuiteTreeViewFixture.cs (178): return result; // Null value carrier: result! TestSuiteTreeViewFixture.cs (179): } // Null value carrier: CS$1$0000! TestSuiteTreeViewFixture.cs (153): TestSuite fixture = (TestSuite)findTest( "MockTestFixture", suite ); // Null value carrier: this.findTest(...)! TestSuiteTreeViewFixture.cs (154): TestResult result = new TestResult( new TestInfo( fixture ) ); // Null value carrier: fixture. TestInfo.cs (62): private ArrayList categories = new ArrayList(); // Null value carrier: test. TestInfo.cs (68): private ListDictionary properties = new ListDictionary(); // Null value carrier: test. TestInfo.cs (77): public TestInfo( ITest test ) // Null value carrier: test.P TestInfo.cs (79): this.testName = (TestName)test.TestName.Clone(); // Null value carrier: test

245: "this.get_Tests()" may possibly be null BD.EXCEPT.NR-1 . TestInfo.cs (236): if (filter.IsEmpty)

. TestInfo.cs (239): if (!isSuite)

. TestInfo.cs (242): int count = 0;

. TestInfo.cs (243): if (filter.Pass(this))! TestInfo.cs (245): Tests.C TestInfo.cs (201): return null; } // Null value carrier: CS$1$0000.P TestInfo.cs (245): Tests // Null value carrier: this.get_Tests()

nunit/nunit.core.tests/AssemblyReaderTests.cs20: Stream not closed: this.fs, this.rdr.m_stream BD.RES.LEAKS-1 EP AssemblyReaderTests.cs (20): rdr = new AssemblyReader( this.GetType().Assembly ); // AssemblyReader..ctor() throws: IOException //

Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (22): UInt16 dos_magic = 0xffff;. AssemblyReader.cs (23): UInt32 pe_signature = 0xffffffff;. AssemblyReader.cs (29): private uint peHeader = 0;. AssemblyReader.cs (30): private uint fileHeader = 0;. AssemblyReader.cs (31): private uint optionalHeader = 0;. AssemblyReader.cs (32): private uint dataDirectory = 0;. AssemblyReader.cs (33): private uint dataSections = 0;. AssemblyReader.cs (50): public AssemblyReader( Assembly assembly ). AssemblyReader.cs (52): this.assemblyPath = AssemblyHelper.GetAssemblyPath( assembly );. AssemblyHelper.cs (23): string path = assembly.CodeBase;. AssemblyHelper.cs (24): Uri uri = new Uri(path);. AssemblyHelper.cs (27): if (!uri.IsFile). AssemblyHelper.cs (28): return assembly.Location;. AssemblyHelper.cs (34): }. AssemblyReader.cs (52): this.assemblyPath = AssemblyHelper.GetAssemblyPath( assembly );!E AssemblyReader.cs (53): CalcHeaderOffsets(); // AssemblyReader.CalcHeaderOffsets() throws: IOException.C AssemblyReader.cs (58): this.fs = new FileStream( assemblyPath, FileMode.Open, FileAccess.Read ); // Allocated resource variable: newFileStream! AssemblyReader.cs (59): this.rdr = new BinaryReader( fs ); // Allocated resource variable: this.fs!E AssemblyReader.cs (60): dos_magic = rdr.ReadUInt16(); // BinaryReader.ReadUInt16() throws: IOException // Allocated resource variable:this.fs, this.rdr.m_stream

36: Stream not closed: this.fs, this.rdr.m_stream BD.RES.LEAKS-1 . AssemblyReaderTests.cs (35): string path = AssemblyHelper.GetAssemblyPath(System.Reflection.Assembly.GetAssembly(GetType()));

. AssemblyHelper.cs (23): string path = assembly.CodeBase;

. AssemblyHelper.cs (24): Uri uri = new Uri(path);

. AssemblyHelper.cs (27): if (!uri.IsFile)

. AssemblyHelper.cs (28): return assembly.Location;

. AssemblyHelper.cs (34): }

. AssemblyReaderTests.cs (35): string path = AssemblyHelper.GetAssemblyPath(System.Reflection.Assembly.GetAssembly(GetType()));EP AssemblyReaderTests.cs (36): Assert.AreEqual(path, new AssemblyReader(path).AssemblyPath); // AssemblyReader..ctor() throws:IOException // Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (22): UInt16 dos_magic = 0xffff;. AssemblyReader.cs (23): UInt32 pe_signature = 0xffffffff;. AssemblyReader.cs (29): private uint peHeader = 0;. AssemblyReader.cs (30): private uint fileHeader = 0;. AssemblyReader.cs (31): private uint optionalHeader = 0;. AssemblyReader.cs (32): private uint dataDirectory = 0;. AssemblyReader.cs (33): private uint dataSections = 0;. AssemblyReader.cs (44): public AssemblyReader( string assemblyPath ). AssemblyReader.cs (46): this.assemblyPath = assemblyPath;!E AssemblyReader.cs (47): CalcHeaderOffsets(); // AssemblyReader.CalcHeaderOffsets() throws: IOException.C AssemblyReader.cs (58): this.fs = new FileStream( assemblyPath, FileMode.Open, FileAccess.Read ); // Allocated resource variable: newFileStream! AssemblyReader.cs (59): this.rdr = new BinaryReader( fs ); // Allocated resource variable: this.fs!E AssemblyReader.cs (60): dos_magic = rdr.ReadUInt16(); // BinaryReader.ReadUInt16() throws: IOException // Allocated resource variable:this.fs, this.rdr.m_stream

56: Stream not closed: this.fs, this.rdr.m_stream BD.RES.LEAKS-1 . AssemblyReaderTests.cs (55): string configFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;

Page 16: Nunit  C# source code  defects report by Parasoft dotTEST

Page 16 dotTEST Report [09/21/11 14:13:53]

EP AssemblyReaderTests.cs (56): Assert.IsFalse( new AssemblyReader( configFile ).IsValidPeFile ); // AssemblyReader..ctor() throws:IOException // Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (22): UInt16 dos_magic = 0xffff;. AssemblyReader.cs (23): UInt32 pe_signature = 0xffffffff;. AssemblyReader.cs (29): private uint peHeader = 0;. AssemblyReader.cs (30): private uint fileHeader = 0;. AssemblyReader.cs (31): private uint optionalHeader = 0;. AssemblyReader.cs (32): private uint dataDirectory = 0;. AssemblyReader.cs (33): private uint dataSections = 0;. AssemblyReader.cs (44): public AssemblyReader( string assemblyPath ). AssemblyReader.cs (46): this.assemblyPath = assemblyPath;!E AssemblyReader.cs (47): CalcHeaderOffsets(); // AssemblyReader.CalcHeaderOffsets() throws: IOException.C AssemblyReader.cs (58): this.fs = new FileStream( assemblyPath, FileMode.Open, FileAccess.Read ); // Allocated resource variable: newFileStream! AssemblyReader.cs (59): this.rdr = new BinaryReader( fs ); // Allocated resource variable: this.fs!E AssemblyReader.cs (60): dos_magic = rdr.ReadUInt16(); // BinaryReader.ReadUInt16() throws: IOException // Allocated resource variable:this.fs, this.rdr.m_stream

nunit/nunit.core.tests/AssemblyVersionFixture.cs34: "assembly" may possibly be null BD.EXCEPT.NR-1 . AssemblyVersionFixture.cs (24): Version version = new Version("1.0.0.2002");

. AssemblyVersionFixture.cs (25): string nameString = "TestAssembly";

. AssemblyVersionFixture.cs (27): AssemblyName assemblyName = new AssemblyName();

. AssemblyVersionFixture.cs (28): assemblyName.Name = nameString;

. AssemblyVersionFixture.cs (29): assemblyName.Version = version;

. AssemblyVersionFixture.cs (30): MakeDynamicAssembly(assemblyName);

. AssemblyVersionFixture.cs (54): Thread.GetDomain().DefineDynamicAssembly(myAssemblyName, AssemblyBuilderAccess.RunAndSave);

. AssemblyVersionFixture.cs (55): }! AssemblyVersionFixture.cs (32): Assembly assembly = FindAssemblyByName(nameString);. AssemblyVersionFixture.cs (41): Assembly[] myAssemblies = Thread.GetDomain().GetAssemblies();.C AssemblyVersionFixture.cs (43): Assembly assembly = null; // Null value carrier: assembly. AssemblyVersionFixture.cs (44): int i = 0; i < myAssemblies.Length #x26;#x26; assembly == null // Null value carrier: assembly! AssemblyVersionFixture.cs (49): return assembly; // Null value carrier: assembly! AssemblyVersionFixture.cs (50): } // Null value carrier: CS$1$0000! AssemblyVersionFixture.cs (32): Assembly assembly = FindAssemblyByName(nameString); // Null value carrier: this.FindAssemblyByName(...).P AssemblyVersionFixture.cs (34): System.Version foundVersion = assembly.GetName().Version; // Null value carrier: assembly

nunit/nunit.core.tests/AttributeInheritance.cs42: "test" may possibly be null BD.EXCEPT.NR-1 . AttributeInheritance.cs (40): Test fixture = builder.BuildFrom(typeof(TestData.AttributeInheritanceFixture));

. NUnitTestFixtureBuilder.cs (56): Attribute[] attrs = GetTestFixtureAttributes(type);

. NUnitTestFixtureBuilder.cs (264): Attribute[] attrs = Reflect.GetAttributes(type, NUnitFramework.TestFixtureAttribute, true);

. NUnitTestFixtureBuilder.cs (267): if (attrs.Length <= 1)

. NUnitTestFixtureBuilder.cs (268): return attrs;

. NUnitTestFixtureBuilder.cs (302): }

. NUnitTestFixtureBuilder.cs (56): Attribute[] attrs = GetTestFixtureAttributes(type);

. NUnitTestFixtureBuilder.cs (59): if (type.IsGenericType)

. NUnitTestFixtureBuilder.cs (60): return BuildMultipleFixtures(type, attrs);

. NUnitTestFixtureBuilder.cs (83): TestSuite suite = new ParameterizedFixtureSuite(type);

. NUnitTestFixtureBuilder.cs (85): if (attrs.Length > 0)

. NUnitTestFixtureBuilder.cs (92): suite.RunState = RunState.NotRunnable;

. NUnitTestFixtureBuilder.cs (93): suite.IgnoreReason = "Generic fixture has no type arguments provided";

. NUnitTestFixtureBuilder.cs (96): return suite;

. NUnitTestFixtureBuilder.cs (97): }

. NUnitTestFixtureBuilder.cs (60): return BuildMultipleFixtures(type, attrs);

. NUnitTestFixtureBuilder.cs (75): }

. AttributeInheritance.cs (40): Test fixture = builder.BuildFrom(typeof(TestData.AttributeInheritanceFixture));! AttributeInheritance.cs (41): Test test = TestUtilities.TestFinder.Find("ShouldBeExplicit", fixture, false);. TestFinder.cs (20): if (test.Tests != null). TestSuite.cs (148): return tests; }. TestFinder.cs (20): if (test.Tests != null).C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! AttributeInheritance.cs (41): Test test = TestUtilities.TestFinder.Find("ShouldBeExplicit", fixture, false); // Null value carrier: Find(...).P AttributeInheritance.cs (42): Assert.That(test.RunState, Is.EqualTo(RunState.Explicit)); // Null value carrier: test

51: "test" may possibly be null BD.EXCEPT.NR-1 . AttributeInheritance.cs (49): Test fixture = builder.BuildFrom(typeof(TestData.AttributeInheritanceFixture));

. NUnitTestFixtureBuilder.cs (56): Attribute[] attrs = GetTestFixtureAttributes(type);

. NUnitTestFixtureBuilder.cs (264): Attribute[] attrs = Reflect.GetAttributes(type, NUnitFramework.TestFixtureAttribute, true);

. NUnitTestFixtureBuilder.cs (267): if (attrs.Length <= 1)

. NUnitTestFixtureBuilder.cs (268): return attrs;

. NUnitTestFixtureBuilder.cs (302): }

. NUnitTestFixtureBuilder.cs (56): Attribute[] attrs = GetTestFixtureAttributes(type);

. NUnitTestFixtureBuilder.cs (59): if (type.IsGenericType)

. NUnitTestFixtureBuilder.cs (60): return BuildMultipleFixtures(type, attrs);

. NUnitTestFixtureBuilder.cs (83): TestSuite suite = new ParameterizedFixtureSuite(type);

. NUnitTestFixtureBuilder.cs (85): if (attrs.Length > 0)

. NUnitTestFixtureBuilder.cs (92): suite.RunState = RunState.NotRunnable;

. NUnitTestFixtureBuilder.cs (93): suite.IgnoreReason = "Generic fixture has no type arguments provided";

. NUnitTestFixtureBuilder.cs (96): return suite;

. NUnitTestFixtureBuilder.cs (97): }

Page 17: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 17

. NUnitTestFixtureBuilder.cs (60): return BuildMultipleFixtures(type, attrs);

. NUnitTestFixtureBuilder.cs (75): }

. AttributeInheritance.cs (49): Test fixture = builder.BuildFrom(typeof(TestData.AttributeInheritanceFixture));! AttributeInheritance.cs (50): Test test = TestUtilities.TestFinder.Find("ShouldBeIgnored", fixture, false);. TestFinder.cs (20): if (test.Tests != null). TestSuite.cs (148): return tests; }. TestFinder.cs (20): if (test.Tests != null).C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! AttributeInheritance.cs (50): Test test = TestUtilities.TestFinder.Find("ShouldBeIgnored", fixture, false); // Null value carrier: Find(...).P AttributeInheritance.cs (51): Assert.That(test.RunState, Is.EqualTo(RunState.Ignored)); // Null value carrier: test

nunit/nunit.core.tests/EventQueueTests.cs53: "e" may possibly be null BD.EXCEPT.NR-1 . EventQueueTests.cs (50): int index = 0; index < events.Length

! EventQueueTests.cs (52): Event e = q.Dequeue(false);. EventQueue.cs (320): lock( this.syncRoot ). EventQueue.cs (321): {. EventQueue.cs (322): while ( this.queue.Count == 0 ). EventQueue.cs (324): if ( blockWhenEmpty #x26;#x26; !this.stopped ).C EventQueue.cs (330): return null; // Null value carrier: CS$1$0000! EventQueue.cs (336): } // Null value carrier: CS$1$0000! EventQueueTests.cs (52): Event e = q.Dequeue(false); // Null value carrier: q.Dequeue(...).P EventQueueTests.cs (53): Assert.AreEqual(events[index].GetType(), e.GetType(), string.Format("Event {0}", index)); // Null value carrier: e

nunit/nunit.core.tests/FixtureSetUpTearDownTest.cs350: "get_CurrentPrincipal().get_Identity()" may possibly be null BD.EXCEPT.NR-1 ! FixtureSetUpTearDownTest.cs (350): Assert.AreEqual("foo", Thread.CurrentPrincipal.Identity.Name);

.C CallContextTests.cs (119): return null; // Null value carrier: CS$1$0000! CallContextTests.cs (120): } // Null value carrier: CS$1$0000.P FixtureSetUpTearDownTest.cs (350): Assert.AreEqual("foo", Thread.CurrentPrincipal.Identity.Name); // Null value carrier:get_CurrentPrincipal().get_Identity()

358: "get_CurrentPrincipal().get_Identity()" may possibly be null BD.EXCEPT.NR-1 ! FixtureSetUpTearDownTest.cs (358): Assert.AreEqual("foo", Thread.CurrentPrincipal.Identity.Name);

.C CallContextTests.cs (119): return null; // Null value carrier: CS$1$0000! CallContextTests.cs (120): } // Null value carrier: CS$1$0000.P FixtureSetUpTearDownTest.cs (358): Assert.AreEqual("foo", Thread.CurrentPrincipal.Identity.Name); // Null value carrier:get_CurrentPrincipal().get_Identity()

nunit/nunit.core.tests/Generic/SimpleGenericFixture.cs24: Leakage of reflection data ("GetTypeFromHandle(...)") via console BD.SECURITY.SENS-1 CP SimpleGenericFixture.cs (24): Console.WriteLine("TList is {0}", typeof(TList));nunit/nunit.core.tests/NameFilterTest.cs48: "mock1" may possibly be null BD.EXCEPT.NR-1 ! NameFilterTest.cs (45): Test mock1 = TestFinder.Find("MockTest1", testSuite, true);

. TestFinder.cs (20): if (test.Tests != null)

. TestSuite.cs (148): return tests; }

. TestFinder.cs (20): if (test.Tests != null)

.C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! NameFilterTest.cs (45): Test mock1 = TestFinder.Find("MockTest1", testSuite, true); // Null value carrier: Find(...). NameFilterTest.cs (46): NameFilter filter = new NameFilter(); // Null value carrier: mock1. NameFilterTest.cs (47): filter.Add(mock3.TestName); // Null value carrier: mock1.P NameFilterTest.cs (48): filter.Add(mock1.TestName); // Null value carrier: mock1

58: "mockTest" may possibly be null BD.EXCEPT.NR-1 ! NameFilterTest.cs (57): NUnit.Core.TestSuite mockTest = (NUnit.Core.TestSuite) TestFinder.Find("MockTestFixture", testSuite, true);

. TestFinder.cs (20): if (test.Tests != null)

. TestSuite.cs (148): return tests; }

. TestFinder.cs (20): if (test.Tests != null)

.C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! NameFilterTest.cs (57): NUnit.Core.TestSuite mockTest = (NUnit.Core.TestSuite) TestFinder.Find("MockTestFixture", testSuite, true); // Null valuecarrier: Find(...).P NameFilterTest.cs (58): NameFilter filter = new NameFilter(mockTest.TestName); // Null value carrier: mockTest

68: "mock1" may possibly be null BD.EXCEPT.NR-1 ! NameFilterTest.cs (67): Test mock1 = TestFinder.Find("MockTest1", testSuite, true);

. TestFinder.cs (20): if (test.Tests != null)

. TestSuite.cs (148): return tests; }

. TestFinder.cs (20): if (test.Tests != null)

.C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! NameFilterTest.cs (67): Test mock1 = TestFinder.Find("MockTest1", testSuite, true); // Null value carrier: Find(...).P NameFilterTest.cs (68): NameFilter filter = new NameFilter(mock1.TestName); // Null value carrier: mock1

95: "explicitTest" may possibly be null BD.EXCEPT.NR-1 ! NameFilterTest.cs (94): Test explicitTest = TestFinder.Find("ExplicitlyRunTest", testSuite, true);

. TestFinder.cs (20): if (test.Tests != null)

. TestSuite.cs (148): return tests; }

. TestFinder.cs (20): if (test.Tests != null)

.C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000

Page 18: Nunit  C# source code  defects report by Parasoft dotTEST

Page 18 dotTEST Report [09/21/11 14:13:53]

! TestFinder.cs (36): } // Null value carrier: CS$1$0000! NameFilterTest.cs (94): Test explicitTest = TestFinder.Find("ExplicitlyRunTest", testSuite, true); // Null value carrier: Find(...).P NameFilterTest.cs (95): NameFilter filter = new NameFilter( explicitTest.TestName ); // Null value carrier: explicitTest

104: "mockTest" may possibly be null BD.EXCEPT.NR-1 ! NameFilterTest.cs (103): NUnit.Core.TestSuite mockTest = (NUnit.Core.TestSuite) TestFinder.Find("MockTestFixture", testSuite, true);

. TestFinder.cs (20): if (test.Tests != null)

. TestSuite.cs (148): return tests; }

. TestFinder.cs (20): if (test.Tests != null)

.C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! NameFilterTest.cs (103): NUnit.Core.TestSuite mockTest = (NUnit.Core.TestSuite) TestFinder.Find("MockTestFixture", testSuite, true); // Nullvalue carrier: Find(...).P NameFilterTest.cs (104): mockTest.RunState = RunState.Explicit; // Null value carrier: mockTest

114: "mockTest" may possibly be null BD.EXCEPT.NR-1 ! NameFilterTest.cs (113): NUnit.Core.TestSuite mockTest = (NUnit.Core.TestSuite) TestFinder.Find("MockTestFixture", testSuite, true);

. TestFinder.cs (20): if (test.Tests != null)

. TestSuite.cs (148): return tests; }

. TestFinder.cs (20): if (test.Tests != null)

.C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! NameFilterTest.cs (113): NUnit.Core.TestSuite mockTest = (NUnit.Core.TestSuite) TestFinder.Find("MockTestFixture", testSuite, true); // Nullvalue carrier: Find(...).P NameFilterTest.cs (114): mockTest.RunState = RunState.Explicit; // Null value carrier: mockTest

nunit/nunit.core.tests/SimpleNameFilterTests.cs104: "mockTest" may possibly be null BD.EXCEPT.NR-1 ! SimpleNameFilterTests.cs (103): NUnit.Core.TestSuite mockTest = (NUnit.Core.TestSuite)TestFinder.Find("MockTestFixture", testSuite, true);

. TestFinder.cs (20): if (test.Tests != null)

. TestSuite.cs (148): return tests; }

. TestFinder.cs (20): if (test.Tests != null)

.C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! SimpleNameFilterTests.cs (103): NUnit.Core.TestSuite mockTest = (NUnit.Core.TestSuite)TestFinder.Find("MockTestFixture", testSuite, true); //Null value carrier: Find(...).P SimpleNameFilterTests.cs (104): mockTest.RunState = RunState.Explicit; // Null value carrier: mockTest

114: "mockTest" may possibly be null BD.EXCEPT.NR-1 ! SimpleNameFilterTests.cs (113): NUnit.Core.TestSuite mockTest = (NUnit.Core.TestSuite)TestFinder.Find("MockTestFixture", testSuite, true);

. TestFinder.cs (20): if (test.Tests != null)

. TestSuite.cs (148): return tests; }

. TestFinder.cs (20): if (test.Tests != null)

.C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! SimpleNameFilterTests.cs (113): NUnit.Core.TestSuite mockTest = (NUnit.Core.TestSuite)TestFinder.Find("MockTestFixture", testSuite, true); //Null value carrier: Find(...).P SimpleNameFilterTests.cs (114): mockTest.RunState = RunState.Explicit; // Null value carrier: mockTest

nunit/nunit.core.tests/SuiteBuilderTests.cs126: Stream not closed: sw.stream BD.RES.LEAKS-1 . SuiteBuilderTests.cs (116): FileInfo file = new FileInfo( tempFile );

.C SuiteBuilderTests.cs (118): StreamWriter sw = file.AppendText(); // Allocated resource variable: file.AppendText().stream!E SuiteBuilderTests.cs (120): sw.WriteLine("This is a new entry to add to the file"); // TextWriter.WriteLine() throws: IOException // Allocatedresource variable: sw.stream.P SuiteBuilderTests.cs (126): } // Allocated resource variable: sw.stream

nunit/nunit.core.tests/TestMethodSignatureTests.cs128: "test" may possibly be null BD.EXCEPT.NR-1 ! TestMethodSignatureTests.cs (127): Test test = TestFinder.Find( "TestMethodWithMultipleTestCases", fixture, false );

. TestFinder.cs (20): if (test.Tests != null)

. Test.cs (297): return null; }

. TestFinder.cs (20): if (test.Tests != null)

.C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! TestMethodSignatureTests.cs (127): Test test = TestFinder.Find( "TestMethodWithMultipleTestCases", fixture, false ); // Null value carrier: Find(...).P TestMethodSignatureTests.cs (128): Assert.That( test.RunState, Is.EqualTo( RunState.Runnable ) ); // Null value carrier: test

141: "suite" may possibly be null BD.EXCEPT.NR-1 . TestMethodSignatureTests.cs (138): string name = "TestMethodWithMultipleTestCases";

. TestMethodSignatureTests.cs (139): string fullName = typeof (TestMethodSignatureFixture).FullName + "." + name;! TestMethodSignatureTests.cs (140): TestSuite suite = (TestSuite)TestFinder.Find(name, fixture, false);. TestFinder.cs (20): if (test.Tests != null). Test.cs (297): return null; }. TestFinder.cs (20): if (test.Tests != null).C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! TestMethodSignatureTests.cs (140): TestSuite suite = (TestSuite)TestFinder.Find(name, fixture, false); // Null value carrier: Find(...).P TestMethodSignatureTests.cs (141): Assert.That(suite.TestCount, Is.EqualTo(3)); // Null value carrier: suite

174: "suite" may possibly be null BD.EXCEPT.NR-1 . TestMethodSignatureTests.cs (171): string name = "TestMethodWithParamsArgument";

. TestMethodSignatureTests.cs (172): string fullName = typeof(TestMethodSignatureFixture).FullName + "." + name;! TestMethodSignatureTests.cs (173): TestSuite suite = (TestSuite)TestFinder.Find(name, fixture, false);

Page 19: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 19

. TestFinder.cs (20): if (test.Tests != null)

. Test.cs (297): return null; }

. TestFinder.cs (20): if (test.Tests != null)

.C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! TestMethodSignatureTests.cs (173): TestSuite suite = (TestSuite)TestFinder.Find(name, fixture, false); // Null value carrier: Find(...).P TestMethodSignatureTests.cs (174): Test test = suite.Tests[0] as Test; // Null value carrier: suite

nunit/nunit.core.tests/TestSuiteTest.cs255: "listener.lastResult" may possibly be null BD.EXCEPT.NR-1 . TestSuiteTest.cs (251): TestSuite fixture = TestBuilder.MakeFixture( typeof( NUnit.Tests.Assemblies.MockTestFixture ) );

. TestBuilder.cs (26): return (TestSuite)suiteBuilder.BuildFrom( type );

. TestBuilder.cs (27): }

. TestSuiteTest.cs (251): TestSuite fixture = TestBuilder.MakeFixture( typeof( NUnit.Tests.Assemblies.MockTestFixture ) );

. TestSuiteTest.cs (252): Test test = (Test) fixture.Tests[0];

. TestSuite.cs (148): return tests; }

. TestSuiteTest.cs (252): Test test = (Test) fixture.Tests[0];! TestSuiteTest.cs (253): RecordingListener listener = new RecordingListener();. TestSuiteTest.cs (287): public ArrayList testStarted = new ArrayList();. TestSuiteTest.cs (288): public ArrayList testFinished = new ArrayList();. TestSuiteTest.cs (289): public ArrayList suiteStarted = new ArrayList();. TestSuiteTest.cs (290): public ArrayList suiteFinished = new ArrayList();.C TestSuiteTest.cs (292): public TestResult lastResult = null; // Null value carrier: this.lastResult! TestSuiteTest.cs (253): RecordingListener listener = new RecordingListener(); // Null value carrier: new RecordingListener.lastResult. TestSuiteTest.cs (254): test.Run(listener, null); // Null value carrier: listener.lastResult.P TestSuiteTest.cs (255): Assert.IsFalse(listener.lastResult.IsFailure); // Null value carrier: listener.lastResult

nunit/nunit.core.tests/XmlTest.cs93: Leakage of exception data ("Concat(...)") via console BD.SECURITY.SENS-1 . XmlTest.cs (78): success = false;

. XmlTest.cs (79): Console.WriteLine("\tValidation error: " + args.Message);

. XmlTest.cs (81): if (args.Severity == XmlSeverityType.Warning)

. XmlTest.cs (83): Console.WriteLine("No schema found to enforce validation.");

. XmlTest.cs (84): }

. XmlTest.cs (91): if (args.Exception != null)CP XmlTest.cs (93): Console.WriteLine(args.Exception.SourceUri + "," + args.Exception.LinePosition + "," + args.Exception.LineNumber); //Sensitive data: Concat(...)

nunit/nunit.framework.dll/Constraints/TypeConstraints.cs39: Expression may possibly be null BD.PB.STRNULL-2 CP TypeConstraints.cs (39): writer.WriteActualValue( actual == null ? null : actual.GetType() );nunit/nunit.framework.tests/Constraints/EqualTest.cs499: "actual" may possibly be null BD.EXCEPT.NR-1 . EqualTest.cs (487): StringReader rdr = new StringReader(ex.Message);

. EqualTest.cs (488): rdr.ReadLine();

. EqualTest.cs (489): string expected = rdr.ReadLine();

. EqualTest.cs (490): if (expected != null #x26;#x26; expected.Length > 11)

. EqualTest.cs (492): string actual = rdr.ReadLine();

.C EqualTest.cs (493): if (actual != null #x26;#x26; actual.Length > 11) // Null value carrier: actual

. EqualTest.cs (495): string line = rdr.ReadLine(); // Null value carrier: actual

. EqualTest.cs (496): Assert.That(line, new NotConstraint(new EqualConstraint(null)), "No caret line displayed"); // Null value carrier: actual

. EqualTest.cs (497): int caret = line.Substring(11).IndexOf('^'); // Null value carrier: actual

.P EqualTest.cs (499): int minLength = Math.Min(expected.Length, actual.Length); // Null value carrier: actual499: "expected" may possibly be null BD.EXCEPT.NR-1 . EqualTest.cs (487): StringReader rdr = new StringReader(ex.Message);

. EqualTest.cs (488): rdr.ReadLine();

. EqualTest.cs (489): string expected = rdr.ReadLine();

.C EqualTest.cs (490): if (expected != null #x26;#x26; expected.Length > 11) // Null value carrier: expected

. EqualTest.cs (492): string actual = rdr.ReadLine(); // Null value carrier: expected

. EqualTest.cs (493): if (actual != null #x26;#x26; actual.Length > 11) // Null value carrier: expected

. EqualTest.cs (495): string line = rdr.ReadLine(); // Null value carrier: expected

. EqualTest.cs (496): Assert.That(line, new NotConstraint(new EqualConstraint(null)), "No caret line displayed"); // Null value carrier: expected

. EqualTest.cs (497): int caret = line.Substring(11).IndexOf('^'); // Null value carrier: expected

.P EqualTest.cs (499): int minLength = Math.Min(expected.Length, actual.Length); // Null value carrier: expectednunit/nunit.framework.tests/Syntax/ThrowsTests.cs195: "s" may possibly be null BD.EXCEPT.AN-1 .C ThrowsTests.cs (176): new MyClass(null) // Null value carrier: <parameter #1 of .ctor()>

. ThrowsTests.cs (191): public MyClass(string s) // Null value carrier: s

. ThrowsTests.cs (193): if (s == null) // Null value carrier: sEP ThrowsTests.cs (195): throw new ArgumentNullException(); // Null value carrier: s

195: "s" may possibly be null BD.EXCEPT.AN-1 .C ThrowsTests.cs (184): new MyClass(null) // Null value carrier: <parameter #1 of .ctor()>

. ThrowsTests.cs (191): public MyClass(string s) // Null value carrier: s

. ThrowsTests.cs (193): if (s == null) // Null value carrier: sEP ThrowsTests.cs (195): throw new ArgumentNullException(); // Null value carrier: s

nunit/nunit.uiexception.dll/CSharpParser/TokenClassifier.cs415: "st.get_Item(...)" may possibly be null BD.EXCEPT.NR-1 . TokenClassifier.cs (413): State st in _states

Page 20: Nunit  C# source code  defects report by Parasoft dotTEST

Page 20 dotTEST Report [09/21/11 14:13:53]

. TokenClassifier.cs (414): if (st.InitialState == smState)! TokenClassifier.cs (415): return (st[transition].SMSTATE);. TokenClassifier.cs (315): in Transitions.C TokenClassifier.cs (318): return (null); // Null value carrier: CS$1$0000! TokenClassifier.cs (319): } // Null value carrier: CS$1$0000.P TokenClassifier.cs (415): return (st[transition].SMSTATE); // Null value carrier: st.get_Item(...)

426: "st.get_Item(...)" may possibly be null BD.EXCEPT.NR-1 . TokenClassifier.cs (424): State st in _states

. TokenClassifier.cs (425): if (st.InitialState == smState)! TokenClassifier.cs (426): return (st[transition].TokenSMSTATE);. TokenClassifier.cs (315): in Transitions.C TokenClassifier.cs (318): return (null); // Null value carrier: CS$1$0000! TokenClassifier.cs (319): } // Null value carrier: CS$1$0000.P TokenClassifier.cs (426): return (st[transition].TokenSMSTATE); // Null value carrier: st.get_Item(...)

nunit/nunit.uiexception.dll/Controls/ErrorBrowser.cs140: "this.get_Toolbar().get_SelectedDisplay()" may possibly be null BD.EXCEPT.NR-1 . ErrorBrowser.cs (140): LayoutPanel.Content = Toolbar.SelectedDisplay.Content;

. ErrorBrowser.cs (150): return (_layout); }

. ErrorBrowser.cs (140): LayoutPanel.Content = Toolbar.SelectedDisplay.Content;

. ErrorBrowser.cs (155): return ((ErrorToolbar)_layout.Toolbar);

. ErrorPanelLayout.cs (104): return (_header[PANEL_LEFT]); }

. ErrorBrowser.cs (155): return ((ErrorToolbar)_layout.Toolbar); }! ErrorBrowser.cs (140): LayoutPanel.Content = Toolbar.SelectedDisplay.Content;. ErrorToolbar.cs (86): if (_selection == -1).C ErrorToolbar.cs (87): return (null); // Null value carrier: CS$1$0000! ErrorToolbar.cs (89): } // Null value carrier: CS$1$0000.P ErrorBrowser.cs (140): LayoutPanel.Content = Toolbar.SelectedDisplay.Content; // Null value carrier: this.get_Toolbar().get_SelectedDisplay()

nunit/nunit.uiexception.dll/Controls/SourceCodeDisplay.cs160: Leakage of exception data ("Format(...)") via Windows Forms control BD.SECURITY.SENS-1 . SourceCodeDisplay.cs (158): catch (Exception ex)

CP SourceCodeDisplay.cs (160): _codeView.Text = String.Format( "Cannot open file: '{0}'\r\nError: '{1}'\r\n", item.Path, ex.Message); // Sensitivedata: Format(...)

nunit/nunit.uiexception.dll/ExceptionItem.cs230: Stream not closed: rder.stream BD.RES.LEAKS-1 . ExceptionItem.cs (219): if (!System.IO.File.Exists(_path))

. ExceptionItem.cs (222): if (_text == null)

.C ExceptionItem.cs (224): StreamReader rder = new StreamReader(_path); // Allocated resource variable: new StreamReader.stream!E ExceptionItem.cs (225): _text = rder.ReadToEnd(); // StreamReader.ReadToEnd() throws: IOException // Allocated resource variable:rder.stream.P ExceptionItem.cs (230): } // Allocated resource variable: rder.stream

nunit/nunit.uiexception.dll/TraceExceptionHelper.cs31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestCodeFormatterCollection.cs (75): _empty.Register(null, "cs"); // Null value carrier: <parameter #1 of Register()>

! CodeFormatterCollection.cs (131): UiExceptionHelper.CheckNotNull(formatter, "formatter"); // Null value carrier: formatter. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestCodeFormatterCollection.cs (84): _empty.Register(_csFormatter, null); // Null value carrier: <parameter #2 of Register()>

. CodeFormatterCollection.cs (131): UiExceptionHelper.CheckNotNull(formatter, "formatter"); // Null value carrier: extension! CodeFormatterCollection.cs (132): UiExceptionHelper.CheckNotNull(extension, "language"); // Null value carrier: extension. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestCodeFormatterCollection.cs (129): if (_empty[(string)null] == null) // Null value carrier: <parameter #1 of get_Item()>

! CodeFormatterCollection.cs (60): UiExceptionHelper.CheckNotNull(language, "language"); // Null value carrier: language. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestCodeFormatterCollection.cs (137): if (_empty[null] == null) // Null value carrier: <parameter #1 of get_Item()>

! CodeFormatterCollection.cs (60): UiExceptionHelper.CheckNotNull(language, "language"); // Null value carrier: language. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestGeneralCodeFormatter.cs (53): _formatter.DefaultFormatter = null; // Null value carrier: <parameter #1 of set_DefaultFormatter()>

! GeneralCodeFormatter.cs (62): UiExceptionHelper.CheckNotNull(value, "value"); // Null value carrier: value. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestGeneralCodeFormatter.cs (72): _formatter.GetFormatterFromExtension(null); // Null value carrier: <parameter #1 of

GetFormatterFromExtension()>! GeneralCodeFormatter.cs (105): UiExceptionHelper.CheckNotNull(extension, "extension"); // Null value carrier: extension. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1

Page 21: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 21

.C TestGeneralCodeFormatter.cs (79): _formatter.GetFormatterFromLanguage(null); // Null value carrier: <parameter #1 ofGetFormatterFromLanguage()>! GeneralCodeFormatter.cs (87): UiExceptionHelper.CheckNotNull(languageName, "language"); // Null value carrier: languageName. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestGeneralCodeFormatter.cs (104): _formatter.FormatFromExtension(null, "cs"); // Null value carrier: <parameter #1 of

FormatFromExtension()>! GeneralCodeFormatter.cs (125): UiExceptionHelper.CheckNotNull(code, "code"); // Null value carrier: code. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestGeneralCodeFormatter.cs (113): _formatter.FormatFromExtension("test", null); // Null value carrier: <parameter #2 of

FormatFromExtension()>. GeneralCodeFormatter.cs (125): UiExceptionHelper.CheckNotNull(code, "code"); // Null value carrier: extension! GeneralCodeFormatter.cs (126): UiExceptionHelper.CheckNotNull(extension, "extension"); // Null value carrier: extension. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestGeneralCodeFormatter.cs (122): _formatter.Format(null, "C#"); // Null value carrier: <parameter #1 of Format()>

! GeneralCodeFormatter.cs (150): UiExceptionHelper.CheckNotNull(code, "code"); // Null value carrier: code. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestGeneralCodeFormatter.cs (131): _formatter.Format("test", null); // Null value carrier: <parameter #2 of Format()>

. GeneralCodeFormatter.cs (150): UiExceptionHelper.CheckNotNull(code, "code"); // Null value carrier: language! GeneralCodeFormatter.cs (151): UiExceptionHelper.CheckNotNull(language, "language"); // Null value carrier: language. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestPlainTextCodeFormatter.cs (54): _formatter.Format(null); // Null value carrier: <parameter #1 of Format()>

! PlainTextCodeFormatter.cs (41): UiExceptionHelper.CheckNotNull(sourceCode, "sourceCode"); // Null value carrier: sourceCode. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestDefaultErrorListRenderer.cs (150): _renderer.DrawToGraphics(null, null, _gr, new Rectangle()); // Null value carrier: <parameter #1 of

DrawToGraphics()>! DefaultErrorListRenderer.cs (88): UiExceptionHelper.CheckNotNull(items, "items"); // Null value carrier: items. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 !E TestDefaultErrorListRenderer.cs (150): _renderer.DrawToGraphics(null, null, _gr, new Rectangle()); //

DefaultErrorListRenderer.DrawToGraphics() throws: ArgumentNullException!E DefaultErrorListRenderer.cs (88): UiExceptionHelper.CheckNotNull(items, "items"); // UiExceptionHelper.CheckNotNull() throws:ArgumentNullException. TraceExceptionHelper.cs (30): if (value == null)!E TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName);. TestDefaultErrorListRenderer.cs (153): catch (Exception e). TestDefaultErrorListRenderer.cs (154): Assert.That(e.Message.Contains("items"));. Assert.cs (494): Assert.That(condition, Is.True, null, null);. Is.cs (73): return new TrueConstraint(); }. Assert.cs (494): Assert.That(condition, Is.True, null, null);. Assert.cs (313): Constraint constraint = expression.Resolve();. Assert.cs (315): Assert.IncrementAssertCount();. Assert.cs (316): if (!constraint.Matches(actual)). Assert.cs (322): }. Assert.cs (495): }. TestDefaultErrorListRenderer.cs (155): }. TestDefaultErrorListRenderer.cs (158): _renderer.DrawToGraphics(_filled.Items, null, null, new Rectangle());. ErrorList.cs (48): return (_items); }.C TestDefaultErrorListRenderer.cs (158): _renderer.DrawToGraphics(_filled.Items, null, null, new Rectangle()); // Null value carrier: <parameter #3of DrawToGraphics()>. DefaultErrorListRenderer.cs (88): UiExceptionHelper.CheckNotNull(items, "items"); // Null value carrier: g! DefaultErrorListRenderer.cs (89): UiExceptionHelper.CheckNotNull(g, "g"); // Null value carrier: g. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestErrorBrowser.cs (70): _errorBrowser.RegisterDisplay(null); // Null value carrier: <parameter #1 of RegisterDisplay()>

! ErrorBrowser.cs (114): UiExceptionHelper.CheckNotNull(display, "display"); // Null value carrier: display. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestErrorToolbar.cs (84): _emptyToolbar.Register(null); // Null value carrier: <parameter #1 of Register()>

! ErrorToolbar.cs (119): UiExceptionHelper.CheckNotNull(display, "display"); // Null value carrier: display. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

Page 22: Nunit  C# source code  defects report by Parasoft dotTEST

Page 22 dotTEST Report [09/21/11 14:13:53]

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestCSCode.cs (138): FormattedCode.CheckData(null); // Null value carrier: <parameter #1 of CheckData()>

! CSCode.cs (169): UiExceptionHelper.CheckNotNull(data, "data"); // Null value carrier: data. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestCSParser.cs (60): _parser.Format(null); // Null value carrier: <parameter #1 of Format()>

! CSParser.cs (66): UiExceptionHelper.CheckNotNull(csharpCode, "csharpCode"); // Null value carrier: csharpCode. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestLexer.cs (42): _lexer.Parse(null); // Null value carrier: <parameter #1 of Parse()>

! Lexer.cs (97): UiExceptionHelper.CheckNotNull(codeCSharp, "text"); // Null value carrier: codeCSharp. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestTokenClassifier.cs (32): _classifier.Classify(null); // Null value carrier: <parameter #1 of Classify()>

! TokenClassifier.cs (173): UiExceptionHelper.CheckNotNull(token, "token"); // Null value carrier: token. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestTokenClassifier.cs (223): _classifier.Classify(null); // Null value carrier: <parameter #1 of Classify()>

! TokenClassifier.cs (173): UiExceptionHelper.CheckNotNull(token, "token"); // Null value carrier: token. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestTokenDictionary.cs (57): _emptyDictionary.Add(null, LexerTag.Separator); // Null value carrier: <parameter #1 of Add()>

! TokenDictionary.cs (80): UiExceptionHelper.CheckNotNull(value, "value"); // Null value carrier: value. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestTokenDictionary.cs (98): _emptyDictionary.PopulateTokenStartingWith( null, new List<LexToken>()); // Null value carrier: <parameter #1 of

PopulateTokenStartingWith()>! TestTokenDictionary.cs (284): base.PopulateTokenStartingWith(starter, output); // Null value carrier: starter! TokenDictionary.cs (230): UiExceptionHelper.CheckNotNull(starter, "starter"); // Null value carrier: starter. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestTokenDictionary.cs (184): _emptyDictionary.TryMatch(null, ""); // Null value carrier: <parameter #1 of TryMatch()>

! TokenDictionary.cs (163): UiExceptionHelper.CheckNotNull(text, "text"); // Null value carrier: text. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestTokenDictionary.cs (191): _emptyDictionary.TryMatch("", null); // Null value carrier: <parameter #2 of TryMatch()>

. TokenDictionary.cs (163): UiExceptionHelper.CheckNotNull(text, "text"); // Null value carrier: prediction! TokenDictionary.cs (164): UiExceptionHelper.CheckNotNull(prediction, "prediction"); // Null value carrier: prediction. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestExceptionItem.cs (25): new ErrorItem(null, 1); // Null value carrier: <parameter #1 of .ctor()>

. ExceptionItem.cs (51): public ErrorItem(string path, int lineNumber) // Null value carrier: path! ExceptionItem.cs (53): UiExceptionHelper.CheckNotNull(path, "path"); // Null value carrier: path. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestExceptionItemCollection.cs (86): _items.Add(null); // Null value carrier: <parameter #1 of Add()>

! ExceptionItemCollection.cs (58): UiExceptionHelper.CheckNotNull(item, "item"); // Null value carrier: item. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null BD.EXCEPT.AN-1 .C TestPaintLineLocation.cs (43): new PaintLineLocation(0, null, new PointF(0, 0)); // Null value carrier: <parameter #2 of .ctor()>

. PaintLineLocation.cs (39): public PaintLineLocation(int lineIndex, string text, PointF location) // Null value carrier: text

. PaintLineLocation.cs (41): SetLine(lineIndex); // Null value carrier: text! PaintLineLocation.cs (42): SetText(text); // Null value carrier: text! PaintLineLocation.cs (107): UiExceptionHelper.CheckNotNull(text, "text"); // Null value carrier: text. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw new ArgumentNullException(paramName); // Null value carrier: value

nunit/nunit.uikit.dll/ErrorDisplay.cs347: Leakage of ToString() result ("text") via Windows Forms control BD.SECURITY.SENS-1 . ErrorDisplay.cs (329): if ( tipWindow != null )

. ErrorDisplay.cs (331): if ( settings.GetSetting( "Gui.ResultTabs.ErrorsTab.ToolTipsEnabled", false ) #x26;#x26; hoverIndex >= 0 #x26;#x26;hoverIndex < detailL.... ErrorDisplay.cs (333): Graphics g = Graphics.FromHwnd( detailList.Handle );. ErrorDisplay.cs (335): Rectangle itemRect = detailList.GetItemRectangle( hoverIndex );

Page 23: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 23

.C ErrorDisplay.cs (336): string text = detailList.Items[hoverIndex].ToString(); // Sensitive data: this.detailList.get_Items().get_Item(...).ToString()

. ErrorDisplay.cs (338): SizeF sizeNeeded = g.MeasureString( text, detailList.Font ); // Sensitive data: text

. ErrorDisplay.cs (339): bool expansionNeeded = itemRect.Width < (int)sizeNeeded.Width || itemRect.Height < (int)sizeNeeded.Height; // Sensitivedata: text. ErrorDisplay.cs (343): if ( expansionNeeded ) // Sensitive data: text. ErrorDisplay.cs (345): tipWindow = new TipWindow( detailList, hoverIndex ); // Sensitive data: text. ErrorDisplay.cs (346): tipWindow.ItemBounds = itemRect; // Sensitive data: text. TipWindow.cs (238): itemBounds = value; }.P ErrorDisplay.cs (347): tipWindow.TipText = text; // Sensitive data: text

nunit/nunit.uikit.dll/ExpandingLabel.cs130: Leakage of ToString() result ("value") via Windows Forms control BD.SECURITY.SENS-1 ! ExceptionDetailsForm.cs (118): this.message.Text = FormatMessage( exception );

. ExceptionDetailsForm.cs (126): StringBuilder sb = new StringBuilder();

. ExceptionDetailsForm.cs (128): Exception ex = exception; ex != null

. ExceptionDetailsForm.cs (130): if ( ex != exception )

.C ExceptionDetailsForm.cs (131): sb.Append( ex.GetType().ToString() ); // Sensitive data: ex.GetType().ToString()

. ExceptionDetailsForm.cs (132): sb.Append( ": " ); // Sensitive data: sb

. ExceptionDetailsForm.cs (133): sb.Append( ex.Message ); // Sensitive data: sb

. ExceptionDetailsForm.cs (128): ex != null; ex = ex.InnerException // Sensitive data: sb! ExceptionDetailsForm.cs (136): return sb.ToString(); // Sensitive data: sb! ExceptionDetailsForm.cs (137): } // Sensitive data: CS$1$0000! ExceptionDetailsForm.cs (118): this.message.Text = FormatMessage( exception ); // Sensitive data: this.FormatMessage(...).P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

130: Leakage of ToString() result ("value") via Windows Forms control BD.SECURITY.SENS-1 ! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText;

.C TestSuiteTreeNode.cs (107): return test.RunState.ToString(); // Sensitive data: new RunState.ToString()! TestSuiteTreeNode.cs (110): } // Sensitive data: CS$1$0000! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText; // Sensitive data: node.get_StatusText().P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

130: Leakage of ToString() result ("value") via Windows Forms control BD.SECURITY.SENS-1 ! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText;

.C TestSuiteTreeNode.cs (109): return result.ResultState.ToString(); // Sensitive data: new ResultState.ToString()! TestSuiteTreeNode.cs (110): } // Sensitive data: CS$1$0000! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText; // Sensitive data: node.get_StatusText().P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

130: Leakage of exception data ("value") via Windows Forms control BD.SECURITY.SENS-1 ! ExceptionDetailsForm.cs (118): this.message.Text = FormatMessage( exception );

. ExceptionDetailsForm.cs (126): StringBuilder sb = new StringBuilder();

. ExceptionDetailsForm.cs (128): Exception ex = exception; ex != null

. ExceptionDetailsForm.cs (130): if ( ex != exception )

. ExceptionDetailsForm.cs (131): sb.Append( ex.GetType().ToString() );

. ExceptionDetailsForm.cs (132): sb.Append( ": " );

.C ExceptionDetailsForm.cs (133): sb.Append( ex.Message ); // Sensitive data: ex.get_Message()

. ExceptionDetailsForm.cs (128): ex != null; ex = ex.InnerException // Sensitive data: sb! ExceptionDetailsForm.cs (136): return sb.ToString(); // Sensitive data: sb! ExceptionDetailsForm.cs (137): } // Sensitive data: CS$1$0000! ExceptionDetailsForm.cs (118): this.message.Text = FormatMessage( exception ); // Sensitive data: this.FormatMessage(...).P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

130: Leakage of reflection data ("value") via Windows Forms control BD.SECURITY.SENS-1 . AboutBox.cs (34): private System.ComponentModel.Container components = null;

. AboutBox.cs (36): public AboutBox()

. AboutBox.cs (41): InitializeComponent();

. AboutBox.cs (46): Assembly executingAssembly = Assembly.GetExecutingAssembly();

.C AboutBox.cs (47): string versionText = executingAssembly.GetName().Version.ToString(); // Sensitive data: executingAssembly.GetName()

. AboutBox.cs (49): object [] objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false); //Sensitive data: versionText. AboutBox.cs (50): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText. AboutBox.cs (53): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute), false); // Sensitive data:versionText. AboutBox.cs (54): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText. AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C.T... // Sensitive data: versionText. AboutBox.cs (62): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); // Sensitive data:versionText. AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText! AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data: versionText.P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

130: Leakage of reflection data ("value") via Windows Forms control BD.SECURITY.SENS-1 . AboutBox.cs (34): private System.ComponentModel.Container components = null;

. AboutBox.cs (36): public AboutBox()

. AboutBox.cs (41): InitializeComponent();

. AboutBox.cs (46): Assembly executingAssembly = Assembly.GetExecutingAssembly();

. AboutBox.cs (47): string versionText = executingAssembly.GetName().Version.ToString();

.C AboutBox.cs (49): object [] objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false); //Sensitive data: executingAssembly.GetCustomAttributes(...). AboutBox.cs (50): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs! AboutBox.cs (51): versionText = ((AssemblyInformationalVersionAttribute)objectAttrs[0]).InformationalVersion; // Sensitive data: objectAttrs

Page 24: Nunit  C# source code  defects report by Parasoft dotTEST

Page 24 dotTEST Report [09/21/11 14:13:53]

. AboutBox.cs (53): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute), false); // Sensitive data:versionText. AboutBox.cs (54): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText. AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C.T... // Sensitive data: versionText. AboutBox.cs (62): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); // Sensitive data:versionText. AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText! AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data: versionText.P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

130: Leakage of reflection data ("value") via Windows Forms control BD.SECURITY.SENS-1 .C AboutBox.cs (53): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute), false); // Sensitive data:

executingAssembly.GetCustomAttributes(...). AboutBox.cs (54): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs! AboutBox.cs (56): string configText = ((AssemblyConfigurationAttribute)objectAttrs[0]).Configuration; // Sensitive data: objectAttrs. AboutBox.cs (57): if ( configText != "" ) // Sensitive data: configText! AboutBox.cs (58): versionText += string.Format(" ({0})",configText); // Sensitive data: configText. AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C.T... // Sensitive data: versionText. AboutBox.cs (62): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); // Sensitive data:versionText. AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText! AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data: versionText.P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

130: Leakage of reflection data ("value") via Windows Forms control BD.SECURITY.SENS-1 . AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T...

.C AboutBox.cs (62): objectAttrs = executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); // Sensitive data:executingAssembly.GetCustomAttributes(...). AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs! AboutBox.cs (64): copyrightText = ((AssemblyCopyrightAttribute)objectAttrs[0]).Copyright; // Sensitive data: objectAttrs. AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data: copyrightText! AboutBox.cs (67): copyright.Text = copyrightText; // Sensitive data: copyrightText.P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

130: Leakage of reflection data ("value") via Windows Forms control BD.SECURITY.SENS-1 . TestPropertiesDialog.cs (465): pinnedImage = new Bitmap( typeof( TestPropertiesDialog ), "pinned.gif" );

.C TestPropertiesDialog.cs (466): unpinnedImage = new Bitmap( typeof( TestPropertiesDialog ), "unpinned.gif" );

. TestPropertiesDialog.cs (467): pinButton.Image = unpinnedImage;! TestPropertiesDialog.cs (469): DisplayProperties();! TestPropertiesDialog.cs (486): DisplayProperties( this.node );. TestPropertiesDialog.cs (491): this.node = node;. TestPropertiesDialog.cs (492): this.test = node.Test;. TestPropertiesDialog.cs (493): this.result = node.Result;. TestPropertiesDialog.cs (495): SetTitleBarText();. TestPropertiesDialog.cs (453): string name = test.TestName.Name;. TestPropertiesDialog.cs (454): int index = name.LastIndexOfAny( new char[] { Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar } );. TestPropertiesDialog.cs (455): if ( index >= 0 ). TestPropertiesDialog.cs (457): this.Text = string.Format( "{0} Properties - {1}", node.TestType, name );. TestPropertiesDialog.cs (458): }. TestPropertiesDialog.cs (497): categories.Items.Clear();. TestPropertiesDialog.cs (498): in test.Categories! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText;. TestSuiteTreeNode.cs (106): if ( result == null )! TestSuiteTreeNode.cs (109): return result.ResultState.ToString(); // Sensitive data: this.result! TestResult.cs (97): return resultState; } // Sensitive data: this! TestSuiteTreeNode.cs (109): return result.ResultState.ToString(); // Sensitive data: this.result.get_ResultState()! TestSuiteTreeNode.cs (110): } // Sensitive data: CS$1$0000! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText; // Sensitive data: node.get_StatusText().P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

nunit/nunit.uikit.dll/ExpandingTextBox.cs171: Leakage of ToString() result ("value") via Windows Forms control BD.SECURITY.SENS-1 . AdvancedLoaderSettingsPage.cs (150): this.settings = Services.UserSettings;

. Services.cs (68): if ( userSettings == null )

. Services.cs (73): if ( userSettings == null )

. Services.cs (76): return userSettings;

. Services.cs (77): }

. AdvancedLoaderSettingsPage.cs (150): this.settings = Services.UserSettings;

. AdvancedLoaderSettingsPage.cs (152): enableShadowCopyCheckBox.Checked = settings.GetSetting( "Options.TestLoader.ShadowCopyFiles",true );. SettingsGroup.cs (150): object result = GetSetting(settingName );. SettingsGroup.cs (68): return storage.GetSetting( settingName );. SettingsGroup.cs (69): }. SettingsGroup.cs (150): object result = GetSetting(settingName );. SettingsGroup.cs (152): if ( result == null ). SettingsGroup.cs (153): return defaultValue;. SettingsGroup.cs (176): }. AdvancedLoaderSettingsPage.cs (152): enableShadowCopyCheckBox.Checked = settings.GetSetting( "Options.TestLoader.ShadowCopyFiles",true );! AdvancedLoaderSettingsPage.cs (153): shadowCopyPathTextBox.Text = settings.GetSetting("Options.TestLoader.ShadowCopyPath", "");

Page 25: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 25

. SettingsGroup.cs (187): object result = GetSetting(settingName );

. SettingsGroup.cs (68): return storage.GetSetting( settingName );

. SettingsGroup.cs (69): }

. SettingsGroup.cs (187): object result = GetSetting(settingName );

. SettingsGroup.cs (189): if ( result == null )

. SettingsGroup.cs (192): if ( result is string )

.C SettingsGroup.cs (195): return result.ToString(); // Sensitive data: result.ToString()! SettingsGroup.cs (196): } // Sensitive data: CS$1$0000! AdvancedLoaderSettingsPage.cs (153): shadowCopyPathTextBox.Text = settings.GetSetting("Options.TestLoader.ShadowCopyPath", ""); //Sensitive data: this.settings.GetSetting(...).P ExpandingTextBox.cs (171): base.Text = value; // Sensitive data: value

nunit/nunit.uikit.dll/GuiTestEventDispatcher.cs52: Leakage of exception data ("ex") via console BD.SECURITY.SENS-1 . GuiTestEventDispatcher.cs (47): catch( Exception ex )

. GuiTestEventDispatcher.cs (51): Console.WriteLine( "Exception:" );CP GuiTestEventDispatcher.cs (52): Console.WriteLine( ex );

nunit/nunit.uikit.dll/TestLoaderUI.cs122: "config" may possibly be null BD.EXCEPT.NR-1 . TestLoaderUI.cs (115): TestLoader loader = Services.TestLoader;

. Services.cs (102): if ( loader == null )

. Services.cs (105): return loader;

. Services.cs (106): }

. TestLoaderUI.cs (115): TestLoader loader = Services.TestLoader;

. TestLoaderUI.cs (116): ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];

. TestLoader.cs (154): return testProject; }! TestLoaderUI.cs (116): ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ). ProjectConfigCollection.cs (75): return InnerList.Contains( config );. ProjectConfigCollection.cs (76): }. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ).C NUnitProject.cs (174): activeConfig = null; // Null value carrier: loader.testProject.activeConfig, this.activeConfig. NUnitProject.cs (177): if (activeConfig == null #x26;#x26; configs.Count > 0) // Null value carrier: loader.testProject.activeConfig, this.activeConfig! NUnitProject.cs (180): return activeConfig; // Null value carrier: loader.testProject.activeConfig, this.activeConfig! NUnitProject.cs (181): } // Null value carrier: CS$1$0000! TestLoaderUI.cs (116): ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName]; //Null value carrier: loader.get_TestProject().get_ActiveConfig(). TestLoaderUI.cs (120): OpenFileDialog dlg = new OpenFileDialog(); // Null value carrier: config. TestLoaderUI.cs (121): dlg.Title = "Add Assemblies To Project"; // Null value carrier: config.P TestLoaderUI.cs (122): dlg.InitialDirectory = config.BasePath; // Null value carrier: config

122: "config" may possibly be null BD.EXCEPT.NR-1 . TestLoaderUI.cs (115): TestLoader loader = Services.TestLoader;

. Services.cs (102): if ( loader == null )

. Services.cs (105): return loader;

. Services.cs (106): }

. TestLoaderUI.cs (115): TestLoader loader = Services.TestLoader;

. TestLoaderUI.cs (116): ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];

. TestLoader.cs (154): return testProject; }

. TestLoaderUI.cs (116): ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];

. NUnitProject.cs (267): return configs; }! TestLoaderUI.cs (116): ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];. ProjectConfigCollection.cs (34): int index = IndexOf( name );. ProjectConfigCollection.cs (63): int index = 0; index < InnerList.Count. ProjectConfigCollection.cs (70): return -1;. ProjectConfigCollection.cs (71): }. ProjectConfigCollection.cs (34): int index = IndexOf( name );.C ProjectConfigCollection.cs (35): return index >= 0 ? (ProjectConfig)InnerList[index]: null; // Null value carrier: CS$1$0000! ProjectConfigCollection.cs (36): } // Null value carrier: CS$1$0000! TestLoaderUI.cs (116): ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName]; //Null value carrier: loader.get_TestProject().get_Configs().get_Item(...). TestLoaderUI.cs (120): OpenFileDialog dlg = new OpenFileDialog(); // Null value carrier: config. TestLoaderUI.cs (121): dlg.Title = "Add Assemblies To Project"; // Null value carrier: config.P TestLoaderUI.cs (122): dlg.InitialDirectory = config.BasePath; // Null value carrier: config

203: "config" may possibly be null BD.EXCEPT.NR-1 . TestLoaderUI.cs (196): TestLoader loader = Services.TestLoader;

. Services.cs (102): if ( loader == null )

. Services.cs (105): return loader;

. Services.cs (106): }

. TestLoaderUI.cs (196): TestLoader loader = Services.TestLoader;

. TestLoaderUI.cs (197): ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];

. TestLoader.cs (154): return testProject; }! TestLoaderUI.cs (197): ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ). ProjectConfigCollection.cs (75): return InnerList.Contains( config );. ProjectConfigCollection.cs (76): }. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ).C NUnitProject.cs (174): activeConfig = null; // Null value carrier: loader.testProject.activeConfig, this.activeConfig. NUnitProject.cs (177): if (activeConfig == null #x26;#x26; configs.Count > 0) // Null value carrier: loader.testProject.activeConfig, this.activeConfig! NUnitProject.cs (180): return activeConfig; // Null value carrier: loader.testProject.activeConfig, this.activeConfig

Page 26: Nunit  C# source code  defects report by Parasoft dotTEST

Page 26 dotTEST Report [09/21/11 14:13:53]

! NUnitProject.cs (181): } // Null value carrier: CS$1$0000! TestLoaderUI.cs (197): ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName]; //Null value carrier: loader.get_TestProject().get_ActiveConfig(). TestLoaderUI.cs (201): OpenFileDialog dlg = new OpenFileDialog(); // Null value carrier: config. TestLoaderUI.cs (202): dlg.Title = "Add Assembly"; // Null value carrier: config.P TestLoaderUI.cs (203): dlg.InitialDirectory = config.BasePath; // Null value carrier: config

203: "config" may possibly be null BD.EXCEPT.NR-1 . TestLoaderUI.cs (196): TestLoader loader = Services.TestLoader;

. Services.cs (102): if ( loader == null )

. Services.cs (105): return loader;

. Services.cs (106): }

. TestLoaderUI.cs (196): TestLoader loader = Services.TestLoader;

. TestLoaderUI.cs (197): ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];

. TestLoader.cs (154): return testProject; }

. TestLoaderUI.cs (197): ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];

. NUnitProject.cs (267): return configs; }! TestLoaderUI.cs (197): ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];. ProjectConfigCollection.cs (34): int index = IndexOf( name );. ProjectConfigCollection.cs (63): int index = 0; index < InnerList.Count. ProjectConfigCollection.cs (70): return -1;. ProjectConfigCollection.cs (71): }. ProjectConfigCollection.cs (34): int index = IndexOf( name );.C ProjectConfigCollection.cs (35): return index >= 0 ? (ProjectConfig)InnerList[index]: null; // Null value carrier: CS$1$0000! ProjectConfigCollection.cs (36): } // Null value carrier: CS$1$0000! TestLoaderUI.cs (197): ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName]; //Null value carrier: loader.get_TestProject().get_Configs().get_Item(...). TestLoaderUI.cs (201): OpenFileDialog dlg = new OpenFileDialog(); // Null value carrier: config. TestLoaderUI.cs (202): dlg.Title = "Add Assembly"; // Null value carrier: config.P TestLoaderUI.cs (203): dlg.InitialDirectory = config.BasePath; // Null value carrier: config

nunit/nunit.uikit.dll/TestPropertiesDialog.cs501: Leakage of ToString() result ("node.get_StatusText()") via Windows Forms control BD.SECURITY.SENS-1 ! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText;

.C TestSuiteTreeNode.cs (107): return test.RunState.ToString(); // Sensitive data: new RunState.ToString()! TestSuiteTreeNode.cs (110): } // Sensitive data: CS$1$0000.P TestPropertiesDialog.cs (501): testResult.Text = node.StatusText; // Sensitive data: node.get_StatusText()

501: Leakage of ToString() result ("node.get_StatusText()") via Windows Forms control BD.SECURITY.SENS-1 ! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText;

.C TestSuiteTreeNode.cs (109): return result.ResultState.ToString(); // Sensitive data: new ResultState.ToString()! TestSuiteTreeNode.cs (110): } // Sensitive data: CS$1$0000.P TestPropertiesDialog.cs (501): testResult.Text = node.StatusText; // Sensitive data: node.get_StatusText()

501: Leakage of reflection data ("node.get_StatusText()") via Windows Forms control BD.SECURITY.SENS-1 . TestPropertiesDialog.cs (465): pinnedImage = new Bitmap( typeof( TestPropertiesDialog ), "pinned.gif" );

.C TestPropertiesDialog.cs (466): unpinnedImage = new Bitmap( typeof( TestPropertiesDialog ), "unpinned.gif" );

. TestPropertiesDialog.cs (467): pinButton.Image = unpinnedImage;! TestPropertiesDialog.cs (469): DisplayProperties();! TestPropertiesDialog.cs (486): DisplayProperties( this.node );. TestPropertiesDialog.cs (491): this.node = node;. TestPropertiesDialog.cs (492): this.test = node.Test;. TestPropertiesDialog.cs (493): this.result = node.Result;. TestPropertiesDialog.cs (495): SetTitleBarText();. TestPropertiesDialog.cs (453): string name = test.TestName.Name;. TestPropertiesDialog.cs (454): int index = name.LastIndexOfAny( new char[] { Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar } );. TestPropertiesDialog.cs (455): if ( index >= 0 ). TestPropertiesDialog.cs (457): this.Text = string.Format( "{0} Properties - {1}", node.TestType, name );. TestPropertiesDialog.cs (458): }. TestPropertiesDialog.cs (497): categories.Items.Clear();. TestPropertiesDialog.cs (498): in test.Categories! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText;. TestSuiteTreeNode.cs (106): if ( result == null )! TestSuiteTreeNode.cs (109): return result.ResultState.ToString(); // Sensitive data: this.result! TestResult.cs (97): return resultState; } // Sensitive data: this! TestSuiteTreeNode.cs (109): return result.ResultState.ToString(); // Sensitive data: this.result.get_ResultState()! TestSuiteTreeNode.cs (110): } // Sensitive data: CS$1$0000.P TestPropertiesDialog.cs (501): testResult.Text = node.StatusText; // Sensitive data: node.get_StatusText()

nunit/nunit.uikit.dll/TestSuiteTreeView.cs1367: "test" may possibly be null BD.EXCEPT.NR-1 . TestTree.cs (323): if ( tests.SelectedTest != null )

. TestSuiteTreeView.cs (266): TestSuiteTreeNode node = (TestSuiteTreeNode)SelectedNode;

. TestSuiteTreeView.cs (267): return node == null ? null : node.Test;

. TestSuiteTreeNode.cs (80): return this.test; }

. TestSuiteTreeView.cs (267): return node == null ? null : node.Test;

. TestSuiteTreeView.cs (268): }

. TestTree.cs (323): if ( tests.SelectedTest != null )! TestTree.cs (324): tests.ShowPropertiesDialog( tests.SelectedTest );. TestSuiteTreeView.cs (266): TestSuiteTreeNode node = (TestSuiteTreeNode)SelectedNode;.C TestSuiteTreeView.cs (267): return node == null ? null : node.Test; // Null value carrier: CS$1$0000! TestSuiteTreeView.cs (268): } // Null value carrier: CS$1$0000! TestTree.cs (324): tests.ShowPropertiesDialog( tests.SelectedTest ); // Null value carrier: this.tests.get_SelectedTest()

Page 27: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 27

! TestSuiteTreeView.cs (930): ShowPropertiesDialog( this[ test ] ); // Null value carrier: test! TestSuiteTreeView.cs (354): return FindNode( test ); // Null value carrier: test.P TestSuiteTreeView.cs (1367): return treeMap[test.TestName.UniqueName] as TestSuiteTreeNode; // Null value carrier: test

nunit/nunit.uikit.dll/UserMessage.cs42: Leakage of ToString() result ("message") via message box BD.SECURITY.SENS-1 . UserMessage.cs (65): Exception ex = exception;

. UserMessage.cs (66): StringBuilder sb = new StringBuilder();

.C UserMessage.cs (67): sb.AppendFormat("{0} : {1}", ex.GetType().ToString(), ex.Message); // Sensitive data: ex.GetType().ToString()

. UserMessage.cs (68): while (ex.InnerException != null) // Sensitive data: sb

. UserMessage.cs (74): if (message != null) // Sensitive data: sb

. UserMessage.cs (77): sb.Append("\r\rFor further information, use the Exception Details menu item."); // Sensitive data: sb! UserMessage.cs (79): return DisplayFailure(sb.ToString(), caption); // Sensitive data: sb! UserMessage.cs (52): return Display( message, caption, MessageBoxButtons.OK, MessageBoxIcon.Stop ); // Sensitive data: message.P UserMessage.cs (42): return MessageBox.Show( message, caption, buttons, icon ); // Sensitive data: message

42: Leakage of ToString() result ("message") via message box BD.SECURITY.SENS-1 . UserMessage.cs (65): Exception ex = exception;

. UserMessage.cs (66): StringBuilder sb = new StringBuilder();

. UserMessage.cs (67): sb.AppendFormat("{0} : {1}", ex.GetType().ToString(), ex.Message);

. UserMessage.cs (68): while (ex.InnerException != null)

. UserMessage.cs (70): ex = ex.InnerException;

.C UserMessage.cs (71): sb.AppendFormat("\r----> {0} : {1}", ex.GetType().ToString(), ex.Message); // Sensitive data: ex.GetType().ToString()

. UserMessage.cs (68): while (ex.InnerException != null) // Sensitive data: sb

. UserMessage.cs (74): if (message != null) // Sensitive data: sb

. UserMessage.cs (77): sb.Append("\r\rFor further information, use the Exception Details menu item."); // Sensitive data: sb! UserMessage.cs (79): return DisplayFailure(sb.ToString(), caption); // Sensitive data: sb! UserMessage.cs (52): return Display( message, caption, MessageBoxButtons.OK, MessageBoxIcon.Stop ); // Sensitive data: message.P UserMessage.cs (42): return MessageBox.Show( message, caption, buttons, icon ); // Sensitive data: message

42: Leakage of ToString() result ("message") via message box BD.SECURITY.SENS-1 . UserMessage.cs (84): Exception ex = exception;

. UserMessage.cs (85): StringBuilder sb = new StringBuilder();

.C UserMessage.cs (86): sb.AppendFormat("{0} : {1}", ex.GetType().ToString(), ex.Message); // Sensitive data: ex.GetType().ToString()

. UserMessage.cs (87): while (ex.InnerException != null) // Sensitive data: sb

. UserMessage.cs (93): if (message != null) // Sensitive data: sb! UserMessage.cs (96): return DisplayFailure(sb.ToString(), caption); // Sensitive data: sb! UserMessage.cs (52): return Display( message, caption, MessageBoxButtons.OK, MessageBoxIcon.Stop ); // Sensitive data: message.P UserMessage.cs (42): return MessageBox.Show( message, caption, buttons, icon ); // Sensitive data: message

42: Leakage of ToString() result ("message") via message box BD.SECURITY.SENS-1 . UserMessage.cs (84): Exception ex = exception;

. UserMessage.cs (85): StringBuilder sb = new StringBuilder();

. UserMessage.cs (86): sb.AppendFormat("{0} : {1}", ex.GetType().ToString(), ex.Message);

. UserMessage.cs (87): while (ex.InnerException != null)

. UserMessage.cs (89): ex = ex.InnerException;

.C UserMessage.cs (90): sb.AppendFormat("\r----> {0} : {1}", ex.GetType().ToString(), ex.Message); // Sensitive data: ex.GetType().ToString()

. UserMessage.cs (87): while (ex.InnerException != null) // Sensitive data: sb

. UserMessage.cs (93): if (message != null) // Sensitive data: sb! UserMessage.cs (96): return DisplayFailure(sb.ToString(), caption); // Sensitive data: sb! UserMessage.cs (52): return Display( message, caption, MessageBoxButtons.OK, MessageBoxIcon.Stop ); // Sensitive data: message.P UserMessage.cs (42): return MessageBox.Show( message, caption, buttons, icon ); // Sensitive data: message

42: Leakage of exception data ("message") via message box BD.SECURITY.SENS-1 . TestLoaderUI.cs (183): catch (Exception ex)

.C TestLoaderUI.cs (185): UserMessage.DisplayFailure(ex.Message, "Invalid VS Project"); // Sensitive data: ex.get_Message()! UserMessage.cs (52): return Display( message, caption, MessageBoxButtons.OK, MessageBoxIcon.Stop ); // Sensitive data: message.P UserMessage.cs (42): return MessageBox.Show( message, caption, buttons, icon ); // Sensitive data: message

42: Leakage of exception data ("message") via message box BD.SECURITY.SENS-1 . TestLoaderUI.cs (236): catch( Exception ex )

.C TestLoaderUI.cs (238): UserMessage.DisplayFailure( ex.Message, "Invalid VS Project" ); // Sensitive data: ex.get_Message()! UserMessage.cs (52): return Display( message, caption, MessageBoxButtons.OK, MessageBoxIcon.Stop ); // Sensitive data: message.P UserMessage.cs (42): return MessageBox.Show( message, caption, buttons, icon ); // Sensitive data: message

42: Leakage of reflection data ("message") via message box BD.SECURITY.SENS-1 ! AppEntry.cs (51): string message = guiOptions.GetHelpText();

! GuiOptions.cs (77): return "NUNIT-GUI [inputfile] [options]\r\r" + "Runs a set of NUnit tests from the console. You may specify\r" + "an ass....C CommandLineOptions.cs (306): helpText.AppendFormat("{0}{1,-20}\t{2}", optChar, field.Name+valType, att.Description); // Sensitive data:field.get_Name(). CommandLineOptions.cs (307): if (att.Short != null) // Sensitive data: helpText. CommandLineOptions.cs (309): helpText.Append( Environment.NewLine ); // Sensitive data: helpText. CommandLineOptions.cs (312): } // Sensitive data: helpText. CommandLineOptions.cs (290): in // Sensitive data: helpText! CommandLineOptions.cs (313): return helpText.ToString(); // Sensitive data: helpText! CommandLineOptions.cs (314): } // Sensitive data: CS$1$0000! GuiOptions.cs (77): return "NUNIT-GUI [inputfile] [options]\r\r" + "Runs a set of NUnit tests from the console. You may specify\r" + "an ass... //Sensitive data: this.GetHelpText()! GuiOptions.cs (85): } // Sensitive data: CS$1$0000! AppEntry.cs (51): string message = guiOptions.GetHelpText(); // Sensitive data: guiOptions.GetHelpText()! AppEntry.cs (52): UserMessage.DisplayFailure(message, "Help Syntax"); // Sensitive data: message! UserMessage.cs (52): return Display( message, caption, MessageBoxButtons.OK, MessageBoxIcon.Stop ); // Sensitive data: message.P UserMessage.cs (42): return MessageBox.Show( message, caption, buttons, icon ); // Sensitive data: message

nunit/nunit.util.dll/AggregatingTestRunner.cs

Page 28: Nunit  C# source code  defects report by Parasoft dotTEST

Page 28 dotTEST Report [09/21/11 14:13:53]

109: "runner.get_AssemblyInfo()" may possibly be null BD.EXCEPT.AN-1 . AggregatingTestRunner.cs (107): ArrayList info = new ArrayList();

. AggregatingTestRunner.cs (108): TestRunner runner in runners

. AggregatingTestRunner.cs (109): info.AddRange( runner.AssemblyInfo );

. AggregatingTestRunner.cs (108): TestRunner runner in! AggregatingTestRunner.cs (109): info.AddRange( runner.AssemblyInfo );.C ProxyTestRunner.cs (76): return testRunner == null ? null : testRunner.AssemblyInfo; } // Null value carrier: CS$1$0000.P AggregatingTestRunner.cs (109): info.AddRange( runner.AssemblyInfo ); // Null value carrier: runner.get_AssemblyInfo()

nunit/nunit.util.dll/CommandLineOptions.cs230: "cmdLineVal" may possibly be null BD.EXCEPT.AN-1 .C CommandLineOptions.cs (210): object cmdLineVal = null; // Null value carrier: cmdLineVal

. CommandLineOptions.cs (211): string opt = args[index].Substring(pos, args[index].Length-pos); // Null value carrier: cmdLineVal! CommandLineOptions.cs (212): SplitOptionAndValue(ref opt, ref cmdLineVal); // Null value carrier: cmdLineVal. CommandLineOptions.cs (248): int pos = opt.IndexOfAny( new char[] { ':', '=' } ); // Null value carrier: *val. CommandLineOptions.cs (249): if (pos < 1) return; // Null value carrier: *val! CommandLineOptions.cs (253): } // Null value carrier: *val. CommandLineOptions.cs (213): FieldInfo field = GetMemberField(opt); // Null value carrier: cmdLineVal. CommandLineOptions.cs (214): if (field != null) // Null value carrier: cmdLineVal. CommandLineOptions.cs (216): object value = GetOptionValue(field); // Null value carrier: cmdLineVal. CommandLineOptions.cs (217): if (value == null) // Null value carrier: cmdLineVal. CommandLineOptions.cs (219): if (field.FieldType == typeof(bool)) // Null value carrier: cmdLineVal. CommandLineOptions.cs (221): if(field.FieldType == typeof(string)) // Null value carrier: cmdLineVal. CommandLineOptions.cs (229): if(field.FieldType.IsEnum) // Null value carrier: cmdLineVal.P CommandLineOptions.cs (230): value = Enum.Parse( field.FieldType, (string)cmdLineVal, true ); // Null value carrier: cmdLineVal

280: Leakage of reflection data ("this.GetHelpText()") via console BD.SECURITY.SENS-1 ! CommandLineOptions.cs (280): Console.WriteLine(GetHelpText());

. CommandLineOptions.cs (285): StringBuilder helpText = new StringBuilder();

. CommandLineOptions.cs (287): Type t = this.GetType();

. CommandLineOptions.cs (288): FieldInfo[] fields = t.GetFields(BindingFlags.Instance|BindingFlags.Public);

. CommandLineOptions.cs (289): char optChar = allowForwardSlash ? '/' : '-';

. CommandLineOptions.cs (290): FieldInfo field in fields

.C CommandLineOptions.cs (292): object[] atts = field.GetCustomAttributes(typeof(OptionAttribute), true); // Sensitive data:field.GetCustomAttributes(...). CommandLineOptions.cs (293): if (atts.Length > 0) // Sensitive data: atts! CommandLineOptions.cs (295): OptionAttribute att = (OptionAttribute)atts[0]; // Sensitive data: atts! CommandLineOptions.cs (296): if (att.Description != null) // Sensitive data: att! CommandLineOptions.cs (64): return description; } // Sensitive data: this. CommandLineOptions.cs (296): if (att.Description != null) // Sensitive data: ((OptionAttribute)atts[0]).description, att.description. CommandLineOptions.cs (298): string valType = ""; // Sensitive data: ((OptionAttribute)atts[0]).description, att.description. CommandLineOptions.cs (299): if (att.Value == null) // Sensitive data: ((OptionAttribute)atts[0]).description, att.description. CommandLineOptions.cs (58): return optValue; } // Sensitive data: this.description. CommandLineOptions.cs (299): if (att.Value == null) // Sensitive data: ((OptionAttribute)atts[0]).description, att.description! CommandLineOptions.cs (306): helpText.AppendFormat("{0}{1,-20}\t{2}", optChar, field.Name+valType, att.Description); // Sensitive data:((OptionAttribute)atts[0]).description, att.description! CommandLineOptions.cs (64): return description; } // Sensitive data: this.description! CommandLineOptions.cs (306): helpText.AppendFormat("{0}{1,-20}\t{2}", optChar, field.Name+valType, att.Description); // Sensitive data:att.get_Description(). CommandLineOptions.cs (307): if (att.Short != null) // Sensitive data: optChar. CommandLineOptions.cs (52): return optName; }. CommandLineOptions.cs (307): if (att.Short != null) // Sensitive data: optChar! CommandLineOptions.cs (308): helpText.AppendFormat(" (Short format: {0}{1}{2})", optChar, att.Short, valType); // Sensitive data: optChar. CommandLineOptions.cs (52): return optName; }! CommandLineOptions.cs (308): helpText.AppendFormat(" (Short format: {0}{1}{2})", optChar, att.Short, valType); // Sensitive data: *new Char. CommandLineOptions.cs (309): helpText.Append( Environment.NewLine ); // Sensitive data: helpText. CommandLineOptions.cs (312): } // Sensitive data: helpText. CommandLineOptions.cs (290): in // Sensitive data: helpText! CommandLineOptions.cs (313): return helpText.ToString(); // Sensitive data: helpText! CommandLineOptions.cs (314): } // Sensitive data: CS$1$0000.P CommandLineOptions.cs (280): Console.WriteLine(GetHelpText()); // Sensitive data: this.GetHelpText()

280: Leakage of reflection data ("this.GetHelpText()") via console BD.SECURITY.SENS-1 ! CommandLineOptions.cs (280): Console.WriteLine(GetHelpText());

.C CommandLineOptions.cs (306): helpText.AppendFormat("{0}{1,-20}\t{2}", optChar, field.Name+valType, att.Description); // Sensitive data:field.get_Name(). CommandLineOptions.cs (307): if (att.Short != null) // Sensitive data: helpText. CommandLineOptions.cs (309): helpText.Append( Environment.NewLine ); // Sensitive data: helpText. CommandLineOptions.cs (312): } // Sensitive data: helpText. CommandLineOptions.cs (290): in // Sensitive data: helpText! CommandLineOptions.cs (313): return helpText.ToString(); // Sensitive data: helpText! CommandLineOptions.cs (314): } // Sensitive data: CS$1$0000.P CommandLineOptions.cs (280): Console.WriteLine(GetHelpText()); // Sensitive data: this.GetHelpText()

nunit/nunit.util.dll/NUnitProject.cs198: "this.get_ActiveConfig()" may possibly be null BD.EXCEPT.NR-1 . NUnitProject.cs (198): return ActiveConfig != null #x26;#x26; ActiveConfig.Assemblies.Count > 0;

. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) )

. NUnitProject.cs (177): if (activeConfig == null #x26;#x26; configs.Count > 0)

. NUnitProject.cs (178): activeConfig = configs[0];

. ProjectConfigCollection.cs (27): return (ProjectConfig)InnerList[index]; }

. NUnitProject.cs (178): activeConfig = configs[0];

Page 29: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 29

. NUnitProject.cs (180): return activeConfig;

. NUnitProject.cs (181): }! NUnitProject.cs (198): return ActiveConfig != null #x26;#x26; ActiveConfig.Assemblies.Count > 0;. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ). ProjectConfigCollection.cs (75): return InnerList.Contains( config );. ProjectConfigCollection.cs (76): }. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ).C NUnitProject.cs (174): activeConfig = null; // Null value carrier: this.activeConfig. NUnitProject.cs (177): if (activeConfig == null #x26;#x26; configs.Count > 0) // Null value carrier: this.activeConfig! NUnitProject.cs (180): return activeConfig; // Null value carrier: this.activeConfig! NUnitProject.cs (181): } // Null value carrier: CS$1$0000.P NUnitProject.cs (198): return ActiveConfig != null #x26;#x26; ActiveConfig.Assemblies.Count > 0; // Null value carrier: this.get_ActiveConfig()

500: Stream not closed: ((StreamWriter)writer.textWriter).stream BD.RES.LEAKS-1 . NUnitProject.cs (437): projectPath = ProjectPathFromFile( projectPath );

. NUnitProject.cs (279): string fileName = Path.GetFileNameWithoutExtension(path) + NUnitProject.Extension;

. NUnitProject.cs (280): return Path.Combine(Path.GetDirectoryName(path), fileName);

. NUnitProject.cs (281): }

. NUnitProject.cs (437): projectPath = ProjectPathFromFile( projectPath );

.C NUnitProject.cs (439): XmlTextWriter writer = new XmlTextWriter( projectPath, System.Text.Encoding.UTF8 ); // Allocated resource variable:((StreamWriter)new XmlTextWriter.textWriter).stream. NUnitProject.cs (440): writer.Formatting = Formatting.Indented; // Allocated resource variable: ((StreamWriter)writer.textWriter).stream. NUnitProject.cs (442): writer.WriteStartElement( "NUnitProject" ); // Allocated resource variable: ((StreamWriter)writer.textWriter).stream!E NUnitProject.cs (444): if ( configs.Count > 0 || this.BasePath != this.DefaultBasePath ) // NUnitProject.get_DefaultBasePath() throws:PathTooLongException // Allocated resource variable: ((StreamWriter)writer.textWriter).stream!E NUnitProject.cs (111): return Path.GetDirectoryName( projectPath ); } // Path.GetDirectoryName() throws: PathTooLongException.P NUnitProject.cs (500): } // Allocated resource variable: ((StreamWriter)writer.textWriter).stream

nunit/nunit.util.dll/NUnitRegistry.cs65: Registry key not closed: newKey BD.RES.LEAKS-1 . NUnitRegistry.cs (49): if ( testMode )

. NUnitRegistry.cs (52): RegistryKey newKey = Registry.CurrentUser.OpenSubKey( KEY, true );

. NUnitRegistry.cs (53): if (newKey == null)

.C NUnitRegistry.cs (55): newKey = Registry.CurrentUser.CreateSubKey( KEY ); // Allocated resource variable: CurrentUser.CreateSubKey(...)!E NUnitRegistry.cs (56): RegistryKey oldKey = Registry.CurrentUser.OpenSubKey( LEGACY_KEY ); // RegistryKey.OpenSubKey() throws:SecurityException // Allocated resource variable: newKey.P NUnitRegistry.cs (65): } // Allocated resource variable: newKey

65: Registry key not closed: oldKey BD.RES.LEAKS-1 . NUnitRegistry.cs (49): if ( testMode )

. NUnitRegistry.cs (52): RegistryKey newKey = Registry.CurrentUser.OpenSubKey( KEY, true );

. NUnitRegistry.cs (53): if (newKey == null)

. NUnitRegistry.cs (55): newKey = Registry.CurrentUser.CreateSubKey( KEY );

.C NUnitRegistry.cs (56): RegistryKey oldKey = Registry.CurrentUser.OpenSubKey( LEGACY_KEY ); // Allocated resource variable:CurrentUser.OpenSubKey(...). NUnitRegistry.cs (57): if ( oldKey != null ) // Allocated resource variable: oldKey!E NUnitRegistry.cs (59): CopyKey( oldKey, newKey ); // NUnitRegistry.CopyKey() throws: SecurityException // Allocated resource variable: oldKey!E NUnitRegistry.cs (122): fromKey.GetValueNames() // RegistryKey.GetValueNames() throws: SecurityException // Allocated resource variable:fromKey.P NUnitRegistry.cs (65): } // Allocated resource variable: oldKey

nunit/nunit.util.dll/PathUtils.cs95: "path" may possibly be null BD.EXCEPT.NR-1 . NUnitProject.cs (139): basePath = value;

.C NUnitProject.cs (141): if (basePath != null #x26;#x26; basePath != string.Empty #x26;#x26; !Path.IsPathRooted(basePath)) // Null value carrier:this.basePath! NUnitProject.cs (149): basePath = PathUtils.Canonicalize(basePath); // Null value carrier: this.basePath.P PathUtils.cs (95): ArrayList parts = new ArrayList( path.Split( DirectorySeparatorChar, AltDirectorySeparatorChar ) ); // Null value carrier: path

nunit/nunit.util.dll/RemoteTestAgent.cs118: "result" may possibly be null BD.EXCEPT.NR-1 ! RemoteTestAgent.cs (115): IList result = base.AssemblyInfo;

.C ProxyTestRunner.cs (76): return testRunner == null ? null : testRunner.AssemblyInfo; } // Null value carrier: CS$1$0000! RemoteTestAgent.cs (115): IList result = base.AssemblyInfo; // Null value carrier: this.get_AssemblyInfo(). RemoteTestAgent.cs (116): string name = Path.GetFileName(Assembly.GetEntryAssembly().Location); // Null value carrier: result.P RemoteTestAgent.cs (118): result // Null value carrier: result

nunit/nunit.util.dll/TestLoader.cs699: "this.get_TestProject().get_ActiveConfig()" may possibly be null BD.EXCEPT.NR-1 . TestLoader.cs (694): if (watcher != null)

. TestLoader.cs (696): watcher.Stop();

. TestLoader.cs (697): watcher.FreeResources();

. TestLoader.cs (699): watcher.Setup(1000, TestProject.ActiveConfig.Assemblies.ToArray());

. TestLoader.cs (154): return testProject; }! TestLoader.cs (699): watcher.Setup(1000, TestProject.ActiveConfig.Assemblies.ToArray());. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ). ProjectConfigCollection.cs (75): return InnerList.Contains( config );. ProjectConfigCollection.cs (76): }. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ).C NUnitProject.cs (174): activeConfig = null; // Null value carrier: this.activeConfig. NUnitProject.cs (177): if (activeConfig == null #x26;#x26; configs.Count > 0) // Null value carrier: this.activeConfig! NUnitProject.cs (180): return activeConfig; // Null value carrier: this.activeConfig! NUnitProject.cs (181): } // Null value carrier: CS$1$0000

Page 30: Nunit  C# source code  defects report by Parasoft dotTEST

Page 30 dotTEST Report [09/21/11 14:13:53]

.P TestLoader.cs (699): watcher.Setup(1000, TestProject.ActiveConfig.Assemblies.ToArray()); // Null value carrier:this.get_TestProject().get_ActiveConfig()

720: "this.get_TestProject().get_ActiveConfig()" may possibly be null BD.EXCEPT.NR-1 . TestLoader.cs (720): TestPackage package = TestProject.ActiveConfig.MakeTestPackage();

. TestLoader.cs (154): return testProject; }! TestLoader.cs (720): TestPackage package = TestProject.ActiveConfig.MakeTestPackage();. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ). ProjectConfigCollection.cs (75): return InnerList.Contains( config );. ProjectConfigCollection.cs (76): }. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ).C NUnitProject.cs (174): activeConfig = null; // Null value carrier: this.activeConfig. NUnitProject.cs (177): if (activeConfig == null #x26;#x26; configs.Count > 0) // Null value carrier: this.activeConfig! NUnitProject.cs (180): return activeConfig; // Null value carrier: this.activeConfig! NUnitProject.cs (181): } // Null value carrier: CS$1$0000.P TestLoader.cs (720): TestPackage package = TestProject.ActiveConfig.MakeTestPackage(); // Null value carrier:this.get_TestProject().get_ActiveConfig()

nunit/nunit.util.dll/VSProject.cs172: "assemblyName" may possibly be null BD.EXCEPT.NR-1 . VSProject.cs (123): if ( !IsProjectFile( projectPath ) )

. VSProject.cs (94): if (path.IndexOfAny(Path.GetInvalidPathChars()) >= 0)

. VSProject.cs (100): if ( path.ToLower().IndexOf( "http:" ) >= 0 )

. VSProject.cs (103): string extension = Path.GetExtension( path );

. VSProject.cs (105): string validExtension in validExtensions

. VSProject.cs (106): if ( extension == validExtension )

. VSProject.cs (107): return true;

. VSProject.cs (110): }

. VSProject.cs (123): if ( !IsProjectFile( projectPath ) )

. VSProject.cs (126): string projectDirectory = Path.GetFullPath( Path.GetDirectoryName( projectPath ) );

. VSProject.cs (127): StreamReader rdr = new StreamReader( projectPath, System.Text.Encoding.UTF8 );

. VSProject.cs (128): string[] extensions = {"", ".exe", ".dll", ".lib", "" };

. VSProject.cs (132): XmlDocument doc = new XmlDocument();

. VSProject.cs (133): doc.Load( rdr );

. VSProject.cs (135): string extension = Path.GetExtension( projectPath );

.C VSProject.cs (136): string assemblyName = null; // Null value carrier: assemblyName

. VSProject.cs (138): switch ( extension ) // Null value carrier: assemblyName

. VSProject.cs (143): XmlNode configNode in doc.SelectNodes( "/VisualStudioProject/Configurations/Configuration" ) // Null value carrier:assemblyName. VSProject.cs (145): string name = RequiredAttributeValue( configNode, "Name" ); // Null value carrier: assemblyName. VSProject.cs (146): int config_type = System.Convert.ToInt32(RequiredAttributeValue(configNode, "ConfigurationType" ) ); // Null value carrier:assemblyName. VSProject.cs (147): string dirName = name; // Null value carrier: assemblyName. VSProject.cs (148): int bar = dirName.IndexOf( '|' ); // Null value carrier: assemblyName. VSProject.cs (149): if ( bar >= 0 ) // Null value carrier: assemblyName. VSProject.cs (151): string outputPath = RequiredAttributeValue( configNode, "OutputDirectory" ); // Null value carrier: assemblyName. VSProject.cs (152): outputPath = outputPath.Replace( "$(SolutionDir)", Path.GetFullPath( Path.GetDirectoryName( projectPath ) ) +Path.Direc... // Null value carrier: assemblyName. VSProject.cs (153): outputPath = outputPath.Replace( "$(ConfigurationName)", dirName ); // Null value carrier: assemblyName. VSProject.cs (155): string outputDirectory = Path.Combine( projectDirectory, outputPath ); // Null value carrier: assemblyName. VSProject.cs (156): XmlNode toolNode = configNode.SelectSingleNode( "Tool[@Name='VCLinkerTool']" ); // Null value carrier: assemblyName. VSProject.cs (157): if ( toolNode != null ) // Null value carrier: assemblyName. VSProject.cs (167): toolNode = configNode.SelectSingleNode( "Tool[@Name='VCNMakeTool']" ); // Null value carrier: assemblyName. VSProject.cs (168): if ( toolNode != null ) // Null value carrier: assemblyName.P VSProject.cs (172): assemblyName = assemblyName.Replace( "$(OutDir)", outputPath ); // Null value carrier: assemblyName

nunit/nunit.util.dll/XmlResultTransform.cs53: Stream not closed: new StreamWriter.stream BD.RES.LEAKS-1 ECP XmlResultTransform.cs (53): Transform( new StreamReader( inputFile ), new StreamWriter( outputFile ) ); // XmlResultTransform.Transform()

throws: XmlException // Allocated resource variable: new StreamWriter.stream!E XmlResultTransform.cs (58): Transform( new XPathDocument( reader ), writer ); // XPathDocument..ctor() throws: XmlException // Allocatedresource variable: ((StreamWriter)writer).stream

54: Stream not closed: new StreamReader.stream BD.RES.LEAKS-1 EC XmlResultTransform.cs (53): Transform( new StreamReader( inputFile ), new StreamWriter( outputFile ) ); // StreamWriter..ctor() throws:

DirectoryNotFoundException // Allocated resource variable: new StreamReader.stream.P XmlResultTransform.cs (54): } // Allocated resource variable: new StreamReader.stream

nunit/nunit.util.tests/FileWatcherTest.cs41: Stream not closed: writer.stream BD.RES.LEAKS-1 . FileWatcherTest.cs (28): string tempDir = Path.GetTempPath();

. FileWatcherTest.cs (29): fileName = Path.Combine(tempDir, "temp.txt");

. FileWatcherTest.cs (30): tempFileName = Path.Combine(tempDir, "newTempFile.txt");

.C FileWatcherTest.cs (32): StreamWriter writer = new StreamWriter( fileName ); // Allocated resource variable: new StreamWriter.stream!E FileWatcherTest.cs (33): writer.Write( "Hello" ); // StreamWriter.Write() throws: IOException // Allocated resource variable: writer.stream.P FileWatcherTest.cs (41): } // Allocated resource variable: writer.stream

69: Stream not closed: writer.stream BD.RES.LEAKS-1 . FileWatcherTest.cs (59): int i=0; i<3

.C FileWatcherTest.cs (61): StreamWriter writer = new StreamWriter( fileName, true ); // Allocated resource variable: new StreamWriter.stream!E FileWatcherTest.cs (62): writer.WriteLine("Data"); // TextWriter.WriteLine() throws: IOException // Allocated resource variable: writer.stream.P FileWatcherTest.cs (69): } // Allocated resource variable: writer.stream

83: Stream not closed: writer.stream BD.RES.LEAKS-1

Page 31: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 31

.C FileWatcherTest.cs (76): StreamWriter writer = new StreamWriter( fileName ); // Allocated resource variable: new StreamWriter.stream!E FileWatcherTest.cs (77): writer.Write( "Goodbye" ); // StreamWriter.Write() throws: IOException // Allocated resource variable: writer.stream.P FileWatcherTest.cs (83): } // Allocated resource variable: writer.stream

nunit/nunit.util.tests/NUnitProjectLoad.cs47: Stream not closed: writer.stream BD.RES.LEAKS-1 .C NUnitProjectLoad.cs (41): StreamWriter writer = new StreamWriter( xmlfile ); // Allocated resource variable: new StreamWriter.stream

!E NUnitProjectLoad.cs (42): writer.Write( source ); // StreamWriter.Write() throws: IOException // Allocated resource variable: writer.stream.P NUnitProjectLoad.cs (47): } // Allocated resource variable: writer.stream

nunit/nunit.util.tests/NUnitProjectSave.cs41: Stream not closed: reader.stream BD.RES.LEAKS-1 .C NUnitProjectSave.cs (37): StreamReader reader = new StreamReader( xmlfile ); // Allocated resource variable: new StreamReader.stream

!E NUnitProjectSave.cs (38): string contents = reader.ReadToEnd(); // StreamReader.ReadToEnd() throws: IOException // Allocated resourcevariable: reader.stream.P NUnitProjectSave.cs (41): } // Allocated resource variable: reader.stream

nunit/nunit.util.tests/NUnitProjectTests.cs193: "this.project.get_ActiveConfig()" may possibly be null BD.EXCEPT.NR-1 . NUnitProjectTests.cs (192): project.Configs.Add("Debug");

. NUnitProject.cs (267): return configs; }

. NUnitProjectTests.cs (192): project.Configs.Add("Debug");

. ProjectConfigCollection.cs (49): Add( new ProjectConfig( name ) );

. ProjectConfig.cs (34): protected NUnitProject project = null;

. ProjectConfig.cs (59): private BinPathType binPathType = BinPathType.Auto;

. ProjectConfig.cs (69): public ProjectConfig( string name )

. ProjectConfig.cs (71): this.name = name;

. ProjectConfig.cs (72): this.assemblies = new AssemblyList();

. ProjectConfig.cs (73): assemblies.Changed += new EventHandler( assemblies_Changed );

. ProjectConfig.cs (74): }

. ProjectConfigCollection.cs (49): Add( new ProjectConfig( name ) );

. ProjectConfigCollection.cs (43): List.Add( config );

. ProjectConfigCollection.cs (44): config.Project = this.project;

. ProjectConfigCollection.cs (45): }

. ProjectConfigCollection.cs (50): }! NUnitProjectTests.cs (193): Assert.AreEqual( "Debug", project.ActiveConfig.Name );. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ). ProjectConfigCollection.cs (75): return InnerList.Contains( config );. ProjectConfigCollection.cs (76): }. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ).C NUnitProject.cs (174): activeConfig = null; // Null value carrier: this.activeConfig. NUnitProject.cs (177): if (activeConfig == null #x26;#x26; configs.Count > 0) // Null value carrier: this.activeConfig! NUnitProject.cs (180): return activeConfig; // Null value carrier: this.activeConfig! NUnitProject.cs (181): } // Null value carrier: CS$1$0000.P NUnitProjectTests.cs (193): Assert.AreEqual( "Debug", project.ActiveConfig.Name ); // Null value carrier: this.project.get_ActiveConfig()

nunit/nunit.util.tests/RegistrySettingsStorageTests.cs82: Registry key not closed: sub1.storageKey BD.RES.LEAKS-1 ! RegistrySettingsStorageTests.cs (74): RegistrySettingsStorage sub1 = (RegistrySettingsStorage)storage.MakeChildStorage( "Sub1" );

.C RegistrySettingsStorage.cs (135): return new RegistrySettingsStorage( storageKey.CreateSubKey( storageName ) ); // Allocated resourcevariable: this.storageKey.CreateSubKey(...). RegistrySettingsStorage.cs (40): public RegistrySettingsStorage( RegistryKey storageKey ) // Allocated resource variable: storageKey! RegistrySettingsStorage.cs (42): this.storageKey = storageKey; // Allocated resource variable: storageKey! RegistrySettingsStorage.cs (43): } // Allocated resource variable: storageKey, this.storageKey! RegistrySettingsStorage.cs (135): return new RegistrySettingsStorage( storageKey.CreateSubKey( storageName ) ); // Allocated resourcevariable: new RegistrySettingsStorage.storageKey! RegistrySettingsStorage.cs (136): } // Allocated resource variable: ((RegistrySettingsStorage)CS$1$0000).storageKey! RegistrySettingsStorageTests.cs (74): RegistrySettingsStorage sub1 = (RegistrySettingsStorage)storage.MakeChildStorage( "Sub1" ); //Allocated resource variable: ((RegistrySettingsStorage)this.storage.MakeChildStorage(...)).storageKey!E RegistrySettingsStorageTests.cs (75): RegistrySettingsStorage sub2 = (RegistrySettingsStorage)storage.MakeChildStorage( "Sub2" ); //RegistrySettingsStorage.MakeChildStorage() throws: SecurityException // Allocated resource variable: sub1.storageKey!E RegistrySettingsStorage.cs (135): return new RegistrySettingsStorage( storageKey.CreateSubKey( storageName ) ); //RegistryKey.CreateSubKey() throws: SecurityException.P RegistrySettingsStorageTests.cs (82): } // Allocated resource variable: sub1.storageKey

nunit/nunit.util.tests/TestAgentTests.cs27: "path" may possibly be null BD.PB.STRNULL-2 ! TestAgentTests.cs (26): string path = NUnit.Core.NUnitConfiguration.GetTestAgentExePath(Environment.Version);

. NUnitConfiguration.cs (365): string binDir = GetNUnitBinDirectory(v);

. NUnitConfiguration.cs (311): string dir = NUnitBinDirectory;

. NUnitConfiguration.cs (139): if (nunitBinDirectory == null)

. NUnitConfiguration.cs (146): return nunitBinDirectory;

. NUnitConfiguration.cs (147): }

. NUnitConfiguration.cs (311): string dir = NUnitBinDirectory;

. NUnitConfiguration.cs (313): if ((Environment.Version.Major >= 2) == (v.Major >= 2))

. NUnitConfiguration.cs (314): return dir;

. NUnitConfiguration.cs (361): }

. NUnitConfiguration.cs (365): string binDir = GetNUnitBinDirectory(v);

. NUnitConfiguration.cs (366): if ( binDir == null )

. NUnitConfiguration.cs (369): Assembly a = System.Reflection.Assembly.GetEntryAssembly();

. NUnitConfiguration.cs (370): string agentName = v.Major > 1 #x26;#x26; a != null #x26;#x26; a.GetName().ProcessorArchitecture ==ProcessorArchitecture.X86 ? "nunit-a...

Page 32: Nunit  C# source code  defects report by Parasoft dotTEST

Page 32 dotTEST Report [09/21/11 14:13:53]

. NUnitConfiguration.cs (377): string agentExePath = Path.Combine(binDir, agentName);

.C NUnitConfiguration.cs (378): return File.Exists(agentExePath) ? agentExePath : null; // Null value carrier: CS$1$0000! NUnitConfiguration.cs (379): } // Null value carrier: CS$1$0000! TestAgentTests.cs (26): string path = NUnit.Core.NUnitConfiguration.GetTestAgentExePath(Environment.Version); // Null value carrier:GetTestAgentExePath(...).P TestAgentTests.cs (27): Assert.That(System.IO.File.Exists(path), "Cannot find " + path); // Null value carrier: path

27: "path" may possibly be null BD.PB.STRNULL-2 ! TestAgentTests.cs (26): string path = NUnit.Core.NUnitConfiguration.GetTestAgentExePath(Environment.Version);

. NUnitConfiguration.cs (365): string binDir = GetNUnitBinDirectory(v);

. NUnitConfiguration.cs (311): string dir = NUnitBinDirectory;

. NUnitConfiguration.cs (139): if (nunitBinDirectory == null)

. NUnitConfiguration.cs (141): nunitBinDirectory = NUnitLibDirectory;

. NUnitConfiguration.cs (142): if (Path.GetFileName(nunitBinDirectory).ToLower() == "lib")

. NUnitConfiguration.cs (146): return nunitBinDirectory;

. NUnitConfiguration.cs (147): }

. NUnitConfiguration.cs (311): string dir = NUnitBinDirectory;

. NUnitConfiguration.cs (313): if ((Environment.Version.Major >= 2) == (v.Major >= 2))

. NUnitConfiguration.cs (314): return dir;

. NUnitConfiguration.cs (361): }

. NUnitConfiguration.cs (365): string binDir = GetNUnitBinDirectory(v);

.C NUnitConfiguration.cs (366): if ( binDir == null ) return null; // Null value carrier: CS$1$0000! NUnitConfiguration.cs (379): } // Null value carrier: CS$1$0000! TestAgentTests.cs (26): string path = NUnit.Core.NUnitConfiguration.GetTestAgentExePath(Environment.Version); // Null value carrier:GetTestAgentExePath(...).P TestAgentTests.cs (27): Assert.That(System.IO.File.Exists(path), "Cannot find " + path); // Null value carrier: path

nunit/nunit.util.tests/TestDomainFixture.cs148: Stream not closed: sw.stream BD.RES.LEAKS-1 . TestDomainFixture.cs (130): string badfile = Path.GetFullPath("x.dll");

.C TestDomainFixture.cs (133): StreamWriter sw = new StreamWriter( badfile ); // Allocated resource variable: new StreamWriter.stream!E TestDomainFixture.cs (136): sw.WriteLine("This is a new entry to add to the file"); // TextWriter.WriteLine() throws: IOException // Allocatedresource variable: sw.stream. TestDomainFixture.cs (144): if ( File.Exists( badfile ) ) // Allocated resource variable: sw.stream.P TestDomainFixture.cs (148): } // Allocated resource variable: sw.stream

nunit/nunit.util.tests/TestLoaderAssemblyTests.cs133: Stream not closed: sw.stream BD.RES.LEAKS-1 . TestLoaderAssemblyTests.cs (112): FileInfo file = new FileInfo(badFile);

.C TestLoaderAssemblyTests.cs (115): StreamWriter sw = file.AppendText(); // Allocated resource variable: file.AppendText().stream!E TestLoaderAssemblyTests.cs (116): sw.WriteLine("This is a new entry to add to the file"); // TextWriter.WriteLine() throws: IOException //Allocated resource variable: sw.stream. TestLoaderAssemblyTests.cs (130): if ( file.Exists ) // Allocated resource variable: sw.stream.P TestLoaderAssemblyTests.cs (133): } // Allocated resource variable: sw.stream

nunit/nunit.util.tests/VSProjectTests.cs26: Stream not closed: writer.stream BD.RES.LEAKS-1 .C VSProjectTests.cs (23): StreamWriter writer = new StreamWriter( invalidFile ); // Allocated resource variable: new StreamWriter.stream

!E VSProjectTests.cs (24): writer.WriteLine( text ); // TextWriter.WriteLine() throws: IOException // Allocated resource variable: writer.stream.P VSProjectTests.cs (26): } // Allocated resource variable: writer.stream

nunit/pnunit-agent/AgentConfig.cs19: Injection of parameter of entry point method ("file") to filename using method BD.SECURITY.TDFNAMES-1 .C agent.cs (26): AgentConfig config = new AgentConfig(); // Tainted data: args

. agent.cs (30): ServiceManager.Services.AddService(new SettingsService()); // Tainted data: args

. ServiceManager.cs (27): return defaultServiceManager; }

. agent.cs (30): ServiceManager.Services.AddService(new SettingsService()); // Tainted data: args

. agent.cs (31): ServiceManager.Services.AddService(new DomainManager()); // Tainted data: args

. ServiceManager.cs (27): return defaultServiceManager; }

. agent.cs (31): ServiceManager.Services.AddService(new DomainManager()); // Tainted data: args

. agent.cs (33): ServiceManager.Services.AddService(new ProjectService()); // Tainted data: args

. ServiceManager.cs (27): return defaultServiceManager; }

. agent.cs (33): ServiceManager.Services.AddService(new ProjectService()); // Tainted data: args

. agent.cs (37): if( args.Length != 1 #x26;#x26; args.Length != 2) // Tainted data: args

. agent.cs (42): if (args.Length == 1) // Tainted data: args! agent.cs (45): string configfile = args[0]; // Tainted data: args! agent.cs (47): config = AgentConfigLoader.LoadFromFile(configfile); // Tainted data: configfile.P AgentConfig.cs (19): FileStream reader = new FileStream(file, FileMode.Open, FileAccess.Read); // Tainted data: file

nunit/pnunit-agent/agent.cs69: Leakage of reflection data ("log4netpath") via console BD.SECURITY.SENS-1 .C agent.cs (68): string log4netpath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "agent.log.conf"); //

Sensitive data: GetExecutingAssembly().get_Location().P agent.cs (69): Console.WriteLine(log4netpath); // Sensitive data: log4netpath

nunit/pnunit-launcher/TestConf.cs37: Injection of parameter of entry point method ("file") to filename using method BD.SECURITY.TDFNAMES-1 .C launcher.cs (25): if( args.Length == 0 ) // Tainted data: args

! launcher.cs (31): string configfile = args[0]; // Tainted data: args! launcher.cs (33): TestGroup group = TestConfLoader.LoadFromFile(configfile); // Tainted data: configfile.P TestConf.cs (37): FileStream reader = new FileStream(file, FileMode.Open, FileAccess.Read); // Tainted data: file

nunit/test-utilities/TempResourceFile.cs

Page 33: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 33

35: Stream not closed: stream BD.RES.LEAKS-1 . TempResourceFile.cs (18): public TempResourceFile(Type type, string name, string path)

. TempResourceFile.cs (20): this.path = path;

.C TempResourceFile.cs (21): Stream stream = type.Assembly.GetManifestResourceStream(type, name); // Allocated resource variable:type.get_Assembly().GetManifestResourceStream(...). TempResourceFile.cs (22): byte[] buffer = new byte[(int)stream.Length]; // Allocated resource variable: stream!E TempResourceFile.cs (23): stream.Read(buffer, 0, buffer.Length); // Stream.Read() throws: IOException // Allocated resource variable: stream.P TempResourceFile.cs (35): } // Allocated resource variable: stream

Checked Files (Details)

+ [0/175] Suppressed / Total + [0/0] loadtest-assembly

+ [0/0] AAA [0/0] Class1.cs [0/0] Class2.cs [0/0] Class3.cs [0/0] Class4.cs [0/0] Class5.cs

[0/0] BaseClass.cs + [0/0] BBB

[0/0] Class1.cs [0/0] Class2.cs [0/0] Class3.cs [0/0] Class4.cs [0/0] Class5.cs

+ [0/0] CCC [0/0] Class1.cs [0/0] Class2.cs [0/0] Class3.cs [0/0] Class4.cs [0/0] Class5.cs

+ [0/0] DDD [0/0] Class1.cs [0/0] Class2.cs [0/0] Class3.cs [0/0] Class4.cs [0/0] Class5.cs

+ [0/0] mock-assembly [0/0] CommonAssemblyInfo.cs [0/0] MockAssembly.cs

+ [0/0] nonamespace-assembly [0/0] CommonAssemblyInfo.cs [0/0] NoNamespaceTestFixture.cs

+ [0/0] nunit-agent.exe [0/0] App.config [0/0] AssemblyInfo.cs [0/0] CommonAssemblyInfo.cs [0/0] Program.cs

+ [0/9] nunit-console [0/0] AssemblyInfo.cs [0/0] CommonAssemblyInfo.cs [0/0] ConsoleOptions.cs + [0/3] ConsoleUi.cs

Tasks: 3180: Stream not closed: ((StreamWriter)errorWriter).stream, errorStreamWriter.stream daniel.l BD.RES.LEAKS-1 . ConsoleUi.cs (36): TextWriter outWriter = Console.Out;

. ConsoleUi.cs (37): bool redirectOutput = options.output != null #x26;#x26;options.output != string.Empty;. ConsoleUi.cs (38): if ( redirectOutput ). ConsoleUi.cs (45): TextWriter errorWriter = Console.Error;. ConsoleUi.cs (46): bool redirectError = options.err != null #x26;#x26;options.err != string.Empty;. ConsoleUi.cs (47): if ( redirectError ).C ConsoleUi.cs (49): StreamWriter errorStreamWriter = newStreamWriter( options.err ); // Allocated resource variable: newStreamWriter.stream. ConsoleUi.cs (50): errorStreamWriter.AutoFlush = true; // Allocated resourcevariable: errorStreamWriter.stream! ConsoleUi.cs (51): errorWriter = errorStreamWriter; // Allocated resourcevariable: errorStreamWriter.stream. ConsoleUi.cs (54): TestPackage package = MakeTestPackage(options); //Allocated resource variable: ((StreamWriter)errorWriter).stream,errorStreamWriter.stream!E ConsoleUi.cs (56): Console.WriteLine("ProcessModel: {0} DomainUsage:{1}", package.Settings.Contains("ProcessModel") ? package.Settings[... //Console.WriteLine() throws: IOException // Allocated resource variable:((StreamWriter)errorWriter).stream, errorStreamWriter.stream

Page 34: Nunit  C# source code  defects report by Parasoft dotTEST

Page 34 dotTEST Report [09/21/11 14:13:53]

.P ConsoleUi.cs (180): } // Allocated resource variable:((StreamWriter)errorWriter).stream, errorStreamWriter.stream

180: Stream not closed: ((StreamWriter)outWriter).stream, outStreamWriter.stream daniel.l BD.RES.LEAKS-1 . ConsoleUi.cs (36): TextWriter outWriter = Console.Out;

. ConsoleUi.cs (37): bool redirectOutput = options.output != null #x26;#x26;options.output != string.Empty;. ConsoleUi.cs (38): if ( redirectOutput ).C ConsoleUi.cs (40): StreamWriter outStreamWriter = newStreamWriter( options.output ); // Allocated resource variable: newStreamWriter.stream. ConsoleUi.cs (41): outStreamWriter.AutoFlush = true; // Allocated resourcevariable: outStreamWriter.stream! ConsoleUi.cs (42): outWriter = outStreamWriter; // Allocated resource variable:outStreamWriter.stream. ConsoleUi.cs (45): TextWriter errorWriter = Console.Error; // Allocated resourcevariable: ((StreamWriter)outWriter).stream, outStreamWriter.stream. ConsoleUi.cs (46): bool redirectError = options.err != null#x26;#x26; options.err != string.Empty; // Allocated resource variable:((StreamWriter)outWriter).stream, outStreamWriter.stream. ConsoleUi.cs (47): if ( redirectError ) // Allocated resource variable:((StreamWriter)outWriter).stream, outStreamWriter.stream!E ConsoleUi.cs (49): StreamWriter errorStreamWriter = newStreamWriter( options.err ); // StreamWriter..ctor() throws:DirectoryNotFoundException // Allocated resource variable:((StreamWriter)outWriter).stream, outStreamWriter.stream.P ConsoleUi.cs (180): } // Allocated resource variable:((StreamWriter)outWriter).stream, outStreamWriter.stream

324: Leakage of ToString() result ("status") via console daniel.l BD.SECURITY.SENS-1 . ConsoleUi.cs (320): string status = result.IsFailure || result.IsError ?

string.Format("{0} {1}", result.FailureSite, result.ResultState) : .... TestResult.cs (160): return resultState == ResultState.Failure; }. ConsoleUi.cs (320): string status = result.IsFailure || result.IsError ?string.Format("{0} {1}", result.FailureSite, result.ResultState) : .... TestResult.cs (168): return resultState == ResultState.Error; }. ConsoleUi.cs (320): string status = result.IsFailure || result.IsError ?string.Format("{0} {1}", result.FailureSite, result.ResultState) : .... TestResult.cs (97): return resultState; }.C ConsoleUi.cs (320): string status = result.IsFailure || result.IsError ?string.Format("{0} {1}", result.FailureSite, result.ResultState) : ... // Sensitive data:new ResultState.ToString().P ConsoleUi.cs (324): Console.WriteLine("{0}) {1} : {2}", ++reportIndex, status,result.FullName); // Sensitive data: status

[0/0] EventCollector.cs + [0/6] Runner.cs

Tasks: 690: Leakage of exception data ("ex.get_Message()") via console daniel.l BD.SECURITY.SENS-1 . Runner.cs (88): catch( FileNotFoundException ex )

CP Runner.cs (90): Console.WriteLine( ex.Message ); // Sensitive data:ex.get_Message()

95: Leakage of ToString() result ("ex.ToString()") via console daniel.l BD.SECURITY.SENS-1 . Runner.cs (93): catch( Exception ex )

CP Runner.cs (95): Console.WriteLine( "Unhandled Exception:\n{0}",ex.ToString() ); // Sensitive data: ex.ToString()

135: Leakage of reflection data ("productName") via console daniel.l BD.SECURITY.SENS-1 . Runner.cs (113): Assembly executingAssembly =

Assembly.GetExecutingAssembly();. Runner.cs (114): string versionText =executingAssembly.GetName().Version.ToString();. Runner.cs (116): string productName = "NUnit";. Runner.cs (117): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T....C Runner.cs (119): object[] objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyProductAttribute),false); // Sensitive data: executingAssembly.GetCustomAttributes(...). Runner.cs (120): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs! Runner.cs (121): productName =((AssemblyProductAttribute)objectAttrs[0]).Product; // Sensitive data: objectAttrs. Runner.cs (123): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute),false); // Sensitive data: productName. Runner.cs (124): if ( objectAttrs.Length > 0 ) // Sensitive data: productName. Runner.cs (127): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute),false); // Sensitive data: productName. Runner.cs (128): if (objectAttrs.Length > 0) // Sensitive data: productName.P Runner.cs (135): Console.WriteLine(String.Format("{0} version {1}",productName, versionText)); // Sensitive data: productName

Page 35: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 35

135: Leakage of reflection data ("versionText") via console daniel.l BD.SECURITY.SENS-1 . Runner.cs (113): Assembly executingAssembly =

Assembly.GetExecutingAssembly();.C Runner.cs (114): string versionText =executingAssembly.GetName().Version.ToString(); // Sensitive data:executingAssembly.GetName(). Runner.cs (116): string productName = "NUnit"; // Sensitive data: versionText. Runner.cs (117): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T... // Sensitive data:versionText. Runner.cs (119): object[] objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyProductAttribute),false); // Sensitive data: versionText. Runner.cs (120): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText. Runner.cs (123): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute),false); // Sensitive data: versionText. Runner.cs (124): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText. Runner.cs (127): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute),false); // Sensitive data: versionText. Runner.cs (128): if (objectAttrs.Length > 0) // Sensitive data: versionText.P Runner.cs (135): Console.WriteLine(String.Format("{0} version {1}",productName, versionText)); // Sensitive data: versionText

135: Leakage of reflection data ("versionText") via console daniel.l BD.SECURITY.SENS-1 . Runner.cs (113): Assembly executingAssembly =

Assembly.GetExecutingAssembly();. Runner.cs (114): string versionText =executingAssembly.GetName().Version.ToString();. Runner.cs (116): string productName = "NUnit";. Runner.cs (117): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T.... Runner.cs (119): object[] objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyProductAttribute),false);. Runner.cs (120): if ( objectAttrs.Length > 0 ). Runner.cs (123): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute),false);. Runner.cs (124): if ( objectAttrs.Length > 0 ).C Runner.cs (127): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute),false); // Sensitive data: executingAssembly.GetCustomAttributes(...). Runner.cs (128): if (objectAttrs.Length > 0) // Sensitive data: objectAttrs! Runner.cs (130): string configText =((AssemblyConfigurationAttribute)objectAttrs[0]).Configuration; // Sensitive data:objectAttrs. Runner.cs (131): if (configText != "") // Sensitive data: configText! Runner.cs (132): versionText += string.Format(" ({0})", configText); // Sensitivedata: configText.P Runner.cs (135): Console.WriteLine(String.Format("{0} version {1}",productName, versionText)); // Sensitive data: versionText

136: Leakage of reflection data ("copyrightText") via console daniel.l BD.SECURITY.SENS-1 . Runner.cs (113): Assembly executingAssembly =

Assembly.GetExecutingAssembly();. Runner.cs (114): string versionText =executingAssembly.GetName().Version.ToString();. Runner.cs (116): string productName = "NUnit";. Runner.cs (117): string copyrightText = "Copyright (C) 2002-2009 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T.... Runner.cs (119): object[] objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyProductAttribute),false);. Runner.cs (120): if ( objectAttrs.Length > 0 ).C Runner.cs (123): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute),false); // Sensitive data: executingAssembly.GetCustomAttributes(...). Runner.cs (124): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs! Runner.cs (125): copyrightText =((AssemblyCopyrightAttribute)objectAttrs[0]).Copyright; // Sensitive data:objectAttrs. Runner.cs (127): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute),false); // Sensitive data: copyrightText. Runner.cs (128): if (objectAttrs.Length > 0) // Sensitive data: copyrightText. Runner.cs (135): Console.WriteLine(String.Format("{0} version {1}",productName, versionText)); // Sensitive data: copyrightText.P Runner.cs (136): Console.WriteLine(copyrightText); // Sensitive data:copyrightText

Page 36: Nunit  C# source code  defects report by Parasoft dotTEST

Page 36 dotTEST Report [09/21/11 14:13:53]

[0/0] TestNameParser.cs + [0/0] nunit-console.exe

[0/0] App.config [0/0] AssemblyInfo.cs [0/0] Class1.cs [0/0] CommonAssemblyInfo.cs

+ [0/0] nunit-console.tests [0/0] CommandLineTests.cs [0/0] CommandLineTests_MultipleAssemblies.cs [0/0] CommonAssemblyInfo.cs [0/0] ConsoleRunnerTest.cs [0/0] TestNameParserTests.cs

+ [0/17] nunit-gui + [0/4] AboutBox.cs

Tasks: 466: Leakage of reflection data ("versionText") via Windows Forms control daniel.l BD.SECURITY.SENS-1 . AboutBox.cs (34): private System.ComponentModel.Container components =

null;. AboutBox.cs (36): public AboutBox(). AboutBox.cs (41): InitializeComponent();. AboutBox.cs (46): Assembly executingAssembly =Assembly.GetExecutingAssembly();.C AboutBox.cs (47): string versionText =executingAssembly.GetName().Version.ToString(); // Sensitive data:executingAssembly.GetName(). AboutBox.cs (49): object [] objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute),false); // Sensitive data: versionText. AboutBox.cs (50): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText. AboutBox.cs (53): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute),false); // Sensitive data: versionText. AboutBox.cs (54): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText. AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 CharliePoole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T... // Sensitivedata: versionText. AboutBox.cs (62): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute),false); // Sensitive data: versionText. AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText.P AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data:versionText

66: Leakage of reflection data ("versionText") via Windows Forms control daniel.l BD.SECURITY.SENS-1 . AboutBox.cs (34): private System.ComponentModel.Container components =

null;. AboutBox.cs (36): public AboutBox(). AboutBox.cs (41): InitializeComponent();. AboutBox.cs (46): Assembly executingAssembly =Assembly.GetExecutingAssembly();. AboutBox.cs (47): string versionText =executingAssembly.GetName().Version.ToString();.C AboutBox.cs (49): object [] objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute),false); // Sensitive data: executingAssembly.GetCustomAttributes(...). AboutBox.cs (50): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs! AboutBox.cs (51): versionText =((AssemblyInformationalVersionAttribute)objectAttrs[0]).InformationalVersion; //Sensitive data: objectAttrs. AboutBox.cs (53): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute),false); // Sensitive data: versionText. AboutBox.cs (54): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText. AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 CharliePoole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T... // Sensitivedata: versionText. AboutBox.cs (62): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute),false); // Sensitive data: versionText. AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText.P AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data:versionText

66: Leakage of reflection data ("versionText") via Windows Forms control daniel.l BD.SECURITY.SENS-1 .C AboutBox.cs (53): objectAttrs =

executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute),false); // Sensitive data: executingAssembly.GetCustomAttributes(...). AboutBox.cs (54): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs

Page 37: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 37

! AboutBox.cs (56): string configText =((AssemblyConfigurationAttribute)objectAttrs[0]).Configuration; // Sensitive data:objectAttrs. AboutBox.cs (57): if ( configText != "" ) // Sensitive data: configText! AboutBox.cs (58): versionText += string.Format(" ({0})",configText); // Sensitivedata: configText. AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 CharliePoole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T... // Sensitivedata: versionText. AboutBox.cs (62): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute),false); // Sensitive data: versionText. AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText.P AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data:versionText

67: Leakage of reflection data ("copyrightText") via Windows Forms control daniel.l BD.SECURITY.SENS-1 . AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 Charlie

Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T....C AboutBox.cs (62): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute),false); // Sensitive data: executingAssembly.GetCustomAttributes(...). AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs! AboutBox.cs (64): copyrightText =((AssemblyCopyrightAttribute)objectAttrs[0]).Copyright; // Sensitive data:objectAttrs. AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data:copyrightText.P AboutBox.cs (67): copyright.Text = copyrightText; // Sensitive data:copyrightText

[0/0] AboutBox.resx + [0/0] AddinDialog.cs

[0/0] AddinDialog.resx [0/0] AppEntry.cs [0/0] AssemblyInfo.cs [0/0] CommonAssemblyInfo.cs [0/0] DetailResults.cs + [0/4] ExceptionDetailsForm.cs

Tasks: 4118: Leakage of ToString() result ("this.FormatMessage(...)") via Windows Forms

control daniel.l BD.SECURITY.SENS-1

! ExceptionDetailsForm.cs (118): this.message.Text =FormatMessage( exception );. ExceptionDetailsForm.cs (126): StringBuilder sb = new StringBuilder();. ExceptionDetailsForm.cs (128): Exception ex = exception; ex != null. ExceptionDetailsForm.cs (130): if ( ex != exception ).C ExceptionDetailsForm.cs (131): sb.Append( ex.GetType().ToString() ); //Sensitive data: ex.GetType().ToString(). ExceptionDetailsForm.cs (132): sb.Append( ": " ); // Sensitive data: sb. ExceptionDetailsForm.cs (133): sb.Append( ex.Message ); // Sensitive data: sb. ExceptionDetailsForm.cs (128): ex != null; ex = ex.InnerException // Sensitivedata: sb! ExceptionDetailsForm.cs (136): return sb.ToString(); // Sensitive data: sb! ExceptionDetailsForm.cs (137): } // Sensitive data: CS$1$0000.P ExceptionDetailsForm.cs (118): this.message.Text =FormatMessage( exception ); // Sensitive data: this.FormatMessage(...)

118: Leakage of exception data ("this.FormatMessage(...)") via Windows Formscontrol

daniel.l BD.SECURITY.SENS-1

! ExceptionDetailsForm.cs (118): this.message.Text =FormatMessage( exception );. ExceptionDetailsForm.cs (126): StringBuilder sb = new StringBuilder();. ExceptionDetailsForm.cs (128): Exception ex = exception; ex != null. ExceptionDetailsForm.cs (130): if ( ex != exception ). ExceptionDetailsForm.cs (131): sb.Append( ex.GetType().ToString() );. ExceptionDetailsForm.cs (132): sb.Append( ": " );.C ExceptionDetailsForm.cs (133): sb.Append( ex.Message ); // Sensitive data:ex.get_Message(). ExceptionDetailsForm.cs (128): ex != null; ex = ex.InnerException // Sensitivedata: sb! ExceptionDetailsForm.cs (136): return sb.ToString(); // Sensitive data: sb! ExceptionDetailsForm.cs (137): } // Sensitive data: CS$1$0000.P ExceptionDetailsForm.cs (118): this.message.Text =FormatMessage( exception ); // Sensitive data: this.FormatMessage(...)

121: Leakage of ToString() result ("this.FormatStackTrace(...)") via Windows Formscontrol

daniel.l BD.SECURITY.SENS-1

! ExceptionDetailsForm.cs (121): this.stackTrace.Text =FormatStackTrace( exception );! ExceptionDetailsForm.cs (142): AppendStackTrace( sb, exception );

Page 38: Nunit  C# source code  defects report by Parasoft dotTEST

Page 38 dotTEST Report [09/21/11 14:13:53]

.C ExceptionDetailsForm.cs (152): sb.Append( ex.GetType().ToString() );

. ExceptionDetailsForm.cs (153): sb.Append( "...\r\n" );

. ExceptionDetailsForm.cs (154): sb.Append( ex.StackTrace );

. ExceptionDetailsForm.cs (155): sb.Append( "\r\n\r\n" );

. ExceptionDetailsForm.cs (156): }! ExceptionDetailsForm.cs (144): return sb.ToString(); // Sensitive data: *sb! ExceptionDetailsForm.cs (145): } // Sensitive data: CS$1$0000.P ExceptionDetailsForm.cs (121): this.stackTrace.Text =FormatStackTrace( exception ); // Sensitive data: this.FormatStackTrace(...)

121: Leakage of exception data ("this.FormatStackTrace(...)") via Windows Formscontrol

daniel.l BD.SECURITY.SENS-1

! ExceptionDetailsForm.cs (121): this.stackTrace.Text =FormatStackTrace( exception );! ExceptionDetailsForm.cs (142): AppendStackTrace( sb, exception );. ExceptionDetailsForm.cs (152): sb.Append( ex.GetType().ToString() );. ExceptionDetailsForm.cs (153): sb.Append( "...\r\n" );.C ExceptionDetailsForm.cs (154): sb.Append( ex.StackTrace );. ExceptionDetailsForm.cs (155): sb.Append( "\r\n\r\n" );. ExceptionDetailsForm.cs (156): }! ExceptionDetailsForm.cs (144): return sb.ToString(); // Sensitive data: *sb! ExceptionDetailsForm.cs (145): } // Sensitive data: CS$1$0000.P ExceptionDetailsForm.cs (121): this.stackTrace.Text =FormatStackTrace( exception ); // Sensitive data: this.FormatStackTrace(...)

[0/0] ExceptionDetailsForm.resx [0/0] GuiOptions.cs + [0/4] NUnitForm.cs

Tasks: 41631: "this.get_TestLoader().get_AssemblyInfo()" may possibly be null daniel.l BD.EXCEPT.NR-1 . NUnitForm.cs (1628): if ( e.Name != null #x26;#x26; File.Exists( e.Name ) )

. TestEventArgs.cs (199): return name; }

. NUnitForm.cs (1628): if ( e.Name != null #x26;#x26; File.Exists( e.Name ) )

. TestEventArgs.cs (199): return name; }

. NUnitForm.cs (1628): if ( e.Name != null #x26;#x26; File.Exists( e.Name ) )

. NUnitForm.cs (1630): Version version = Environment.Version;

. NUnitForm.cs (1631): TestLoader.AssemblyInfo

. NUnitForm.cs (814): if ( _testLoader == null )

. NUnitForm.cs (816): return _testLoader;

. NUnitForm.cs (817): }! NUnitForm.cs (1631): TestLoader.AssemblyInfo! TestLoader.cs (179): return testRunner == null ? null : testRunner.AssemblyInfo;.C ProxyTestRunner.cs (76): return testRunner == null ? null :testRunner.AssemblyInfo; } // Null value carrier: CS$1$0000! TestLoader.cs (179): return testRunner == null ?null : testRunner.AssemblyInfo; } // Null value carrier:this.testRunner.get_AssemblyInfo().P NUnitForm.cs (1631): TestLoader.AssemblyInfo // Null value carrier:this.get_TestLoader().get_AssemblyInfo()

1631: "this.get_TestLoader().get_AssemblyInfo()" may possibly be null daniel.l BD.EXCEPT.NR-1 . NUnitForm.cs (1628): if ( e.Name != null #x26;#x26; File.Exists( e.Name ) )

. TestEventArgs.cs (199): return name; }

. NUnitForm.cs (1628): if ( e.Name != null #x26;#x26; File.Exists( e.Name ) )

. TestEventArgs.cs (199): return name; }

. NUnitForm.cs (1628): if ( e.Name != null #x26;#x26; File.Exists( e.Name ) )

. NUnitForm.cs (1630): Version version = Environment.Version;

. NUnitForm.cs (1631): TestLoader.AssemblyInfo

. NUnitForm.cs (814): if ( _testLoader == null )

. NUnitForm.cs (816): return _testLoader;

. NUnitForm.cs (817): }! NUnitForm.cs (1631): TestLoader.AssemblyInfo.C TestLoader.cs (179): return testRunner == null ? null :testRunner.AssemblyInfo; } // Null value carrier: CS$1$0000.P NUnitForm.cs (1631): TestLoader.AssemblyInfo // Null value carrier:this.get_TestLoader().get_AssemblyInfo()

1678: "this.get_TestLoader().get_AssemblyInfo()" may possibly be null daniel.l BD.EXCEPT.NR-1 . NUnitForm.cs (1669): if ( longOpDisplay != null )

. NUnitForm.cs (1674): EnableRunCommand( true );

. NUnitForm.cs (1809): runButton.Enabled = enable;

. NUnitForm.cs (1810): runAllMenuItem.Enabled = enable;

. NUnitForm.cs (1811): runSelectedMenuItem.Enabled = enable;

. NUnitForm.cs (1812): runFailedMenuItem.Enabled = enable#x26;#x26; this.TestLoader.TestResult != null #x26;#x26;(this.TestLoader.TestResult.ResultState == R.... NUnitForm.cs (814): if ( _testLoader == null ). NUnitForm.cs (816): return _testLoader;. NUnitForm.cs (817): }

Page 39: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 39

. NUnitForm.cs (1812): runFailedMenuItem.Enabled = enable#x26;#x26; this.TestLoader.TestResult != null #x26;#x26;(this.TestLoader.TestResult.ResultState == R.... TestLoader.cs (169): return testResult; }. NUnitForm.cs (1812): runFailedMenuItem.Enabled = enable#x26;#x26; this.TestLoader.TestResult != null #x26;#x26;(this.TestLoader.TestResult.ResultState == R.... NUnitForm.cs (1815): }. NUnitForm.cs (1676): if ( TestLoader.TestCount == 0 ). NUnitForm.cs (814): if ( _testLoader == null ). NUnitForm.cs (816): return _testLoader;. NUnitForm.cs (817): }. NUnitForm.cs (1676): if ( TestLoader.TestCount == 0 ). TestLoader.cs (184): return loadedTest == null ? 0 : loadedTest.TestCount; }. NUnitForm.cs (1676): if ( TestLoader.TestCount == 0 ). NUnitForm.cs (1678): TestLoader.AssemblyInfo. NUnitForm.cs (814): if ( _testLoader == null ). NUnitForm.cs (816): return _testLoader;. NUnitForm.cs (817): }! NUnitForm.cs (1678): TestLoader.AssemblyInfo! TestLoader.cs (179): return testRunner == null ? null : testRunner.AssemblyInfo;.C ProxyTestRunner.cs (76): return testRunner == null ? null :testRunner.AssemblyInfo; } // Null value carrier: CS$1$0000! TestLoader.cs (179): return testRunner == null ?null : testRunner.AssemblyInfo; } // Null value carrier:this.testRunner.get_AssemblyInfo().P NUnitForm.cs (1678): TestLoader.AssemblyInfo // Null value carrier:this.get_TestLoader().get_AssemblyInfo()

1678: "this.get_TestLoader().get_AssemblyInfo()" may possibly be null daniel.l BD.EXCEPT.NR-1 . NUnitForm.cs (1669): if ( longOpDisplay != null )

. NUnitForm.cs (1674): EnableRunCommand( true );

. NUnitForm.cs (1809): runButton.Enabled = enable;

. NUnitForm.cs (1810): runAllMenuItem.Enabled = enable;

. NUnitForm.cs (1811): runSelectedMenuItem.Enabled = enable;

. NUnitForm.cs (1812): runFailedMenuItem.Enabled = enable#x26;#x26; this.TestLoader.TestResult != null #x26;#x26;(this.TestLoader.TestResult.ResultState == R.... NUnitForm.cs (814): if ( _testLoader == null ). NUnitForm.cs (816): return _testLoader;. NUnitForm.cs (817): }. NUnitForm.cs (1812): runFailedMenuItem.Enabled = enable#x26;#x26; this.TestLoader.TestResult != null #x26;#x26;(this.TestLoader.TestResult.ResultState == R.... TestLoader.cs (169): return testResult; }. NUnitForm.cs (1812): runFailedMenuItem.Enabled = enable#x26;#x26; this.TestLoader.TestResult != null #x26;#x26;(this.TestLoader.TestResult.ResultState == R.... NUnitForm.cs (1815): }. NUnitForm.cs (1676): if ( TestLoader.TestCount == 0 ). NUnitForm.cs (814): if ( _testLoader == null ). NUnitForm.cs (816): return _testLoader;. NUnitForm.cs (817): }. NUnitForm.cs (1676): if ( TestLoader.TestCount == 0 ). TestLoader.cs (184): return loadedTest == null ? 0 : loadedTest.TestCount; }. NUnitForm.cs (1676): if ( TestLoader.TestCount == 0 ). NUnitForm.cs (1678): TestLoader.AssemblyInfo. NUnitForm.cs (814): if ( _testLoader == null ). NUnitForm.cs (816): return _testLoader;. NUnitForm.cs (817): }! NUnitForm.cs (1678): TestLoader.AssemblyInfo.C TestLoader.cs (179): return testRunner == null ? null :testRunner.AssemblyInfo; } // Null value carrier: CS$1$0000.P NUnitForm.cs (1678): TestLoader.AssemblyInfo // Null value carrier:this.get_TestLoader().get_AssemblyInfo()

[0/0] NUnitForm.resx + [0/0] OptionsDialog.cs

[0/0] OptionsDialog.resx + [0/3] ProjectEditor.cs

Tasks: 3684: "this.selectedConfig" may possibly be null daniel.l BD.EXCEPT.NR-1 . ProjectEditor.cs (682): selectedConfig =

project.Configs[(string)configComboBox.SelectedItem];. NUnitProject.cs (267): return configs; }! ProjectEditor.cs (682): selectedConfig =project.Configs[(string)configComboBox.SelectedItem];. ProjectConfigCollection.cs (34): int index = IndexOf( name );. ProjectConfigCollection.cs (63): int index = 0; index < InnerList.Count. ProjectConfigCollection.cs (70): return -1;

Page 40: Nunit  C# source code  defects report by Parasoft dotTEST

Page 40 dotTEST Report [09/21/11 14:13:53]

. ProjectConfigCollection.cs (71): }

. ProjectConfigCollection.cs (34): int index = IndexOf( name );

.C ProjectConfigCollection.cs (35): return index >= 0 ?(ProjectConfig)InnerList[index]: null; // Null value carrier: CS$1$0000! ProjectConfigCollection.cs (36): } // Null value carrier: CS$1$0000! ProjectEditor.cs (682): selectedConfig =project.Configs[(string)configComboBox.SelectedItem]; // Null value carrier:this.project.get_Configs().get_Item(...).P ProjectEditor.cs (684): RuntimeFramework framework =selectedConfig.RuntimeFramework; // Null value carrier: this.selectedConfig

702: Leakage of ToString() result ("version.ToString()") via Windows Forms control daniel.l BD.SECURITY.SENS-1 CP ProjectEditor.cs (702): runtimeVersionComboBox.Text = version.ToString(); //

Sensitive data: version.ToString()

888: "applicationBase" may possibly be null daniel.l BD.PB.STRNULL-2 . ProjectEditor.cs (863): if ( applicationBaseTextBox.Text != String.Empty )

.C ProjectEditor.cs (865): string applicationBase = null; // Null value carrier:applicationBase!E ProjectEditor.cs (869): applicationBase = Path.Combine( project.BasePath,applicationBaseTextBox.Text ); // NUnitProject.get_BasePath() throws:PathTooLongException // Null value carrier: applicationBase. NUnitProject.cs (133): if ( !BasePathSpecified )!E NUnitProject.cs (134): return DefaultBasePath; //NUnitProject.get_DefaultBasePath() throws: PathTooLongException!E NUnitProject.cs (111): return Path.GetDirectoryName( projectPath ); } //Path.GetDirectoryName() throws: PathTooLongException. ProjectEditor.cs (872): catch( Exception exception ) // Null value carrier:applicationBase. ProjectEditor.cs (874): applicationBaseTextBox.SelectAll(); // Null value carrier:applicationBase. ProjectEditor.cs (875): UserMessage.DisplayFailure( exception, "InvalidApplicationBase" ); // Null value carrier: applicationBase. ProjectEditor.cs (876): e.Cancel = true; // Null value carrier: applicationBase. ProjectEditor.cs (877): } // Null value carrier: applicationBase. ProjectEditor.cs (886): if ( !Directory.Exists( applicationBase ) ) // Null valuecarrier: applicationBase.P ProjectEditor.cs (888): string msg = string.Format( "The directory {0} doesnot exist. Do you want to create it?", applicationBase ); // Null value carrier:applicationBase

[0/0] ProjectEditor.resx + [0/1] SettingsPages

+ [0/1] AdvancedLoaderSettingsPage.csTasks: 1153: Leakage of ToString() result ("this.settings.GetSetting(...)") via Windows Forms

control daniel.l BD.SECURITY.SENS-1

. AdvancedLoaderSettingsPage.cs (150): this.settings = Services.UserSettings;. Services.cs (68): if ( userSettings == null ). Services.cs (73): if ( userSettings == null ). Services.cs (76): return userSettings;. Services.cs (77): }. AdvancedLoaderSettingsPage.cs (150): this.settings = Services.UserSettings;. AdvancedLoaderSettingsPage.cs (152):enableShadowCopyCheckBox.Checked =settings.GetSetting( "Options.TestLoader.ShadowCopyFiles", true );. SettingsGroup.cs (150): object result = GetSetting(settingName );. SettingsGroup.cs (68): return storage.GetSetting( settingName );. SettingsGroup.cs (69): }. SettingsGroup.cs (150): object result = GetSetting(settingName );. SettingsGroup.cs (152): if ( result == null ). SettingsGroup.cs (153): return defaultValue;. SettingsGroup.cs (176): }. AdvancedLoaderSettingsPage.cs (152):enableShadowCopyCheckBox.Checked =settings.GetSetting( "Options.TestLoader.ShadowCopyFiles", true );! AdvancedLoaderSettingsPage.cs (153): shadowCopyPathTextBox.Text =settings.GetSetting("Options.TestLoader.ShadowCopyPath", "");. SettingsGroup.cs (187): object result = GetSetting(settingName );. SettingsGroup.cs (68): return storage.GetSetting( settingName );. SettingsGroup.cs (69): }. SettingsGroup.cs (187): object result = GetSetting(settingName );. SettingsGroup.cs (189): if ( result == null ). SettingsGroup.cs (192): if ( result is string ).C SettingsGroup.cs (195): return result.ToString(); // Sensitive data:result.ToString()! SettingsGroup.cs (196): } // Sensitive data: CS$1$0000.P AdvancedLoaderSettingsPage.cs (153): shadowCopyPathTextBox.Text =settings.GetSetting("Options.TestLoader.ShadowCopyPath", ""); // Sensitivedata: this.settings.GetSetting(...)

[0/0] AdvancedLoaderSettingsPage.resx

Page 41: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 41

+ [0/0] AssemblyReloadSettingsPage.cs [0/0] AssemblyReloadSettingsPage.resx

+ [0/0] GuiSettingsPage.cs [0/0] GuiSettingsPage.resx

+ [0/0] InternalTraceSettingsPage.cs [0/0] InternalTraceSettingsPage.Designer.cs [0/0] InternalTraceSettingsPage.resx

+ [0/0] TestLoaderSettingsPage.cs [0/0] TestLoaderSettingsPage.resx

+ [0/0] TestResultSettingsPage.cs [0/0] TestResultSettingsPage.resx

+ [0/0] TreeSettingsPage.cs [0/0] TreeSettingsPage.resx

+ [0/0] VisualStudioSettingsPage.cs [0/0] VisualStudioSettingsPage.resx

+ [0/1] TestAssemblyInfoForm.csTasks: 1128: Leakage of reflection data ("text") via Windows Forms control daniel.l BD.SECURITY.SENS-1 . TestAssemblyInfoForm.cs (24): this.Text = "Test Assemblies";

. TestAssemblyInfoForm.cs (25): this.TextBox.WordWrap = false;

. ScrollingTextDisplayForm.cs (115): return textBox; }

. TestAssemblyInfoForm.cs (25): this.TextBox.WordWrap = false;

. TestAssemblyInfoForm.cs (27): this.TextBox.Font = newSystem.Drawing.Font(FontFamily.GenericMonospace, 8.25F);. ScrollingTextDisplayForm.cs (115): return textBox; }. TestAssemblyInfoForm.cs (27): this.TextBox.Font = newSystem.Drawing.Font(FontFamily.GenericMonospace, 8.25F);. TestAssemblyInfoForm.cs (29): base.OnLoad(e);. ScrollingTextDisplayForm.cs (125): base.OnLoad(e);. ScrollingTextDisplayForm.cs (127): SetMessageLabelSize();. ScrollingTextDisplayForm.cs (137): Rectangle rect = message.ClientRectangle;. ScrollingTextDisplayForm.cs (138): Graphics g = Graphics.FromHwnd(Handle);. ScrollingTextDisplayForm.cs (139): SizeF sizeNeeded =g.MeasureString(message.Text, message.Font, rect.Width);. ScrollingTextDisplayForm.cs (140): int delta = sizeNeeded.ToSize().Height -rect.Height;. ScrollingTextDisplayForm.cs (142): message.Height += delta;. ScrollingTextDisplayForm.cs (143): textBox.Top += delta;. ScrollingTextDisplayForm.cs (144): textBox.Height -= delta;. ScrollingTextDisplayForm.cs (145): }. ScrollingTextDisplayForm.cs (128): }. TestAssemblyInfoForm.cs (31): Process p = Process.GetCurrentProcess();. TestAssemblyInfoForm.cs (32): int currentProcessId = p.Id;. TestAssemblyInfoForm.cs (33): string currentDomainName = "";.C TestAssemblyInfoForm.cs (35): AppendProcessInfo( currentProcessId,Path.GetFileName(Assembly.GetEntryAssembly().Location),RuntimeFramework.CurrentFra... // Sensitive data:GetEntryAssembly().get_Location()! TestAssemblyInfoForm.cs (69): AppendBoldText(string.Format("{0} ( {1} )\r\n",moduleName, pid)); // Sensitive data: moduleName. TestAssemblyInfoForm.cs (125): TextBox.Select(TextBox.Text.Length, 0); //Sensitive data: text. TestAssemblyInfoForm.cs (126): TextBox.SelectionFont = newFont(TextBox.Font, FontStyle.Bold); // Sensitive data: text.P TestAssemblyInfoForm.cs (128): TextBox.SelectedText += text; // Sensitivedata: text

+ [0/0] nunit-gui.exe [0/0] App.config [0/0] AssemblyInfo.cs [0/0] Class1.cs [0/0] CommonAssemblyInfo.cs

+ [0/0] nunit-gui.tests [0/0] CommandLineTests.cs [0/0] CommonAssemblyInfo.cs [0/0] ExceptionDetailsFormTests.cs [0/0] ProjectEditorTests.cs

+ [0/0] nunit-server.exe [0/0] CommonAssemblyInfo.cs [0/0] TestServerConsoleApp.cs

+ [0/18] nunit.core.dll [0/0] AbstractTestCaseDecoration.cs [0/0] AssemblyHelper.cs [0/0] AssemblyInfo.cs [0/0] AssemblyReader.cs + [0/2] AssemblyResolver.cs

Tasks: 299: Stream not closed: this.fs, this.rdr.m_stream daniel.l BD.RES.LEAKS-1 . AssemblyResolver.cs (80): string fullName = args.Name;

Page 42: Nunit  C# source code  defects report by Parasoft dotTEST

Page 42 dotTEST Report [09/21/11 14:13:53]

. AssemblyResolver.cs (81): int index = fullName.IndexOf(',');

. AssemblyResolver.cs (82): if(index == -1)

. AssemblyResolver.cs (88): if ( _cache.Contains( fullName ) )

. AssemblyResolver.cs (28): return _resolved.ContainsKey( name );

. AssemblyResolver.cs (29): }

. AssemblyResolver.cs (88): if ( _cache.Contains( fullName ) )

. AssemblyResolver.cs (94): string dir in _dirs

. AssemblyResolver.cs (96): string file in Directory.GetFiles( dir, "*.dll" )

. AssemblyResolver.cs (98): string fullFile = Path.Combine( dir, file );EP AssemblyResolver.cs (99): AssemblyReader rdr = newAssemblyReader(fullFile); // AssemblyReader..ctor() throws: IOException //Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (22): UInt16 dos_magic = 0xffff;. AssemblyReader.cs (23): UInt32 pe_signature = 0xffffffff;. AssemblyReader.cs (29): private uint peHeader = 0;. AssemblyReader.cs (30): private uint fileHeader = 0;. AssemblyReader.cs (31): private uint optionalHeader = 0;. AssemblyReader.cs (32): private uint dataDirectory = 0;. AssemblyReader.cs (33): private uint dataSections = 0;. AssemblyReader.cs (44): public AssemblyReader( string assemblyPath ). AssemblyReader.cs (46): this.assemblyPath = assemblyPath;!E AssemblyReader.cs (47): CalcHeaderOffsets(); //AssemblyReader.CalcHeaderOffsets() throws: IOException.C AssemblyReader.cs (58): this.fs = new FileStream( assemblyPath,FileMode.Open, FileAccess.Read ); // Allocated resource variable: newFileStream! AssemblyReader.cs (59): this.rdr = new BinaryReader( fs ); // Allocatedresource variable: this.fs!E AssemblyReader.cs (60): dos_magic = rdr.ReadUInt16(); //BinaryReader.ReadUInt16() throws: IOException // Allocated resource variable:this.fs, this.rdr.m_stream

122: Stream not closed: rdr.fs, rdr.rdr.m_stream daniel.l BD.RES.LEAKS-1 . AssemblyResolver.cs (80): string fullName = args.Name;

. AssemblyResolver.cs (81): int index = fullName.IndexOf(',');

. AssemblyResolver.cs (82): if(index == -1)

. AssemblyResolver.cs (88): if ( _cache.Contains( fullName ) )

. AssemblyResolver.cs (28): return _resolved.ContainsKey( name );

. AssemblyResolver.cs (29): }

. AssemblyResolver.cs (88): if ( _cache.Contains( fullName ) )

. AssemblyResolver.cs (94): string dir in _dirs

. AssemblyResolver.cs (96): string file in Directory.GetFiles( dir, "*.dll" )

. AssemblyResolver.cs (98): string fullFile = Path.Combine( dir, file );! AssemblyResolver.cs (99): AssemblyReader rdr = newAssemblyReader(fullFile);. AssemblyReader.cs (22): UInt16 dos_magic = 0xffff;. AssemblyReader.cs (23): UInt32 pe_signature = 0xffffffff;. AssemblyReader.cs (29): private uint peHeader = 0;. AssemblyReader.cs (30): private uint fileHeader = 0;. AssemblyReader.cs (31): private uint optionalHeader = 0;. AssemblyReader.cs (32): private uint dataDirectory = 0;. AssemblyReader.cs (33): private uint dataSections = 0;. AssemblyReader.cs (44): public AssemblyReader( string assemblyPath ). AssemblyReader.cs (46): this.assemblyPath = assemblyPath;! AssemblyReader.cs (47): CalcHeaderOffsets();.C AssemblyReader.cs (58): this.fs = new FileStream( assemblyPath,FileMode.Open, FileAccess.Read ); // Allocated resource variable: newFileStream! AssemblyReader.cs (59): this.rdr = new BinaryReader( fs ); // Allocatedresource variable: this.fs. AssemblyReader.cs (60): dos_magic = rdr.ReadUInt16(); // Allocated resourcevariable: this.fs, this.rdr.m_stream. AssemblyReader.cs (61): if ( dos_magic == 0x5a4d ) // Allocated resourcevariable: this.fs, this.rdr.m_stream. AssemblyReader.cs (101): } // Allocated resource variable: this.fs,this.rdr.m_stream. AssemblyReader.cs (48): } // Allocated resource variable: this.fs,this.rdr.m_stream! AssemblyResolver.cs (99): AssemblyReader rdr = newAssemblyReader(fullFile); // Allocated resource variable: newAssemblyReader.fs, new AssemblyReader.rdr.m_stream. AssemblyResolver.cs (102): if (rdr.IsDotNetFile) // Allocated resource variable:rdr.fs, rdr.rdr.m_stream. AssemblyReader.cs (130): return IsValidPeFile #x26;#x26;numDataDirectoryEntries > 14 #x26;#x26; DataDirectoryRva(14) != 0; //Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (125): return dos_magic == 0x5a4d #x26;#x26;pe_signature == 0x00004550; } // Allocated resource variable: this.fs,this.rdr.m_stream

Page 43: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 43

. AssemblyReader.cs (130): return IsValidPeFile #x26;#x26;numDataDirectoryEntries > 14 #x26;#x26; DataDirectoryRva(14) != 0; } //Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyResolver.cs (102): if (rdr.IsDotNetFile) // Allocated resource variable:rdr.fs, rdr.rdr.m_stream. AssemblyResolver.cs (111): } // Allocated resource variable: rdr.fs,rdr.rdr.m_stream. AssemblyResolver.cs (117): } // Allocated resource variable: rdr.fs,rdr.rdr.m_stream. AssemblyResolver.cs (96): in // Allocated resource variable: rdr.fs,rdr.rdr.m_stream. AssemblyResolver.cs (94): in // Allocated resource variable: rdr.fs,rdr.rdr.m_stream!E AssemblyResolver.cs (120): log.Debug( string.Format( "Not in Cache: {0}",fullName) ); // String.Format() throws: FormatException // Allocated resourcevariable: rdr.fs, rdr.rdr.m_stream.P AssemblyResolver.cs (122): } // Allocated resource variable: rdr.fs,rdr.rdr.m_stream

+ [0/8] Builders [0/0] CombinatorialStrategy.cs [0/0] CombinatorialTestCaseProvider.cs [0/0] CombiningStrategy.cs [0/0] DatapointProvider.cs [0/0] InlineDataPointProvider.cs [0/0] LegacySuiteBuilder.cs + [0/2] NUnitTestCaseBuilder.cs

Tasks: 2347: "arglist" may possibly be null daniel.l BD.EXCEPT.NR-1 . NUnitTestCaseBuilder.cs (241): if (testMethod.Method.IsAbstract)

. TestMethod.cs (110): return method; }

. NUnitTestCaseBuilder.cs (241): if (testMethod.Method.IsAbstract)

. NUnitTestCaseBuilder.cs (248): if (!testMethod.Method.IsPublic)

. TestMethod.cs (110): return method; }

. NUnitTestCaseBuilder.cs (248): if (!testMethod.Method.IsPublic)

. NUnitTestCaseBuilder.cs (255): ParameterInfo[] parameters =testMethod.Method.GetParameters();. TestMethod.cs (110): return method; }. NUnitTestCaseBuilder.cs (255): ParameterInfo[] parameters =testMethod.Method.GetParameters();. NUnitTestCaseBuilder.cs (256): int argsNeeded = parameters.Length;.C NUnitTestCaseBuilder.cs (258): object[] arglist = null; // Null value carrier:arglist. NUnitTestCaseBuilder.cs (259): int argsProvided = 0; // Null value carrier:arglist. NUnitTestCaseBuilder.cs (261): if (parms != null) // Null value carrier: arglist. NUnitTestCaseBuilder.cs (279): if (!testMethod.Method.ReturnType.Equals(typeof(void)) #x26;#x26; (parms ==null || !parms.HasExpectedResult #x26;#x26; parms.ExpectedEx... // Null valuecarrier: arglist. NUnitTestCaseBuilder.cs (287): if (argsProvided > 0 #x26;#x26; argsNeeded== 0) // Null value carrier: arglist. NUnitTestCaseBuilder.cs (294): if (argsProvided == 0 #x26;#x26; argsNeeded> 0) // Null value carrier: arglist. NUnitTestCaseBuilder.cs (323): if (argsProvided != argsNeeded ) // Null valuecarrier: arglist. NUnitTestCaseBuilder.cs (331): if(testMethod.Method.IsGenericMethodDefinition) // Null value carrier: arglist. NUnitTestCaseBuilder.cs (333): Type[] typeArguments =GetTypeArgumentsForMethod(testMethod.Method, arglist); // Null value carrier:arglist. NUnitTestCaseBuilder.cs (368): Type[] typeParameters =method.GetGenericArguments(); // Null value carrier: arglist. NUnitTestCaseBuilder.cs (369): Type[] typeArguments = newType[typeParameters.Length]; // Null value carrier: arglist. NUnitTestCaseBuilder.cs (370): ParameterInfo[] parameters =method.GetParameters(); // Null value carrier: arglist. NUnitTestCaseBuilder.cs (372): int typeIndex = 0; typeIndex <typeArguments.Length // Null value carrier: arglist. NUnitTestCaseBuilder.cs (385): return typeArguments; // Null value carrier:arglist. NUnitTestCaseBuilder.cs (386): } // Null value carrier: arglist. NUnitTestCaseBuilder.cs (333): Type[] typeArguments =GetTypeArgumentsForMethod(testMethod.Method, arglist); // Null value carrier:arglist. NUnitTestCaseBuilder.cs (334): in typeArguments // Null value carrier: arglist. NUnitTestCaseBuilder.cs (342): testMethod.method =testMethod.Method.MakeGenericMethod(typeArguments); // Null value carrier:arglist

Page 44: Nunit  C# source code  defects report by Parasoft dotTEST

Page 44 dotTEST Report [09/21/11 14:13:53]

. NUnitTestCaseBuilder.cs (343): parameters =testMethod.Method.GetParameters(); // Null value carrier: arglist. NUnitTestCaseBuilder.cs (345): int i = 0; i < parameters.Length // Null valuecarrier: arglist.P NUnitTestCaseBuilder.cs (347): if (arglist[i].GetType() !=parameters[i].ParameterType #x26;#x26; arglist[i] is IConvertible) // Null valuecarrier: arglist

379: "arglist" may possibly be null daniel.l BD.EXCEPT.NR-1 . NUnitTestCaseBuilder.cs (241): if (testMethod.Method.IsAbstract)

. TestMethod.cs (110): return method; }

. NUnitTestCaseBuilder.cs (241): if (testMethod.Method.IsAbstract)

. NUnitTestCaseBuilder.cs (248): if (!testMethod.Method.IsPublic)

. TestMethod.cs (110): return method; }

. NUnitTestCaseBuilder.cs (248): if (!testMethod.Method.IsPublic)

. NUnitTestCaseBuilder.cs (255): ParameterInfo[] parameters =testMethod.Method.GetParameters();. TestMethod.cs (110): return method; }. NUnitTestCaseBuilder.cs (255): ParameterInfo[] parameters =testMethod.Method.GetParameters();. NUnitTestCaseBuilder.cs (256): int argsNeeded = parameters.Length;.C NUnitTestCaseBuilder.cs (258): object[] arglist = null; // Null value carrier:arglist. NUnitTestCaseBuilder.cs (259): int argsProvided = 0; // Null value carrier:arglist. NUnitTestCaseBuilder.cs (261): if (parms != null) // Null value carrier: arglist. NUnitTestCaseBuilder.cs (279): if (!testMethod.Method.ReturnType.Equals(typeof(void)) #x26;#x26; (parms ==null || !parms.HasExpectedResult #x26;#x26; parms.ExpectedEx... // Null valuecarrier: arglist. NUnitTestCaseBuilder.cs (287): if (argsProvided > 0 #x26;#x26; argsNeeded== 0) // Null value carrier: arglist. NUnitTestCaseBuilder.cs (294): if (argsProvided == 0 #x26;#x26; argsNeeded> 0) // Null value carrier: arglist. NUnitTestCaseBuilder.cs (323): if (argsProvided != argsNeeded ) // Null valuecarrier: arglist. NUnitTestCaseBuilder.cs (331): if(testMethod.Method.IsGenericMethodDefinition) // Null value carrier: arglist! NUnitTestCaseBuilder.cs (333): Type[] typeArguments =GetTypeArgumentsForMethod(testMethod.Method, arglist); // Null value carrier:arglist. NUnitTestCaseBuilder.cs (368): Type[] typeParameters =method.GetGenericArguments(); // Null value carrier: arglist. NUnitTestCaseBuilder.cs (369): Type[] typeArguments = newType[typeParameters.Length]; // Null value carrier: arglist. NUnitTestCaseBuilder.cs (370): ParameterInfo[] parameters =method.GetParameters(); // Null value carrier: arglist. NUnitTestCaseBuilder.cs (372): int typeIndex = 0; typeIndex <typeArguments.Length // Null value carrier: arglist. NUnitTestCaseBuilder.cs (374): Type typeParameter =typeParameters[typeIndex]; // Null value carrier: arglist. NUnitTestCaseBuilder.cs (376): int argIndex = 0; argIndex <parameters.Length // Null value carrier: arglist. NUnitTestCaseBuilder.cs (378): if(parameters[argIndex].ParameterType.Equals(typeParameter)) // Null valuecarrier: arglist.P NUnitTestCaseBuilder.cs (379): typeArguments[typeIndex]= TypeHelper.BestCommonType( typeArguments[typeIndex],arglist[argIndex].GetType()); // Null value carrier: arglist

+ [0/2] NUnitTestFixtureBuilder.csTasks: 2113: "typeArgs" may possibly be null daniel.l BD.EXCEPT.NR-1 . NUnitTestFixtureBuilder.cs (101): object[] arguments = null;

. NUnitTestFixtureBuilder.cs (102): IList categories = null;

. NUnitTestFixtureBuilder.cs (104): if (attr != null)

. NUnitTestFixtureBuilder.cs (106): arguments =(object[])Reflect.GetPropertyValue(attr, "Arguments");. Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public |BindingFlags.Instance );. Reflect.cs (337): PropertyInfo property = GetNamedProperty( obj.GetType(),name, bindingFlags );. Reflect.cs (338): if ( property != null ). Reflect.cs (340): return null;. Reflect.cs (341): }. Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public |BindingFlags.Instance );. Reflect.cs (326): }. NUnitTestFixtureBuilder.cs (106): arguments =(object[])Reflect.GetPropertyValue(attr, "Arguments");

Page 45: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 45

. NUnitTestFixtureBuilder.cs (108): categories = Reflect.GetPropertyValue(attr,"Categories") as IList;. Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public |BindingFlags.Instance );. Reflect.cs (337): PropertyInfo property = GetNamedProperty( obj.GetType(),name, bindingFlags );. Reflect.cs (338): if ( property != null ). Reflect.cs (340): return null;. Reflect.cs (341): }. Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public |BindingFlags.Instance );. Reflect.cs (326): }. NUnitTestFixtureBuilder.cs (108): categories = Reflect.GetPropertyValue(attr,"Categories") as IList;. NUnitTestFixtureBuilder.cs (110): if (type.ContainsGenericParameters)! NUnitTestFixtureBuilder.cs (112): Type[] typeArgs =(Type[])Reflect.GetPropertyValue(attr, "TypeArgs");! Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public |BindingFlags.Instance );. Reflect.cs (337): PropertyInfo property = GetNamedProperty( obj.GetType(),name, bindingFlags );. Reflect.cs (314): return type.GetProperty( name, bindingFlags );. Reflect.cs (315): }. Reflect.cs (337): PropertyInfo property = GetNamedProperty( obj.GetType(),name, bindingFlags );. Reflect.cs (338): if ( property != null ).C Reflect.cs (340): return null; // Null value carrier: CS$1$0000! Reflect.cs (341): } // Null value carrier: CS$1$0000! Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public |BindingFlags.Instance ); // Null value carrier: GetPropertyValue(...)! Reflect.cs (326): } // Null value carrier: CS$1$0000! NUnitTestFixtureBuilder.cs (112): Type[] typeArgs =(Type[])Reflect.GetPropertyValue(attr, "TypeArgs"); // Null value carrier:GetPropertyValue(...).P NUnitTestFixtureBuilder.cs (113): if( typeArgs.Length > 0 ||TypeHelper.CanDeduceTypeArgsFromArgs(type, arguments, ref typeArgs)) //Null value carrier: typeArgs

279: "args" may possibly be null daniel.l BD.EXCEPT.NR-1 ! NUnitTestFixtureBuilder.cs (276): object[] args =

(object[])Reflect.GetPropertyValue(attrs[i], "Arguments");! Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public |BindingFlags.Instance );.C Reflect.cs (340): return null; // Null value carrier: CS$1$0000! Reflect.cs (341): } // Null value carrier: CS$1$0000! Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public |BindingFlags.Instance ); // Null value carrier: GetPropertyValue(...)! Reflect.cs (326): } // Null value carrier: CS$1$0000! NUnitTestFixtureBuilder.cs (276): object[] args =(object[])Reflect.GetPropertyValue(attrs[i], "Arguments"); // Null value carrier:GetPropertyValue(...). NUnitTestFixtureBuilder.cs (277): object[] typeArgs =(object[])Reflect.GetPropertyValue(attrs[i], "TypeArgs"); // Null value carrier: args.P NUnitTestFixtureBuilder.cs (279): if (args.Length > 0 || typeArgs != null#x26;#x26; typeArgs.Length > 0) // Null value carrier: args

[0/0] PairwiseStrategy.cs [0/0] ProviderCache.cs [0/0] ProviderInfo.cs [0/0] SequentialStrategy.cs [0/0] SetUpFixtureBuilder.cs + [0/3] TestAssemblyBuilder.cs

Tasks: 350: Stream not closed: this.fs, this.rdr.m_stream daniel.l BD.RES.LEAKS-1 . TestAssemblyBuilder.cs (48): if ( assemblyInfo == null #x26;#x26; assembly !=

null )EP TestAssemblyBuilder.cs (50): AssemblyReader rdr = newAssemblyReader( assembly ); // AssemblyReader..ctor() throws: IOException //Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (22): UInt16 dos_magic = 0xffff;. AssemblyReader.cs (23): UInt32 pe_signature = 0xffffffff;. AssemblyReader.cs (29): private uint peHeader = 0;. AssemblyReader.cs (30): private uint fileHeader = 0;. AssemblyReader.cs (31): private uint optionalHeader = 0;. AssemblyReader.cs (32): private uint dataDirectory = 0;. AssemblyReader.cs (33): private uint dataSections = 0;. AssemblyReader.cs (50): public AssemblyReader( Assembly assembly ). AssemblyReader.cs (52): this.assemblyPath =AssemblyHelper.GetAssemblyPath( assembly );. AssemblyHelper.cs (23): string path = assembly.CodeBase;

Page 46: Nunit  C# source code  defects report by Parasoft dotTEST

Page 46 dotTEST Report [09/21/11 14:13:53]

. AssemblyHelper.cs (24): Uri uri = new Uri(path);

. AssemblyHelper.cs (27): if (!uri.IsFile)

. AssemblyHelper.cs (28): return assembly.Location;

. AssemblyHelper.cs (34): }

. AssemblyReader.cs (52): this.assemblyPath =AssemblyHelper.GetAssemblyPath( assembly );!E AssemblyReader.cs (53): CalcHeaderOffsets(); //AssemblyReader.CalcHeaderOffsets() throws: IOException.C AssemblyReader.cs (58): this.fs = new FileStream( assemblyPath,FileMode.Open, FileAccess.Read ); // Allocated resource variable: newFileStream! AssemblyReader.cs (59): this.rdr = new BinaryReader( fs ); // Allocatedresource variable: this.fs!E AssemblyReader.cs (60): dos_magic = rdr.ReadUInt16(); //BinaryReader.ReadUInt16() throws: IOException // Allocated resource variable:this.fs, this.rdr.m_stream

57: Stream not closed: rdr.fs, rdr.rdr.m_stream daniel.l BD.RES.LEAKS-1 . TestAssemblyBuilder.cs (48): if ( assemblyInfo == null #x26;#x26; assembly !=

null )! TestAssemblyBuilder.cs (50): AssemblyReader rdr = newAssemblyReader( assembly );. AssemblyReader.cs (22): UInt16 dos_magic = 0xffff;. AssemblyReader.cs (23): UInt32 pe_signature = 0xffffffff;. AssemblyReader.cs (29): private uint peHeader = 0;. AssemblyReader.cs (30): private uint fileHeader = 0;. AssemblyReader.cs (31): private uint optionalHeader = 0;. AssemblyReader.cs (32): private uint dataDirectory = 0;. AssemblyReader.cs (33): private uint dataSections = 0;. AssemblyReader.cs (50): public AssemblyReader( Assembly assembly ). AssemblyReader.cs (52): this.assemblyPath =AssemblyHelper.GetAssemblyPath( assembly );. AssemblyHelper.cs (23): string path = assembly.CodeBase;. AssemblyHelper.cs (24): Uri uri = new Uri(path);. AssemblyHelper.cs (27): if (!uri.IsFile). AssemblyHelper.cs (28): return assembly.Location;. AssemblyHelper.cs (34): }. AssemblyReader.cs (52): this.assemblyPath =AssemblyHelper.GetAssemblyPath( assembly );! AssemblyReader.cs (53): CalcHeaderOffsets();.C AssemblyReader.cs (58): this.fs = new FileStream( assemblyPath,FileMode.Open, FileAccess.Read ); // Allocated resource variable: newFileStream! AssemblyReader.cs (59): this.rdr = new BinaryReader( fs ); // Allocatedresource variable: this.fs. AssemblyReader.cs (60): dos_magic = rdr.ReadUInt16(); // Allocated resourcevariable: this.fs, this.rdr.m_stream. AssemblyReader.cs (61): if ( dos_magic == 0x5a4d ) // Allocated resourcevariable: this.fs, this.rdr.m_stream. AssemblyReader.cs (101): } // Allocated resource variable: this.fs,this.rdr.m_stream. AssemblyReader.cs (54): } // Allocated resource variable: this.fs,this.rdr.m_stream! TestAssemblyBuilder.cs (50): AssemblyReader rdr = newAssemblyReader( assembly ); // Allocated resource variable: newAssemblyReader.fs, new AssemblyReader.rdr.m_stream. TestAssemblyBuilder.cs (51): Version imageRuntimeVersion = newVersion( rdr.ImageRuntimeVersion.Substring( 1 ) ); // Allocated resourcevariable: rdr.fs, rdr.rdr.m_stream. AssemblyReader.cs (142): string runtimeVersion = string.Empty; // Allocatedresource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (144): if (this.IsDotNetFile) // Allocated resource variable:this.fs, this.rdr.m_stream. AssemblyReader.cs (130): return IsValidPeFile #x26;#x26;numDataDirectoryEntries > 14 #x26;#x26; DataDirectoryRva(14) != 0; //Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (125): return dos_magic == 0x5a4d #x26;#x26;pe_signature == 0x00004550; } // Allocated resource variable: this.fs,this.rdr.m_stream. AssemblyReader.cs (130): return IsValidPeFile #x26;#x26;numDataDirectoryEntries > 14 #x26;#x26; DataDirectoryRva(14) != 0; } //Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (144): if (this.IsDotNetFile) // Allocated resource variable:this.fs, this.rdr.m_stream. AssemblyReader.cs (171): return runtimeVersion; // Allocated resourcevariable: this.fs, this.rdr.m_stream. AssemblyReader.cs (172): } // Allocated resource variable: this.fs,this.rdr.m_stream

Page 47: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 47

!E TestAssemblyBuilder.cs (51): Version imageRuntimeVersion = newVersion( rdr.ImageRuntimeVersion.Substring( 1 ) ); // Version..ctor() throws:OverflowException // Allocated resource variable: rdr.fs, rdr.rdr.m_stream.P TestAssemblyBuilder.cs (57): } // Allocated resource variable: rdr.fs,rdr.rdr.m_stream

182: "assembly" may possibly be null daniel.l BD.EXCEPT.NR-1 . TestAssemblyBuilder.cs (171): Assembly assembly = null;

. TestAssemblyBuilder.cs (175): AssemblyName assemblyName =AssemblyName.GetAssemblyName( Path.GetFileName( path ) );. TestAssemblyBuilder.cs (177): assembly = Assembly.Load(assemblyName);.C TestAssemblyBuilder.cs (179): if ( assembly != null ) // Null value carrier:assembly.P TestAssemblyBuilder.cs (182): log.Info( "Loaded assembly " +assembly.FullName ); // Null value carrier: assembly

[0/0] TestCaseParameterProvider.cs + [0/1] TestCaseSourceProvider.cs

Tasks: 173: "info.GetInstance()" may possibly be null daniel.l BD.EXCEPT.NR-1 ! TestCaseSourceProvider.cs (73): info.GetInstance()

! ProviderInfo.cs (52): return(IEnumerable)GetProviderObjectFromMember(members[0]);.C ProviderInfo.cs (57): object providerObject = null; // Null value carrier:providerObject. ProviderInfo.cs (58): object instance = null; // Null value carrier: providerObject. ProviderInfo.cs (60): switch (member.MemberType) // Null value carrier:providerObject! ProviderInfo.cs (88): return providerObject; // Null value carrier: providerObject! ProviderInfo.cs (89): } // Null value carrier: CS$1$0000! ProviderInfo.cs (52): return(IEnumerable)GetProviderObjectFromMember(members[0]); // Null valuecarrier: this.GetProviderObjectFromMember(...)! ProviderInfo.cs (53): } // Null value carrier: CS$1$0000.P TestCaseSourceProvider.cs (73): info.GetInstance() // Null value carrier:info.GetInstance()

[0/0] ValueSourceProvider.cs [0/0] CommonAssemblyInfo.cs [0/0] CoreExtensions.cs [0/0] CultureDetector.cs [0/0] DirectorySwapper.cs [0/0] DomainAgent.cs [0/0] EventListenerTextWriter.cs [0/0] EventPump.cs [0/0] EventQueue.cs [0/0] ExpectedExceptionProcessor.cs + [0/0] Extensibility

[0/0] DataPointProviders.cs [0/0] EventListenerCollection.cs [0/0] FrameworkRegistry.cs [0/0] SuiteBuilderCollection.cs [0/0] TestCaseBuilderCollection.cs [0/0] TestCaseProviders.cs [0/0] TestDecoratorCollection.cs

[0/0] ExtensionHost.cs [0/0] ExtensionPoint.cs [0/0] IgnoreDecorator.cs [0/0] InternalTrace.cs [0/0] InternalTraceWriter.cs [0/0] InvalidSuiteException.cs [0/0] InvalidTestFixtureException.cs [0/0] LegacySuite.cs [0/0] Log4NetCapture.cs [0/0] LogCapture.cs [0/0] Logger.cs [0/0] MethodHelper.cs [0/0] NamespaceSuite.cs [0/0] NamespaceTreeBuilder.cs [0/0] NoTestFixturesException.cs [0/0] NullListener.cs + [0/3] NUnitConfiguration.cs

Tasks: 3203: Registry key not closed: key daniel.l BD.RES.LEAKS-1 . NUnitConfiguration.cs (187): if (monoExePath == null)

. NUnitConfiguration.cs (189): string[] searchNames = IsWindows() ? new string[]{ "mono.bat", "mono.cmd", "mono.exe" } : new string[] { "mono", "mono..... NUnitConfiguration.cs (237): return Environment.OSVersion.Platform ==PlatformID.Win32NT;. NUnitConfiguration.cs (238): }

Page 48: Nunit  C# source code  defects report by Parasoft dotTEST

Page 48 dotTEST Report [09/21/11 14:13:53]

. NUnitConfiguration.cs (189): string[] searchNames = IsWindows() ? new string[]{ "mono.bat", "mono.cmd", "mono.exe" } : new string[] { "mono", "mono..... NUnitConfiguration.cs (193): monoExePath = FindOneOnPath(searchNames);. NUnitConfiguration.cs (232): return null;. NUnitConfiguration.cs (233): }. NUnitConfiguration.cs (193): monoExePath = FindOneOnPath(searchNames);. NUnitConfiguration.cs (195): if (monoExePath == null #x26;#x26; IsWindows()). NUnitConfiguration.cs (237): return Environment.OSVersion.Platform ==PlatformID.Win32NT;. NUnitConfiguration.cs (238): }. NUnitConfiguration.cs (195): if (monoExePath == null #x26;#x26; IsWindows()).C NUnitConfiguration.cs (197): RegistryKey key =Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono"); // Allocatedresource variable: LocalMachine.OpenSubKey(...). NUnitConfiguration.cs (198): if (key != null) // Allocated resource variable: key. NUnitConfiguration.cs (200): string version = key.GetValue("DefaultCLR") asstring; // Allocated resource variable: key. NUnitConfiguration.cs (201): if (version != null) // Allocated resource variable:key.P NUnitConfiguration.cs (203): key = key.OpenSubKey(version); // Allocatedresource variable: key

219: Registry key not closed: key daniel.l BD.RES.LEAKS-1 . NUnitConfiguration.cs (187): if (monoExePath == null)

. NUnitConfiguration.cs (189): string[] searchNames = IsWindows() ? new string[]{ "mono.bat", "mono.cmd", "mono.exe" } : new string[] { "mono", "mono..... NUnitConfiguration.cs (237): return Environment.OSVersion.Platform ==PlatformID.Win32NT;. NUnitConfiguration.cs (238): }. NUnitConfiguration.cs (189): string[] searchNames = IsWindows() ? new string[]{ "mono.bat", "mono.cmd", "mono.exe" } : new string[] { "mono", "mono..... NUnitConfiguration.cs (193): monoExePath = FindOneOnPath(searchNames);. NUnitConfiguration.cs (232): return null;. NUnitConfiguration.cs (233): }. NUnitConfiguration.cs (193): monoExePath = FindOneOnPath(searchNames);. NUnitConfiguration.cs (195): if (monoExePath == null #x26;#x26; IsWindows()). NUnitConfiguration.cs (237): return Environment.OSVersion.Platform ==PlatformID.Win32NT;. NUnitConfiguration.cs (238): }. NUnitConfiguration.cs (195): if (monoExePath == null #x26;#x26; IsWindows()).C NUnitConfiguration.cs (197): RegistryKey key =Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono"); // Allocatedresource variable: LocalMachine.OpenSubKey(...). NUnitConfiguration.cs (198): if (key != null) // Allocated resource variable: key!E NUnitConfiguration.cs (200): string version = key.GetValue("DefaultCLR") asstring; // RegistryKey.GetValue() throws: SecurityException // Allocated resourcevariable: key.P NUnitConfiguration.cs (219): } // Allocated resource variable: key

219: Registry key not closed: key daniel.l BD.RES.LEAKS-1 . NUnitConfiguration.cs (187): if (monoExePath == null)

. NUnitConfiguration.cs (189): string[] searchNames = IsWindows() ? new string[]{ "mono.bat", "mono.cmd", "mono.exe" } : new string[] { "mono", "mono..... NUnitConfiguration.cs (237): return Environment.OSVersion.Platform ==PlatformID.Win32NT;. NUnitConfiguration.cs (238): }. NUnitConfiguration.cs (189): string[] searchNames = IsWindows() ? new string[]{ "mono.bat", "mono.cmd", "mono.exe" } : new string[] { "mono", "mono..... NUnitConfiguration.cs (193): monoExePath = FindOneOnPath(searchNames);. NUnitConfiguration.cs (232): return null;. NUnitConfiguration.cs (233): }. NUnitConfiguration.cs (193): monoExePath = FindOneOnPath(searchNames);. NUnitConfiguration.cs (195): if (monoExePath == null #x26;#x26; IsWindows()). NUnitConfiguration.cs (237): return Environment.OSVersion.Platform ==PlatformID.Win32NT;. NUnitConfiguration.cs (238): }. NUnitConfiguration.cs (195): if (monoExePath == null #x26;#x26; IsWindows()). NUnitConfiguration.cs (197): RegistryKey key =Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono");. NUnitConfiguration.cs (198): if (key != null). NUnitConfiguration.cs (200): string version = key.GetValue("DefaultCLR") asstring;. NUnitConfiguration.cs (201): if (version != null).C NUnitConfiguration.cs (203): key = key.OpenSubKey(version); // Allocatedresource variable: key.OpenSubKey(...). NUnitConfiguration.cs (204): if (key != null) // Allocated resource variable: key!E NUnitConfiguration.cs (206): string installDir = key.GetValue("SdkInstallRoot")as string; // RegistryKey.GetValue() throws: SecurityException // Allocatedresource variable: key.P NUnitConfiguration.cs (219): } // Allocated resource variable: key

[0/0] NUnitException.cs

Page 49: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 49

+ [0/1] NUnitFramework.csTasks: 1229: "categoryName" may possibly be null daniel.l BD.EXCEPT.NR-1 . NUnitFramework.cs (175): Attribute attribute in attributes

. NUnitFramework.cs (177): Type attributeType = attribute.GetType();

. NUnitFramework.cs (178): string attributeName = attributeType.FullName;

. NUnitFramework.cs (179): bool isValid = test.RunState !=RunState.NotRunnable;. Test.cs (186): return runState; }. NUnitFramework.cs (179): bool isValid = test.RunState !=RunState.NotRunnable;. NUnitFramework.cs (181): switch (attributeName). NUnitFramework.cs (224): if ( Reflect.InheritsFrom( attributeType,CategoryAttribute ) ). Reflect.cs (130): Type current = type; current != typeof( object ). Reflect.cs (131): if( current.FullName == typeName ). Reflect.cs (132): return true;. Reflect.cs (135): }. NUnitFramework.cs (224): if ( Reflect.InheritsFrom( attributeType,CategoryAttribute ) )! NUnitFramework.cs (226): string categoryName =(string)Reflect.GetPropertyValue(attribute, PropertyNames.CategoryName);! Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public |BindingFlags.Instance );. Reflect.cs (337): PropertyInfo property = GetNamedProperty( obj.GetType(),name, bindingFlags );. Reflect.cs (314): return type.GetProperty( name, bindingFlags );. Reflect.cs (315): }. Reflect.cs (337): PropertyInfo property = GetNamedProperty( obj.GetType(),name, bindingFlags );. Reflect.cs (338): if ( property != null ).C Reflect.cs (340): return null; // Null value carrier: CS$1$0000! Reflect.cs (341): } // Null value carrier: CS$1$0000! Reflect.cs (325): return GetPropertyValue( obj, name, BindingFlags.Public |BindingFlags.Instance ); // Null value carrier: GetPropertyValue(...)! Reflect.cs (326): } // Null value carrier: CS$1$0000! NUnitFramework.cs (226): string categoryName =(string)Reflect.GetPropertyValue(attribute, PropertyNames.CategoryName); //Null value carrier: GetPropertyValue(...). NUnitFramework.cs (227): test.Categories.Add(categoryName); // Null valuecarrier: categoryName.P NUnitFramework.cs (229): if (categoryName.IndexOfAny(new char[] { ',', '!', '+','-' }) >= 0) // Null value carrier: categoryName

[0/0] NUnitTestFixture.cs [0/0] NUnitTestMethod.cs [0/0] ParameterizedFixtureSuite.cs [0/0] ParameterizedTestMethodSuite.cs [0/0] PlatformHelper.cs [0/0] ProjectRootSuite.cs [0/0] ProxyTestRunner.cs [0/0] QueuingEventListener.cs [0/0] Reflect.cs [0/0] RemoteTestRunner.cs [0/0] SetUpFixture.cs + [0/1] SimpleTestRunner.cs

Tasks: 1150: "this.get_Test()" may possibly be null daniel.l BD.EXCEPT.NR-1 . SimpleTestRunner.cs (145): log.Debug("Starting test run");

. Logger.cs (70): Log(InternalTraceLevel.Verbose, message);

. Logger.cs (82): if (InternalTrace.Level >= level)

. Logger.cs (84): }

. Logger.cs (71): }

. SimpleTestRunner.cs (148): this.runThread = Thread.CurrentThread;! SimpleTestRunner.cs (150): listener.RunStarted( this.Test.TestName.FullName,test.CountTestCases( filter ) );.C SimpleTestRunner.cs (82): return test == null ? null : new TestNode( test ); } //Null value carrier: CS$1$0000.P SimpleTestRunner.cs (150):listener.RunStarted( this.Test.TestName.FullName,test.CountTestCases( filter ) ); // Null value carrier: this.get_Test()

[0/0] StringTextWriter.cs [0/0] SuiteBuilderAttribute.cs [0/0] TestAssembly.cs [0/0] TestBuilderAttribute.cs [0/0] TestCaseBuilderAttribute.cs [0/0] TestDecoratorAttribute.cs [0/0] TestExecutionContext.cs [0/0] TestFixture.cs

Page 50: Nunit  C# source code  defects report by Parasoft dotTEST

Page 50 dotTEST Report [09/21/11 14:13:53]

[0/0] TestFixtureBuilder.cs + [0/3] TestMethod.cs

Tasks: 377: "method" may possibly be null daniel.l BD.EXCEPT.NR-1 ! TestCaseResultFixture.cs (25): caseResult = new TestResult( new

TestInfo(new NUnitTestMethod(Reflect.GetNamedMethod( this.GetType(),"DummyMethod" ) ) .... Reflect.cs (240): GetMethods( fixtureType ). Reflect.cs (185): MethodInfo[] result = fixtureType.GetMethods(AllMembers);. Reflect.cs (187): return result;. Reflect.cs (188): }. Reflect.cs (240): in GetMethods( fixtureType ).C Reflect.cs (246): return null; // Null value carrier: CS$1$0000! Reflect.cs (247): } // Null value carrier: CS$1$0000! TestCaseResultFixture.cs (25): caseResult = new TestResult( newTestInfo(new NUnitTestMethod(Reflect.GetNamedMethod( this.GetType(),"DummyMethod" ) ) ... // Null value carrier: GetNamedMethod(...)! NUnitTestMethod.cs (17): public NUnitTestMethod(MethodInfo method) :base(method) // Null value carrier: method.P TestMethod.cs (77): public TestMethod( MethodInfo method ) :base( method.ReflectedType.FullName, method.Name ) // Null value carrier:method

279: "testResult" may possibly be null daniel.l BD.EXCEPT.NR-1 . TestMethod.cs (268): TestResult testResult = null;

. TestMethod.cs (270): int repeatCount = this.Properties.Contains("Repeat") ?(int)this.Properties["Repeat"] : 1;. Test.cs (254): if ( properties == null ). Test.cs (257): return properties;. Test.cs (258): }. TestMethod.cs (270): int repeatCount = this.Properties.Contains("Repeat") ?(int)this.Properties["Repeat"] : 1;. TestMethod.cs (273): while (repeatCount-- > 0). TestMethod.cs (275): testResult = ShouldRunOnOwnThread ? newTestMethodThread(this).Run(NullListener.NULL, TestFilter.Empty) : RunTest();. TestMethod.cs (149): return base.ShouldRunOnOwnThread || Timeout > 0;. Test.cs (93): return RequiresThread || ApartmentState !=ApartmentState.Unknown #x26;#x26; ApartmentState != GetCurrentApartment();. Test.cs (96): }. TestMethod.cs (149): return base.ShouldRunOnOwnThread || Timeout > 0;. TestMethod.cs (150): }! TestMethod.cs (275): testResult = ShouldRunOnOwnThread ? newTestMethodThread(this).Run(NullListener.NULL, TestFilter.Empty) : RunTest();! TestThread.cs (152): public TestMethodThread(TestMethod testMethod) :base(testMethod).C TestThread.cs (34): protected TestResult threadResult; // Null value carrier:this.threadResult. TestThread.cs (49): protected TestThread(Test test) // Null value carrier:this.threadResult. TestThread.cs (51): this.test = test; // Null value carrier: this.threadResult. TestThread.cs (53): this.thread = new Thread(newThreadStart(RunTestProc)); // Null value carrier: this.threadResult. TestThread.cs (54): thread.CurrentCulture =Thread.CurrentThread.CurrentCulture; // Null value carrier: this.threadResult. TestThread.cs (55): thread.CurrentUICulture =Thread.CurrentThread.CurrentUICulture; // Null value carrier: this.threadResult. TestThread.cs (58): if ( test.ApartmentState != ApartmentState.Unknown ) // Nullvalue carrier: this.threadResult. TestThread.cs (60): } // Null value carrier: this.threadResult. TestThread.cs (155): this.testMethod = testMethod; // Null value carrier:this.threadResult. TestThread.cs (156): } // Null value carrier: this.threadResult! TestMethod.cs (275): testResult = ShouldRunOnOwnThread ? newTestMethodThread(this).Run(NullListener.NULL, TestFilter.Empty) : RunTest(); //Null value carrier: new TestMethodThread.threadResult. TestThread.cs (89): TestResult testResult = new TestResult(test); // Null valuecarrier: this.threadResult. TestThread.cs (91): this.thrownException = null; // Null value carrier:this.threadResult. TestThread.cs (92): this.listener = listener; // Null value carrier: this.threadResult. TestThread.cs (93): this.filter = filter; // Null value carrier: this.threadResult. TestThread.cs (94): this.contextDictionary =(TestMethod.ContextDictionary)CallContext.GetData("NUnit.Framework.TestContext"); //Null value carrier: this.threadResult. TestThread.cs (96): log.Debug("Starting test in separate thread"); // Null valuecarrier: this.threadResult. TestThread.cs (97): thread.Start(); // Null value carrier: this.threadResult. TestThread.cs (98): thread.Join(this.Timeout); // Null value carrier:this.threadResult

Page 51: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 51

. TestThread.cs (162): return testMethod.Timeout == 0 ?System.Threading.Timeout.Infinite : testMethod.Timeout; // Null value carrier:this.threadResult. TestThread.cs (165): } // Null value carrier: this.threadResult. TestThread.cs (98): thread.Join(this.Timeout); // Null value carrier:this.threadResult. TestThread.cs (101): if (thread.IsAlive) // Null value carrier: this.threadResult. TestThread.cs (108): if (thrownException != null) // Null value carrier:this.threadResult. TestThread.cs (115): log.Debug("Test completed normally"); // Null value carrier:this.threadResult! TestThread.cs (116): testResult = threadResult; // Null value carrier:this.threadResult! TestThread.cs (119): return testResult; // Null value carrier: testResult! TestThread.cs (120): } // Null value carrier: CS$1$0000! TestMethod.cs (275): testResult = ShouldRunOnOwnThread ? newTestMethodThread(this).Run(NullListener.NULL, TestFilter.Empty) : RunTest(); //Null value carrier: new TestMethodThread.Run(...).P TestMethod.cs (279): if (testResult.ResultState == ResultState.Failure ||testResult.ResultState == ResultState.Error || testResult.ResultSta... // Null valuecarrier: testResult

450: "this._ec.get_CurrentTest().get_FixtureType()" may possibly be null daniel.l BD.EXCEPT.NR-1 . TestMethod.cs (439): switch (key as string)

. TestMethod.cs (450): returnAssemblyHelper.GetDirectoryName(_ec.CurrentTest.FixtureType.Assembly);. TestExecutionContext.cs (352): return currentTest; }! TestMethod.cs (450): returnAssemblyHelper.GetDirectoryName(_ec.CurrentTest.FixtureType.Assembly);.C Test.cs (305): return null; } // Null value carrier: CS$1$0000.P TestMethod.cs (450): returnAssemblyHelper.GetDirectoryName(_ec.CurrentTest.FixtureType.Assembly); //Null value carrier: this._ec.get_CurrentTest().get_FixtureType()

[0/0] TestRunnerThread.cs [0/0] TestSuite.cs [0/0] TestSuiteBuilder.cs [0/0] TestThread.cs [0/0] TextCapture.cs [0/0] ThreadedTestRunner.cs [0/0] TypeHelper.cs

+ [0/11] nunit.core.interfaces.dll [0/0] AssemblyInfo.cs [0/0] CommonAssemblyInfo.cs [0/0] EventListener.cs + [0/0] Extensibility

[0/0] Addin.cs [0/0] AddinStatus.cs [0/0] ExtensionType.cs [0/0] IAddin.cs [0/0] IAddinRegistry.cs [0/0] IDataPointProvider.cs [0/0] IExtensionHost.cs [0/0] IExtensionPoint.cs [0/0] IFrameworkRegistry.cs [0/0] ISuiteBuilder.cs [0/0] ITestCaseBuilder.cs [0/0] ITestCaseData.cs [0/0] ITestCaseProvider.cs [0/0] ITestDecorator.cs [0/0] NUnitAddinAttribute.cs [0/0] ParameterSet.cs [0/0] TestFramework.cs

+ [0/0] Filters [0/0] AndFilter.cs [0/0] CategoryFilter.cs [0/0] NameFilter.cs [0/0] NotFilter.cs [0/0] OrFilter.cs [0/0] SimpleNameFilter.cs

[0/0] IAgency.cs [0/0] IService.cs [0/0] ITest.cs [0/0] ITestFilter.cs [0/0] OSPlatform.cs [0/0] PropertyNames.cs [0/0] ResultState.cs [0/0] RunState.cs + [0/9] RuntimeFramework.cs

Tasks: 9358: Registry key not closed: subKey daniel.l BD.RES.LEAKS-1

Page 52: Nunit  C# source code  defects report by Parasoft dotTEST

Page 52 dotTEST Report [09/21/11 14:13:53]

. RuntimeFramework.cs (350): if (Environment.OSVersion.Platform ==PlatformID.Win32NT). RuntimeFramework.cs (353): RegistryKey key =Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono");. RuntimeFramework.cs (354): if (key == null). RuntimeFramework.cs (356): string version in key.GetSubKeyNames().C RuntimeFramework.cs (358): RegistryKey subKey =key.OpenSubKey(version); // Allocated resource variable: key.OpenSubKey(...). RuntimeFramework.cs (359): string monoPrefix =subKey.GetValue("SdkInstallRoot") as string; // Allocated resource variable:subKey. RuntimeFramework.cs (361): AppendMonoFramework(frameworks, monoPrefix,version); // Allocated resource variable: subKey. RuntimeFramework.cs (362): } // Allocated resource variable: subKey. RuntimeFramework.cs (356): string version in // Allocated resource variable:subKey.P RuntimeFramework.cs (358): RegistryKey subKey =key.OpenSubKey(version); // Allocated resource variable: subKey

366: Registry key not closed: key daniel.l BD.RES.LEAKS-1 . RuntimeFramework.cs (350): if (Environment.OSVersion.Platform ==

PlatformID.Win32NT).C RuntimeFramework.cs (353): RegistryKey key =Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono"); // Allocatedresource variable: LocalMachine.OpenSubKey(...). RuntimeFramework.cs (354): if (key == null) // Allocated resource variable: key!E RuntimeFramework.cs (356): key.GetSubKeyNames() //RegistryKey.GetSubKeyNames() throws: IOException // Allocated resourcevariable: key.P RuntimeFramework.cs (366): } // Allocated resource variable: key

366: Registry key not closed: subKey daniel.l BD.RES.LEAKS-1 . RuntimeFramework.cs (350): if (Environment.OSVersion.Platform ==

PlatformID.Win32NT). RuntimeFramework.cs (353): RegistryKey key =Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono");. RuntimeFramework.cs (354): if (key == null). RuntimeFramework.cs (356): string version in key.GetSubKeyNames().C RuntimeFramework.cs (358): RegistryKey subKey =key.OpenSubKey(version); // Allocated resource variable: key.OpenSubKey(...)!E RuntimeFramework.cs (359): string monoPrefix =subKey.GetValue("SdkInstallRoot") as string; // RegistryKey.GetValue() throws:SecurityException // Allocated resource variable: subKey.P RuntimeFramework.cs (366): } // Allocated resource variable: subKey

383: Registry key not closed: key daniel.l BD.RES.LEAKS-1 . RuntimeFramework.cs (372): string monoPrefix = null;

. RuntimeFramework.cs (373): string version = null;

. RuntimeFramework.cs (375): if (Environment.OSVersion.Platform ==PlatformID.Win32NT).C RuntimeFramework.cs (377): RegistryKey key =Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono"); // Allocatedresource variable: LocalMachine.OpenSubKey(...). RuntimeFramework.cs (378): if (key != null) // Allocated resource variable: key. RuntimeFramework.cs (380): version = key.GetValue("DefaultCLR") as string; //Allocated resource variable: key. RuntimeFramework.cs (381): if (version != null #x26;#x26; version != "") //Allocated resource variable: key.P RuntimeFramework.cs (383): key = key.OpenSubKey(version); // Allocatedresource variable: key

396: Registry key not closed: key daniel.l BD.RES.LEAKS-1 . RuntimeFramework.cs (372): string monoPrefix = null;

. RuntimeFramework.cs (373): string version = null;

. RuntimeFramework.cs (375): if (Environment.OSVersion.Platform ==PlatformID.Win32NT).C RuntimeFramework.cs (377): RegistryKey key =Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono"); // Allocatedresource variable: LocalMachine.OpenSubKey(...). RuntimeFramework.cs (378): if (key != null) // Allocated resource variable: key!E RuntimeFramework.cs (380): version = key.GetValue("DefaultCLR") asstring; // RegistryKey.GetValue() throws: SecurityException // Allocated resourcevariable: key.P RuntimeFramework.cs (396): } // Allocated resource variable: key

396: Registry key not closed: key daniel.l BD.RES.LEAKS-1 . RuntimeFramework.cs (372): string monoPrefix = null;

. RuntimeFramework.cs (373): string version = null;

. RuntimeFramework.cs (375): if (Environment.OSVersion.Platform ==PlatformID.Win32NT). RuntimeFramework.cs (377): RegistryKey key =Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono");. RuntimeFramework.cs (378): if (key != null)

Page 53: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 53

. RuntimeFramework.cs (380): version = key.GetValue("DefaultCLR") as string;

. RuntimeFramework.cs (381): if (version != null #x26;#x26; version != "")

.C RuntimeFramework.cs (383): key = key.OpenSubKey(version); // Allocatedresource variable: key.OpenSubKey(...). RuntimeFramework.cs (384): if (key != null) // Allocated resource variable: key!E RuntimeFramework.cs (385): monoPrefix = key.GetValue("SdkInstallRoot") asstring; // RegistryKey.GetValue() throws: SecurityException // Allocated resourcevariable: key.P RuntimeFramework.cs (396): } // Allocated resource variable: key

440: Registry key not closed: key2 daniel.l BD.RES.LEAKS-1 . RuntimeFramework.cs (431): if (Environment.OSVersion.Platform ==

PlatformID.Win32NT). RuntimeFramework.cs (433): RegistryKey key =Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\.NETFramework\policy");. RuntimeFramework.cs (434): if (key != null). RuntimeFramework.cs (436): string name in key.GetSubKeyNames(). RuntimeFramework.cs (438): if (name.StartsWith("v")). RuntimeFramework.cs (444): }. RuntimeFramework.cs (436): string name in. RuntimeFramework.cs (438): if (name.StartsWith("v")).C RuntimeFramework.cs (440): RegistryKey key2 = key.OpenSubKey(name); //Allocated resource variable: key.OpenSubKey(...). RuntimeFramework.cs (441): in key2.GetValueNames() // Allocated resourcevariable: key2. RuntimeFramework.cs (444): } // Allocated resource variable: key2. RuntimeFramework.cs (436): string name in // Allocated resource variable: key2. RuntimeFramework.cs (438): if (name.StartsWith("v")) // Allocated resourcevariable: key2.P RuntimeFramework.cs (440): RegistryKey key2 = key.OpenSubKey(name); //Allocated resource variable: key2

447: Registry key not closed: key daniel.l BD.RES.LEAKS-1 . RuntimeFramework.cs (431): if (Environment.OSVersion.Platform ==

PlatformID.Win32NT).C RuntimeFramework.cs (433): RegistryKey key =Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\.NETFramework\policy"); // Allocated resource variable: LocalMachine.OpenSubKey(...). RuntimeFramework.cs (434): if (key != null) // Allocated resource variable: key!E RuntimeFramework.cs (436): key.GetSubKeyNames() //RegistryKey.GetSubKeyNames() throws: IOException // Allocated resourcevariable: key.P RuntimeFramework.cs (447): } // Allocated resource variable: key

447: Registry key not closed: key2 daniel.l BD.RES.LEAKS-1 . RuntimeFramework.cs (431): if (Environment.OSVersion.Platform ==

PlatformID.Win32NT). RuntimeFramework.cs (433): RegistryKey key =Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\.NETFramework\policy");. RuntimeFramework.cs (434): if (key != null). RuntimeFramework.cs (436): string name in key.GetSubKeyNames(). RuntimeFramework.cs (438): if (name.StartsWith("v")). RuntimeFramework.cs (444): }. RuntimeFramework.cs (436): string name in. RuntimeFramework.cs (438): if (name.StartsWith("v")).C RuntimeFramework.cs (440): RegistryKey key2 = key.OpenSubKey(name); //Allocated resource variable: key.OpenSubKey(...)!E RuntimeFramework.cs (441): key2.GetValueNames() //RegistryKey.GetValueNames() throws: SecurityException // Allocated resourcevariable: key2.P RuntimeFramework.cs (447): } // Allocated resource variable: key2

[0/0] Test.cs [0/0] TestAgent.cs [0/0] TestAssemblyInfo.cs [0/0] TestFilter.cs [0/0] TestID.cs + [0/2] TestInfo.cs

Tasks: 279: "test" may possibly be null daniel.l BD.EXCEPT.NR-1 ! TestSuiteTreeViewFixture.cs (153): TestSuite fixture =

(TestSuite)findTest( "MockTestFixture", suite );.C TestSuiteTreeViewFixture.cs (165): Test result = null; // Null value carrier:result. TestSuiteTreeViewFixture.cs (166): if (test.TestName.Name == name) // Nullvalue carrier: result. TestSuiteTreeViewFixture.cs (168): if (test.Tests != null) // Null value carrier:result! TestSuiteTreeViewFixture.cs (178): return result; // Null value carrier: result

Page 54: Nunit  C# source code  defects report by Parasoft dotTEST

Page 54 dotTEST Report [09/21/11 14:13:53]

! TestSuiteTreeViewFixture.cs (179): } // Null value carrier: CS$1$0000! TestSuiteTreeViewFixture.cs (153): TestSuite fixture =(TestSuite)findTest( "MockTestFixture", suite ); // Null value carrier:this.findTest(...)! TestSuiteTreeViewFixture.cs (154): TestResult result = new TestResult( newTestInfo( fixture ) ); // Null value carrier: fixture. TestInfo.cs (62): private ArrayList categories = new ArrayList(); // Null valuecarrier: test. TestInfo.cs (68): private ListDictionary properties = new ListDictionary(); // Nullvalue carrier: test. TestInfo.cs (77): public TestInfo( ITest test ) // Null value carrier: test.P TestInfo.cs (79): this.testName = (TestName)test.TestName.Clone(); // Nullvalue carrier: test

245: "this.get_Tests()" may possibly be null daniel.l BD.EXCEPT.NR-1 . TestInfo.cs (236): if (filter.IsEmpty)

. TestInfo.cs (239): if (!isSuite)

. TestInfo.cs (242): int count = 0;

. TestInfo.cs (243): if (filter.Pass(this))! TestInfo.cs (245): Tests.C TestInfo.cs (201): return null; } // Null value carrier: CS$1$0000.P TestInfo.cs (245): Tests // Null value carrier: this.get_Tests()

[0/0] TestName.cs [0/0] TestNode.cs [0/0] TestOutput.cs [0/0] TestPackage.cs [0/0] TestResult.cs [0/0] TestRunner.cs

+ [0/24] nunit.core.tests [0/0] AllTests.cs [0/0] AssemblyHelperTests.cs + [0/3] AssemblyReaderTests.cs

Tasks: 320: Stream not closed: this.fs, this.rdr.m_stream daniel.l BD.RES.LEAKS-1 EP AssemblyReaderTests.cs (20): rdr = new

AssemblyReader( this.GetType().Assembly ); // AssemblyReader..ctor() throws:IOException // Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (22): UInt16 dos_magic = 0xffff;. AssemblyReader.cs (23): UInt32 pe_signature = 0xffffffff;. AssemblyReader.cs (29): private uint peHeader = 0;. AssemblyReader.cs (30): private uint fileHeader = 0;. AssemblyReader.cs (31): private uint optionalHeader = 0;. AssemblyReader.cs (32): private uint dataDirectory = 0;. AssemblyReader.cs (33): private uint dataSections = 0;. AssemblyReader.cs (50): public AssemblyReader( Assembly assembly ). AssemblyReader.cs (52): this.assemblyPath =AssemblyHelper.GetAssemblyPath( assembly );. AssemblyHelper.cs (23): string path = assembly.CodeBase;. AssemblyHelper.cs (24): Uri uri = new Uri(path);. AssemblyHelper.cs (27): if (!uri.IsFile). AssemblyHelper.cs (28): return assembly.Location;. AssemblyHelper.cs (34): }. AssemblyReader.cs (52): this.assemblyPath =AssemblyHelper.GetAssemblyPath( assembly );!E AssemblyReader.cs (53): CalcHeaderOffsets(); //AssemblyReader.CalcHeaderOffsets() throws: IOException.C AssemblyReader.cs (58): this.fs = new FileStream( assemblyPath,FileMode.Open, FileAccess.Read ); // Allocated resource variable: newFileStream! AssemblyReader.cs (59): this.rdr = new BinaryReader( fs ); // Allocatedresource variable: this.fs!E AssemblyReader.cs (60): dos_magic = rdr.ReadUInt16(); //BinaryReader.ReadUInt16() throws: IOException // Allocated resource variable:this.fs, this.rdr.m_stream

36: Stream not closed: this.fs, this.rdr.m_stream daniel.l BD.RES.LEAKS-1 . AssemblyReaderTests.cs (35): string path =

AssemblyHelper.GetAssemblyPath(System.Reflection.Assembly.GetAssembly(GetType()));. AssemblyHelper.cs (23): string path = assembly.CodeBase;. AssemblyHelper.cs (24): Uri uri = new Uri(path);. AssemblyHelper.cs (27): if (!uri.IsFile). AssemblyHelper.cs (28): return assembly.Location;. AssemblyHelper.cs (34): }. AssemblyReaderTests.cs (35): string path =AssemblyHelper.GetAssemblyPath(System.Reflection.Assembly.GetAssembly(GetType()));EP AssemblyReaderTests.cs (36): Assert.AreEqual(path, newAssemblyReader(path).AssemblyPath); // AssemblyReader..ctor() throws:IOException // Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (22): UInt16 dos_magic = 0xffff;. AssemblyReader.cs (23): UInt32 pe_signature = 0xffffffff;

Page 55: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 55

. AssemblyReader.cs (29): private uint peHeader = 0;

. AssemblyReader.cs (30): private uint fileHeader = 0;

. AssemblyReader.cs (31): private uint optionalHeader = 0;

. AssemblyReader.cs (32): private uint dataDirectory = 0;

. AssemblyReader.cs (33): private uint dataSections = 0;

. AssemblyReader.cs (44): public AssemblyReader( string assemblyPath )

. AssemblyReader.cs (46): this.assemblyPath = assemblyPath;!E AssemblyReader.cs (47): CalcHeaderOffsets(); //AssemblyReader.CalcHeaderOffsets() throws: IOException.C AssemblyReader.cs (58): this.fs = new FileStream( assemblyPath,FileMode.Open, FileAccess.Read ); // Allocated resource variable: newFileStream! AssemblyReader.cs (59): this.rdr = new BinaryReader( fs ); // Allocatedresource variable: this.fs!E AssemblyReader.cs (60): dos_magic = rdr.ReadUInt16(); //BinaryReader.ReadUInt16() throws: IOException // Allocated resource variable:this.fs, this.rdr.m_stream

56: Stream not closed: this.fs, this.rdr.m_stream daniel.l BD.RES.LEAKS-1 . AssemblyReaderTests.cs (55): string configFile =

AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;EP AssemblyReaderTests.cs (56): Assert.IsFalse( newAssemblyReader( configFile ).IsValidPeFile ); // AssemblyReader..ctor() throws:IOException // Allocated resource variable: this.fs, this.rdr.m_stream. AssemblyReader.cs (22): UInt16 dos_magic = 0xffff;. AssemblyReader.cs (23): UInt32 pe_signature = 0xffffffff;. AssemblyReader.cs (29): private uint peHeader = 0;. AssemblyReader.cs (30): private uint fileHeader = 0;. AssemblyReader.cs (31): private uint optionalHeader = 0;. AssemblyReader.cs (32): private uint dataDirectory = 0;. AssemblyReader.cs (33): private uint dataSections = 0;. AssemblyReader.cs (44): public AssemblyReader( string assemblyPath ). AssemblyReader.cs (46): this.assemblyPath = assemblyPath;!E AssemblyReader.cs (47): CalcHeaderOffsets(); //AssemblyReader.CalcHeaderOffsets() throws: IOException.C AssemblyReader.cs (58): this.fs = new FileStream( assemblyPath,FileMode.Open, FileAccess.Read ); // Allocated resource variable: newFileStream! AssemblyReader.cs (59): this.rdr = new BinaryReader( fs ); // Allocatedresource variable: this.fs!E AssemblyReader.cs (60): dos_magic = rdr.ReadUInt16(); //BinaryReader.ReadUInt16() throws: IOException // Allocated resource variable:this.fs, this.rdr.m_stream

[0/0] AssemblyResolverTests.cs [0/0] AssemblyTests.cs + [0/1] AssemblyVersionFixture.cs

Tasks: 134: "assembly" may possibly be null daniel.l BD.EXCEPT.NR-1 . AssemblyVersionFixture.cs (24): Version version = new Version("1.0.0.2002");

. AssemblyVersionFixture.cs (25): string nameString = "TestAssembly";

. AssemblyVersionFixture.cs (27): AssemblyName assemblyName = newAssemblyName();. AssemblyVersionFixture.cs (28): assemblyName.Name = nameString;. AssemblyVersionFixture.cs (29): assemblyName.Version = version;. AssemblyVersionFixture.cs (30): MakeDynamicAssembly(assemblyName);. AssemblyVersionFixture.cs (54):Thread.GetDomain().DefineDynamicAssembly(myAssemblyName,AssemblyBuilderAccess.RunAndSave);. AssemblyVersionFixture.cs (55): }! AssemblyVersionFixture.cs (32): Assembly assembly =FindAssemblyByName(nameString);. AssemblyVersionFixture.cs (41): Assembly[] myAssemblies =Thread.GetDomain().GetAssemblies();.C AssemblyVersionFixture.cs (43): Assembly assembly = null; // Null valuecarrier: assembly. AssemblyVersionFixture.cs (44): int i = 0; i < myAssemblies.Length #x26;#x26;assembly == null // Null value carrier: assembly! AssemblyVersionFixture.cs (49): return assembly; // Null value carrier: assembly! AssemblyVersionFixture.cs (50): } // Null value carrier: CS$1$0000! AssemblyVersionFixture.cs (32): Assembly assembly =FindAssemblyByName(nameString); // Null value carrier:this.FindAssemblyByName(...).P AssemblyVersionFixture.cs (34): System.Version foundVersion =assembly.GetName().Version; // Null value carrier: assembly

[0/0] AssertPassFixture.cs [0/0] AttributeDescriptionFixture.cs + [0/2] AttributeInheritance.cs

Tasks: 2

Page 56: Nunit  C# source code  defects report by Parasoft dotTEST

Page 56 dotTEST Report [09/21/11 14:13:53]

42: "test" may possibly be null daniel.l BD.EXCEPT.NR-1 . AttributeInheritance.cs (40): Test fixture =

builder.BuildFrom(typeof(TestData.AttributeInheritanceFixture));. NUnitTestFixtureBuilder.cs (56): Attribute[] attrs =GetTestFixtureAttributes(type);. NUnitTestFixtureBuilder.cs (264): Attribute[] attrs = Reflect.GetAttributes(type,NUnitFramework.TestFixtureAttribute, true);. NUnitTestFixtureBuilder.cs (267): if (attrs.Length <= 1). NUnitTestFixtureBuilder.cs (268): return attrs;. NUnitTestFixtureBuilder.cs (302): }. NUnitTestFixtureBuilder.cs (56): Attribute[] attrs =GetTestFixtureAttributes(type);. NUnitTestFixtureBuilder.cs (59): if (type.IsGenericType). NUnitTestFixtureBuilder.cs (60): return BuildMultipleFixtures(type, attrs);. NUnitTestFixtureBuilder.cs (83): TestSuite suite = newParameterizedFixtureSuite(type);. NUnitTestFixtureBuilder.cs (85): if (attrs.Length > 0). NUnitTestFixtureBuilder.cs (92): suite.RunState = RunState.NotRunnable;. NUnitTestFixtureBuilder.cs (93): suite.IgnoreReason = "Generic fixture has notype arguments provided";. NUnitTestFixtureBuilder.cs (96): return suite;. NUnitTestFixtureBuilder.cs (97): }. NUnitTestFixtureBuilder.cs (60): return BuildMultipleFixtures(type, attrs);. NUnitTestFixtureBuilder.cs (75): }. AttributeInheritance.cs (40): Test fixture =builder.BuildFrom(typeof(TestData.AttributeInheritanceFixture));! AttributeInheritance.cs (41): Test test =TestUtilities.TestFinder.Find("ShouldBeExplicit", fixture, false);. TestFinder.cs (20): if (test.Tests != null). TestSuite.cs (148): return tests; }. TestFinder.cs (20): if (test.Tests != null).C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! AttributeInheritance.cs (41): Test test =TestUtilities.TestFinder.Find("ShouldBeExplicit", fixture, false); // Null valuecarrier: Find(...).P AttributeInheritance.cs (42): Assert.That(test.RunState,Is.EqualTo(RunState.Explicit)); // Null value carrier: test

51: "test" may possibly be null daniel.l BD.EXCEPT.NR-1 . AttributeInheritance.cs (49): Test fixture =

builder.BuildFrom(typeof(TestData.AttributeInheritanceFixture));. NUnitTestFixtureBuilder.cs (56): Attribute[] attrs =GetTestFixtureAttributes(type);. NUnitTestFixtureBuilder.cs (264): Attribute[] attrs = Reflect.GetAttributes(type,NUnitFramework.TestFixtureAttribute, true);. NUnitTestFixtureBuilder.cs (267): if (attrs.Length <= 1). NUnitTestFixtureBuilder.cs (268): return attrs;. NUnitTestFixtureBuilder.cs (302): }. NUnitTestFixtureBuilder.cs (56): Attribute[] attrs =GetTestFixtureAttributes(type);. NUnitTestFixtureBuilder.cs (59): if (type.IsGenericType). NUnitTestFixtureBuilder.cs (60): return BuildMultipleFixtures(type, attrs);. NUnitTestFixtureBuilder.cs (83): TestSuite suite = newParameterizedFixtureSuite(type);. NUnitTestFixtureBuilder.cs (85): if (attrs.Length > 0). NUnitTestFixtureBuilder.cs (92): suite.RunState = RunState.NotRunnable;. NUnitTestFixtureBuilder.cs (93): suite.IgnoreReason = "Generic fixture has notype arguments provided";. NUnitTestFixtureBuilder.cs (96): return suite;. NUnitTestFixtureBuilder.cs (97): }. NUnitTestFixtureBuilder.cs (60): return BuildMultipleFixtures(type, attrs);. NUnitTestFixtureBuilder.cs (75): }. AttributeInheritance.cs (49): Test fixture =builder.BuildFrom(typeof(TestData.AttributeInheritanceFixture));! AttributeInheritance.cs (50): Test test =TestUtilities.TestFinder.Find("ShouldBeIgnored", fixture, false);. TestFinder.cs (20): if (test.Tests != null). TestSuite.cs (148): return tests; }. TestFinder.cs (20): if (test.Tests != null).C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! AttributeInheritance.cs (50): Test test =TestUtilities.TestFinder.Find("ShouldBeIgnored", fixture, false); // Null valuecarrier: Find(...).P AttributeInheritance.cs (51): Assert.That(test.RunState,Is.EqualTo(RunState.Ignored)); // Null value carrier: test

[0/0] BasicRunnerTests.cs [0/0] CallContextTests.cs [0/0] CategoryAttributeTests.cs

Page 57: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 57

[0/0] CombinatorialTests.cs [0/0] CommonAssemblyInfo.cs [0/0] CoreExtensionsTests.cs [0/0] CultureSettingAndDetectionTests.cs [0/0] DatapointTests.cs [0/0] DirectoryChangeTests.cs [0/0] DirectorySwapperTests.cs + [0/1] EventQueueTests.cs

Tasks: 153: "e" may possibly be null daniel.l BD.EXCEPT.NR-1 . EventQueueTests.cs (50): int index = 0; index < events.Length

! EventQueueTests.cs (52): Event e = q.Dequeue(false);. EventQueue.cs (320): lock( this.syncRoot ). EventQueue.cs (321): {. EventQueue.cs (322): while ( this.queue.Count == 0 ). EventQueue.cs (324): if ( blockWhenEmpty #x26;#x26; !this.stopped ).C EventQueue.cs (330): return null; // Null value carrier: CS$1$0000! EventQueue.cs (336): } // Null value carrier: CS$1$0000! EventQueueTests.cs (52): Event e = q.Dequeue(false); // Null value carrier:q.Dequeue(...).P EventQueueTests.cs (53): Assert.AreEqual(events[index].GetType(),e.GetType(), string.Format("Event {0}", index)); // Null value carrier: e

[0/0] EventTestFixture.cs [0/0] ExpectExceptionTest.cs [0/0] FailFixture.cs + [0/2] FixtureSetUpTearDownTest.cs

Tasks: 2350: "get_CurrentPrincipal().get_Identity()" may possibly be null daniel.l BD.EXCEPT.NR-1 ! FixtureSetUpTearDownTest.cs (350): Assert.AreEqual("foo",

Thread.CurrentPrincipal.Identity.Name);.C CallContextTests.cs (119): return null; // Null value carrier: CS$1$0000! CallContextTests.cs (120): } // Null value carrier: CS$1$0000.P FixtureSetUpTearDownTest.cs (350): Assert.AreEqual("foo",Thread.CurrentPrincipal.Identity.Name); // Null value carrier:get_CurrentPrincipal().get_Identity()

358: "get_CurrentPrincipal().get_Identity()" may possibly be null daniel.l BD.EXCEPT.NR-1 ! FixtureSetUpTearDownTest.cs (358): Assert.AreEqual("foo",

Thread.CurrentPrincipal.Identity.Name);.C CallContextTests.cs (119): return null; // Null value carrier: CS$1$0000! CallContextTests.cs (120): } // Null value carrier: CS$1$0000.P FixtureSetUpTearDownTest.cs (358): Assert.AreEqual("foo",Thread.CurrentPrincipal.Identity.Name); // Null value carrier:get_CurrentPrincipal().get_Identity()

+ [0/1] Generic [0/0] DeduceTypeArgsFromArgs.cs + [0/1] SimpleGenericFixture.cs

Tasks: 124: Leakage of reflection data ("GetTypeFromHandle(...)") via console daniel.l BD.SECURITY.SENS-1 CP SimpleGenericFixture.cs (24): Console.WriteLine("TList is {0}",

typeof(TList));

[0/0] SimpleGenericMethods.cs [0/0] TypeParameterUsedWithTestMethod.cs

[0/0] IgnoreFixture.cs [0/0] LegacySuiteTests.cs [0/0] MaxTimeTests.cs [0/0] MockTestRunner.cs + [0/6] NameFilterTest.cs

Tasks: 648: "mock1" may possibly be null daniel.l BD.EXCEPT.NR-1 ! NameFilterTest.cs (45): Test mock1 = TestFinder.Find("MockTest1", testSuite,

true);. TestFinder.cs (20): if (test.Tests != null). TestSuite.cs (148): return tests; }. TestFinder.cs (20): if (test.Tests != null).C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! NameFilterTest.cs (45): Test mock1 = TestFinder.Find("MockTest1", testSuite,true); // Null value carrier: Find(...). NameFilterTest.cs (46): NameFilter filter = new NameFilter(); // Null valuecarrier: mock1. NameFilterTest.cs (47): filter.Add(mock3.TestName); // Null value carrier: mock1.P NameFilterTest.cs (48): filter.Add(mock1.TestName); // Null value carrier:mock1

58: "mockTest" may possibly be null daniel.l BD.EXCEPT.NR-1

Page 58: Nunit  C# source code  defects report by Parasoft dotTEST

Page 58 dotTEST Report [09/21/11 14:13:53]

! NameFilterTest.cs (57): NUnit.Core.TestSuite mockTest =(NUnit.Core.TestSuite) TestFinder.Find("MockTestFixture", testSuite, true);. TestFinder.cs (20): if (test.Tests != null). TestSuite.cs (148): return tests; }. TestFinder.cs (20): if (test.Tests != null).C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! NameFilterTest.cs (57): NUnit.Core.TestSuite mockTest =(NUnit.Core.TestSuite) TestFinder.Find("MockTestFixture", testSuite, true); // Nullvalue carrier: Find(...).P NameFilterTest.cs (58): NameFilter filter = newNameFilter(mockTest.TestName); // Null value carrier: mockTest

68: "mock1" may possibly be null daniel.l BD.EXCEPT.NR-1 ! NameFilterTest.cs (67): Test mock1 = TestFinder.Find("MockTest1", testSuite,

true);. TestFinder.cs (20): if (test.Tests != null). TestSuite.cs (148): return tests; }. TestFinder.cs (20): if (test.Tests != null).C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! NameFilterTest.cs (67): Test mock1 = TestFinder.Find("MockTest1", testSuite,true); // Null value carrier: Find(...).P NameFilterTest.cs (68): NameFilter filter = newNameFilter(mock1.TestName); // Null value carrier: mock1

95: "explicitTest" may possibly be null daniel.l BD.EXCEPT.NR-1 ! NameFilterTest.cs (94): Test explicitTest = TestFinder.Find("ExplicitlyRunTest",

testSuite, true);. TestFinder.cs (20): if (test.Tests != null). TestSuite.cs (148): return tests; }. TestFinder.cs (20): if (test.Tests != null).C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! NameFilterTest.cs (94): Test explicitTest = TestFinder.Find("ExplicitlyRunTest",testSuite, true); // Null value carrier: Find(...).P NameFilterTest.cs (95): NameFilter filter = newNameFilter( explicitTest.TestName ); // Null value carrier: explicitTest

104: "mockTest" may possibly be null daniel.l BD.EXCEPT.NR-1 ! NameFilterTest.cs (103): NUnit.Core.TestSuite mockTest =

(NUnit.Core.TestSuite) TestFinder.Find("MockTestFixture", testSuite, true);. TestFinder.cs (20): if (test.Tests != null). TestSuite.cs (148): return tests; }. TestFinder.cs (20): if (test.Tests != null).C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! NameFilterTest.cs (103): NUnit.Core.TestSuite mockTest =(NUnit.Core.TestSuite) TestFinder.Find("MockTestFixture", testSuite, true); // Nullvalue carrier: Find(...).P NameFilterTest.cs (104): mockTest.RunState = RunState.Explicit; // Null valuecarrier: mockTest

114: "mockTest" may possibly be null daniel.l BD.EXCEPT.NR-1 ! NameFilterTest.cs (113): NUnit.Core.TestSuite mockTest =

(NUnit.Core.TestSuite) TestFinder.Find("MockTestFixture", testSuite, true);. TestFinder.cs (20): if (test.Tests != null). TestSuite.cs (148): return tests; }. TestFinder.cs (20): if (test.Tests != null).C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! NameFilterTest.cs (113): NUnit.Core.TestSuite mockTest =(NUnit.Core.TestSuite) TestFinder.Find("MockTestFixture", testSuite, true); // Nullvalue carrier: Find(...).P NameFilterTest.cs (114): mockTest.RunState = RunState.Explicit; // Null valuecarrier: mockTest

[0/0] NamespaceAssemblyTests.cs [0/0] PairwiseTests.cs [0/0] ParameterizedTestFixtureTests.cs [0/0] PlatformDetectionTests.cs [0/0] PropertyAttributeTests.cs [0/0] ReflectTests.cs [0/0] RemoteRunnerTests.cs [0/0] RepeatedTestFixture.cs [0/0] RuntimeFrameworkTests.cs [0/0] SerializationBug.cs [0/0] SetCultureAttributeTests.cs [0/0] SetUpFixtureTests.cs [0/0] SetUpTest.cs + [0/2] SimpleNameFilterTests.cs

Tasks: 2

Page 59: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 59

104: "mockTest" may possibly be null daniel.l BD.EXCEPT.NR-1 ! SimpleNameFilterTests.cs (103): NUnit.Core.TestSuite mockTest =

(NUnit.Core.TestSuite)TestFinder.Find("MockTestFixture", testSuite, true);. TestFinder.cs (20): if (test.Tests != null). TestSuite.cs (148): return tests; }. TestFinder.cs (20): if (test.Tests != null).C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! SimpleNameFilterTests.cs (103): NUnit.Core.TestSuite mockTest =(NUnit.Core.TestSuite)TestFinder.Find("MockTestFixture", testSuite, true); // Nullvalue carrier: Find(...).P SimpleNameFilterTests.cs (104): mockTest.RunState = RunState.Explicit; //Null value carrier: mockTest

114: "mockTest" may possibly be null daniel.l BD.EXCEPT.NR-1 ! SimpleNameFilterTests.cs (113): NUnit.Core.TestSuite mockTest =

(NUnit.Core.TestSuite)TestFinder.Find("MockTestFixture", testSuite, true);. TestFinder.cs (20): if (test.Tests != null). TestSuite.cs (148): return tests; }. TestFinder.cs (20): if (test.Tests != null).C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! SimpleNameFilterTests.cs (113): NUnit.Core.TestSuite mockTest =(NUnit.Core.TestSuite)TestFinder.Find("MockTestFixture", testSuite, true); // Nullvalue carrier: Find(...).P SimpleNameFilterTests.cs (114): mockTest.RunState = RunState.Explicit; //Null value carrier: mockTest

[0/0] SimpleTestRunnerTests.cs [0/0] StackOverflowTestFixture.cs + [0/1] SuiteBuilderTests.cs

Tasks: 1126: Stream not closed: sw.stream daniel.l BD.RES.LEAKS-1 . SuiteBuilderTests.cs (116): FileInfo file = new FileInfo( tempFile );

.C SuiteBuilderTests.cs (118): StreamWriter sw = file.AppendText(); // Allocatedresource variable: file.AppendText().stream!E SuiteBuilderTests.cs (120): sw.WriteLine("This is a new entry to add to thefile"); // TextWriter.WriteLine() throws: IOException // Allocated resource variable:sw.stream.P SuiteBuilderTests.cs (126): } // Allocated resource variable: sw.stream

[0/0] SuiteBuilderTests_Multiple.cs [0/0] TestAssemblyBuilderTests.cs [0/0] TestCaseAttributeTests.cs [0/0] TestCaseResultFixture.cs [0/0] TestCaseSourceTests.cs [0/0] TestCaseTest.cs [0/0] TestConsole.cs [0/0] TestContextTests.cs [0/0] TestDelegateFixture.cs [0/0] TestExecutionContextTests.cs [0/0] TestFixtureBuilderTests.cs [0/0] TestFixtureExtension.cs [0/0] TestFixtureTests.cs [0/0] TestFrameworkTests.cs [0/0] TestIDTests.cs [0/0] TestInfoTests.cs + [0/3] TestMethodSignatureTests.cs

Tasks: 3128: "test" may possibly be null daniel.l BD.EXCEPT.NR-1 ! TestMethodSignatureTests.cs (127): Test test =

TestFinder.Find( "TestMethodWithMultipleTestCases", fixture, false );. TestFinder.cs (20): if (test.Tests != null). Test.cs (297): return null; }. TestFinder.cs (20): if (test.Tests != null).C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! TestMethodSignatureTests.cs (127): Test test =TestFinder.Find( "TestMethodWithMultipleTestCases", fixture, false ); // Null valuecarrier: Find(...).P TestMethodSignatureTests.cs (128): Assert.That( test.RunState,Is.EqualTo( RunState.Runnable ) ); // Null value carrier: test

141: "suite" may possibly be null daniel.l BD.EXCEPT.NR-1 . TestMethodSignatureTests.cs (138): string name =

"TestMethodWithMultipleTestCases";. TestMethodSignatureTests.cs (139): string fullName = typeof(TestMethodSignatureFixture).FullName + "." + name;! TestMethodSignatureTests.cs (140): TestSuite suite =(TestSuite)TestFinder.Find(name, fixture, false);

Page 60: Nunit  C# source code  defects report by Parasoft dotTEST

Page 60 dotTEST Report [09/21/11 14:13:53]

. TestFinder.cs (20): if (test.Tests != null)

. Test.cs (297): return null; }

. TestFinder.cs (20): if (test.Tests != null)

.C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! TestMethodSignatureTests.cs (140): TestSuite suite =(TestSuite)TestFinder.Find(name, fixture, false); // Null value carrier: Find(...).P TestMethodSignatureTests.cs (141): Assert.That(suite.TestCount,Is.EqualTo(3)); // Null value carrier: suite

174: "suite" may possibly be null daniel.l BD.EXCEPT.NR-1 . TestMethodSignatureTests.cs (171): string name =

"TestMethodWithParamsArgument";. TestMethodSignatureTests.cs (172): string fullName =typeof(TestMethodSignatureFixture).FullName + "." + name;! TestMethodSignatureTests.cs (173): TestSuite suite =(TestSuite)TestFinder.Find(name, fixture, false);. TestFinder.cs (20): if (test.Tests != null). Test.cs (297): return null; }. TestFinder.cs (20): if (test.Tests != null).C TestFinder.cs (35): return null; // Null value carrier: CS$1$0000! TestFinder.cs (36): } // Null value carrier: CS$1$0000! TestMethodSignatureTests.cs (173): TestSuite suite =(TestSuite)TestFinder.Find(name, fixture, false); // Null value carrier: Find(...).P TestMethodSignatureTests.cs (174): Test test = suite.Tests[0] as Test; // Nullvalue carrier: suite

[0/0] TestNameTests.cs [0/0] TestNodeTests.cs [0/0] TestRunnerThreadTests.cs + [0/1] TestSuiteTest.cs

Tasks: 1255: "listener.lastResult" may possibly be null daniel.l BD.EXCEPT.NR-1 . TestSuiteTest.cs (251): TestSuite fixture =

TestBuilder.MakeFixture( typeof( NUnit.Tests.Assemblies.MockTestFixture ) );. TestBuilder.cs (26): return (TestSuite)suiteBuilder.BuildFrom( type );. TestBuilder.cs (27): }. TestSuiteTest.cs (251): TestSuite fixture =TestBuilder.MakeFixture( typeof( NUnit.Tests.Assemblies.MockTestFixture ) );. TestSuiteTest.cs (252): Test test = (Test) fixture.Tests[0];. TestSuite.cs (148): return tests; }. TestSuiteTest.cs (252): Test test = (Test) fixture.Tests[0];! TestSuiteTest.cs (253): RecordingListener listener = new RecordingListener();. TestSuiteTest.cs (287): public ArrayList testStarted = new ArrayList();. TestSuiteTest.cs (288): public ArrayList testFinished = new ArrayList();. TestSuiteTest.cs (289): public ArrayList suiteStarted = new ArrayList();. TestSuiteTest.cs (290): public ArrayList suiteFinished = new ArrayList();.C TestSuiteTest.cs (292): public TestResult lastResult = null; // Null value carrier:this.lastResult! TestSuiteTest.cs (253): RecordingListener listener = new RecordingListener(); //Null value carrier: new RecordingListener.lastResult. TestSuiteTest.cs (254): test.Run(listener, null); // Null value carrier:listener.lastResult.P TestSuiteTest.cs (255): Assert.IsFalse(listener.lastResult.IsFailure); // Nullvalue carrier: listener.lastResult

[0/0] TheoryTests.cs [0/0] ThreadedTestRunnerTests.cs [0/0] ThreadingTests.cs [0/0] TypeHelperTests.cs [0/0] UnhandledExceptionTests.cs [0/0] ValueSourceTests.cs + [0/1] XmlTest.cs

Tasks: 193: Leakage of exception data ("Concat(...)") via console daniel.l BD.SECURITY.SENS-1 . XmlTest.cs (78): success = false;

. XmlTest.cs (79): Console.WriteLine("\tValidation error: " + args.Message);

. XmlTest.cs (81): if (args.Severity == XmlSeverityType.Warning)

. XmlTest.cs (83): Console.WriteLine("No schema found to enforce validation.");

. XmlTest.cs (84): }

. XmlTest.cs (91): if (args.Exception != null)CP XmlTest.cs (93): Console.WriteLine(args.Exception.SourceUri + "," +args.Exception.LinePosition + "," + args.Exception.LineNumber); // Sensitivedata: Concat(...)

+ [0/0] nunit.fixtures [0/0] AssemblyRunner.cs [0/0] CommonAssemblyInfo.cs [0/0] PlatformInfo.cs [0/0] SnippetRunner.cs [0/0] TestCompiler.cs

Page 61: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 61

[0/0] TestLoadFixture.cs [0/0] TestTree.cs

+ [0/0] nunit.fixtures.tests [0/0] CommonAssemblyInfo.cs [0/0] CompilationTests.cs [0/0] TestTreeTests.cs

+ [0/1] nunit.framework.dll [0/0] AssemblyInfo.cs [0/0] Assert.cs [0/0] AssertionHelper.cs [0/0] Assume.cs + [0/0] Attributes

[0/0] CategoryAttribute.cs [0/0] DatapointAttributes.cs [0/0] DescriptionAttribute.cs [0/0] ExpectedExceptionAttribute.cs [0/0] ExplicitAttribute.cs [0/0] IgnoreAttribute.cs [0/0] IncludeExcludeAttributes.cs [0/0] JoinTypeAttributes.cs [0/0] MaxTimeAttribute.cs [0/0] PropertyAttribute.cs [0/0] RandomAttribute.cs [0/0] RangeAttribute.cs [0/0] RepeatAttribute.cs [0/0] RequiredAddinAttribute.cs [0/0] SetCultureAttribute.cs [0/0] SetUICultureAttribute.cs [0/0] SetUpAttribute.cs [0/0] SetUpFixtureAttribute.cs [0/0] SuiteAttribute.cs [0/0] TearDownAttribute.cs [0/0] TestAttribute.cs [0/0] TestCaseAttribute.cs [0/0] TestCaseSourceAttribute.cs [0/0] TestFixtureAttribute.cs [0/0] TestFixtureSetUpAttribute.cs [0/0] TestFixtureTearDownAttribute.cs [0/0] TheoryAttribute.cs [0/0] ThreadingAttributes.cs [0/0] ValuesAttribute.cs [0/0] ValueSourceAttribute.cs

[0/0] CollectionAssert.cs [0/0] CommonAssemblyInfo.cs + [0/1] Constraints

[0/0] AttributeConstraints.cs [0/0] BasicConstraints.cs [0/0] BinaryOperations.cs [0/0] CollectionConstraints.cs [0/0] CollectionTally.cs [0/0] ComparisonAdapter.cs [0/0] ComparisonConstraints.cs [0/0] Constraint.cs [0/0] ConstraintBuilder.cs [0/0] ConstraintExpression.cs [0/0] ConstraintExpressionBase.cs [0/0] ConstraintFactory.cs [0/0] ConstraintOperators.cs [0/0] ContainsConstraint.cs [0/0] DelayedConstraint.cs [0/0] DirectoryConstraints.cs [0/0] EmptyConstraint.cs [0/0] EqualConstraint.cs [0/0] EqualityAdapter.cs [0/0] FloatingPointNumerics.cs [0/0] IResolveConstraint.cs [0/0] MessageWriter.cs [0/0] MsgUtils.cs [0/0] Numerics.cs [0/0] NUnitComparer.cs [0/0] NUnitEqualityComparer.cs [0/0] PathConstraints.cs [0/0] PredicateConstraint.cs [0/0] PrefixConstraints.cs [0/0] PropertyConstraint.cs [0/0] RangeConstraint.cs [0/0] ResolvableConstraintExpression.cs [0/0] ReusableConstraint.cs [0/0] SameAsConstraint.cs [0/0] SerializableConstraints.cs

Page 62: Nunit  C# source code  defects report by Parasoft dotTEST

Page 62 dotTEST Report [09/21/11 14:13:53]

[0/0] StringConstraints.cs [0/0] ThrowsConstraint.cs [0/0] Tolerance.cs + [0/1] TypeConstraints.cs

Tasks: 139: Expression may possibly be null daniel.l BD.PB.STRNULL-2 CP TypeConstraints.cs (39): writer.WriteActualValue( actual == null ? null :

actual.GetType() );

[0/0] Contains.cs [0/0] DirectoryAssert.cs + [0/0] Exceptions

[0/0] AssertionException.cs [0/0] IgnoreException.cs [0/0] InconclusiveException.cs [0/0] SuccessException.cs

[0/0] FileAssert.cs [0/0] GlobalSettings.cs [0/0] Has.cs [0/0] IExpectException.cs [0/0] Is.cs [0/0] ITestCaseData.cs [0/0] Iz.cs [0/0] List.cs [0/0] ListMapper.cs [0/0] Randomizer.cs [0/0] SpecialValue.cs [0/0] StringAssert.cs [0/0] TestCaseData.cs [0/0] TestContext.cs [0/0] TestState.cs [0/0] TestStatus.cs [0/0] Text.cs [0/0] TextMessageWriter.cs [0/0] Throws.cs

+ [0/4] nunit.framework.tests [0/0] ArrayEqualsFailureMessageFixture.cs [0/0] ArrayEqualsFixture.cs [0/0] ArrayNotEqualFixture.cs [0/0] AssertThrowsTests.cs [0/0] AssumeThatTests.cs [0/0] CollectionAdapter.cs [0/0] CollectionAssertTest.cs [0/0] CommonAssemblyInfo.cs [0/0] ConditionAssertTests.cs + [0/2] Constraints

[0/0] AfterConstraintTests.cs [0/0] AndTest.cs [0/0] BasicConstraintTests.cs [0/0] CollectionConstraintTests.cs [0/0] ComparerTests.cs [0/0] ComparisonConstraintTests.cs [0/0] ConstraintTestBase.cs [0/0] EmptyConstraintTest.cs + [0/2] EqualTest.cs

Tasks: 2499: "actual" may possibly be null daniel.l BD.EXCEPT.NR-1 . EqualTest.cs (487): StringReader rdr = new StringReader(ex.Message);

. EqualTest.cs (488): rdr.ReadLine();

. EqualTest.cs (489): string expected = rdr.ReadLine();

. EqualTest.cs (490): if (expected != null #x26;#x26; expected.Length > 11)

. EqualTest.cs (492): string actual = rdr.ReadLine();

.C EqualTest.cs (493): if (actual != null #x26;#x26; actual.Length > 11) // Nullvalue carrier: actual. EqualTest.cs (495): string line = rdr.ReadLine(); // Null value carrier: actual. EqualTest.cs (496): Assert.That(line, new NotConstraint(newEqualConstraint(null)), "No caret line displayed"); // Null value carrier: actual. EqualTest.cs (497): int caret = line.Substring(11).IndexOf('^'); // Null valuecarrier: actual.P EqualTest.cs (499): int minLength = Math.Min(expected.Length,actual.Length); // Null value carrier: actual

499: "expected" may possibly be null daniel.l BD.EXCEPT.NR-1 . EqualTest.cs (487): StringReader rdr = new StringReader(ex.Message);

. EqualTest.cs (488): rdr.ReadLine();

. EqualTest.cs (489): string expected = rdr.ReadLine();

.C EqualTest.cs (490): if (expected != null #x26;#x26; expected.Length > 11) //Null value carrier: expected. EqualTest.cs (492): string actual = rdr.ReadLine(); // Null value carrier:expected

Page 63: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 63

. EqualTest.cs (493): if (actual != null #x26;#x26; actual.Length > 11) // Nullvalue carrier: expected. EqualTest.cs (495): string line = rdr.ReadLine(); // Null value carrier: expected. EqualTest.cs (496): Assert.That(line, new NotConstraint(newEqualConstraint(null)), "No caret line displayed"); // Null value carrier: expected. EqualTest.cs (497): int caret = line.Substring(11).IndexOf('^'); // Null valuecarrier: expected.P EqualTest.cs (499): int minLength = Math.Min(expected.Length,actual.Length); // Null value carrier: expected

[0/0] FloatingPointNumericsTest.cs [0/0] MsgUtilTests.cs [0/0] NotTest.cs [0/0] NumericsTest.cs [0/0] OrTest.cs [0/0] PathConstraintTests.cs [0/0] PropertyTests.cs [0/0] ReusableConstraintTests.cs [0/0] SameAsTest.cs [0/0] SerializableConstraintTest.cs [0/0] StringConstraintTests.cs [0/0] ThrowsConstraintTests.cs [0/0] ToStringTests.cs [0/0] TypeConstraintTests.cs

[0/0] DirectoryAssertTests.cs [0/0] EqualsFixture.cs [0/0] FileAssertTests.cs [0/0] GreaterEqualFixture.cs [0/0] GreaterFixture.cs [0/0] LessEqualFixture.cs [0/0] LessFixture.cs [0/0] ListContentsTests.cs [0/0] MessageChecker.cs [0/0] NotEqualFixture.cs [0/0] NotSameFixture.cs [0/0] NullableTypesTests.cs [0/0] RandomizerTests.cs [0/0] RangeTests.cs [0/0] SameFixture.cs [0/0] StringAssertTests.cs + [0/2] Syntax

[0/0] AfterTests.cs [0/0] ArbitraryConstraintMatching.cs [0/0] CollectionTests.cs [0/0] ComparisonTests.cs [0/0] EqualityTests.cs [0/0] InvalidCodeTests.cs [0/0] OperatorOverrides.cs [0/0] OperatorTests.cs [0/0] PathConstraintTests.cs [0/0] PropertyTests.cs [0/0] SerializableConstraints.cs [0/0] SimpleConstraints.cs [0/0] StringConstraints.cs [0/0] SyntaxTest.cs [0/0] TestCompiler.cs + [0/2] ThrowsTests.cs

Tasks: 2195: "s" may possibly be null daniel.l BD.EXCEPT.AN-1 .C ThrowsTests.cs (176): new MyClass(null) // Null value carrier: <parameter #1

of .ctor()>. ThrowsTests.cs (191): public MyClass(string s) // Null value carrier: s. ThrowsTests.cs (193): if (s == null) // Null value carrier: sEP ThrowsTests.cs (195): throw new ArgumentNullException(); // Null valuecarrier: s

195: "s" may possibly be null daniel.l BD.EXCEPT.AN-1 .C ThrowsTests.cs (184): new MyClass(null) // Null value carrier: <parameter #1

of .ctor()>. ThrowsTests.cs (191): public MyClass(string s) // Null value carrier: s. ThrowsTests.cs (193): if (s == null) // Null value carrier: sEP ThrowsTests.cs (195): throw new ArgumentNullException(); // Null valuecarrier: s

[0/0] TypeConstraints.cs [0/0] TestDelegates.cs [0/0] TestFixtureAttributeTests.cs [0/0] TextMessageWriterTests.cs [0/0] TypeAssertTest.cs [0/0] ValuesAttributeTests.cs

+ [0/0] nunit.mocks

Page 64: Nunit  C# source code  defects report by Parasoft dotTEST

Page 64 dotTEST Report [09/21/11 14:13:53]

[0/0] AssemblyInfo.cs [0/0] CommonAssemblyInfo.cs [0/0] DynamicMock.cs [0/0] ICall.cs [0/0] ICallHandler.cs [0/0] IMethod.cs [0/0] IMock.cs [0/0] IVerify.cs [0/0] MethodSignature.cs [0/0] Mock.cs [0/0] MockCall.cs [0/0] MockInterfaceHandler.cs [0/0] MockMethod.cs

+ [0/0] nunit.mocks.tests [0/0] CommonAssemblyInfo.cs [0/0] DynamicMockTests.cs [0/0] MockTests.cs

+ [0/33] nunit.uiexception.dll [0/0] AssemblyInfo.cs + [0/0] CodeFormatters

[0/0] CodeFormatterCollection.cs [0/0] GeneralCodeFormatter.cs [0/0] ICodeFormatter.cs [0/0] IFormatterCatalog.cs [0/0] PlainTextCodeFormatter.cs

[0/0] CommonAssemblyInfo.cs + [0/2] Controls

[0/0] CodeBox.cs [0/0] CodeRenderingContext.cs [0/0] DefaultCodeRenderer.cs [0/0] DefaultErrorListRenderer.cs + [0/1] ErrorBrowser.cs

Tasks: 1140: "this.get_Toolbar().get_SelectedDisplay()" may possibly be null daniel.l BD.EXCEPT.NR-1 . ErrorBrowser.cs (140): LayoutPanel.Content =

Toolbar.SelectedDisplay.Content;. ErrorBrowser.cs (150): return (_layout); }. ErrorBrowser.cs (140): LayoutPanel.Content =Toolbar.SelectedDisplay.Content;. ErrorBrowser.cs (155): return ((ErrorToolbar)_layout.Toolbar);. ErrorPanelLayout.cs (104): return (_header[PANEL_LEFT]); }. ErrorBrowser.cs (155): return ((ErrorToolbar)_layout.Toolbar); }! ErrorBrowser.cs (140): LayoutPanel.Content =Toolbar.SelectedDisplay.Content;. ErrorToolbar.cs (86): if (_selection == -1).C ErrorToolbar.cs (87): return (null); // Null value carrier: CS$1$0000! ErrorToolbar.cs (89): } // Null value carrier: CS$1$0000.P ErrorBrowser.cs (140): LayoutPanel.Content =Toolbar.SelectedDisplay.Content; // Null value carrier:this.get_Toolbar().get_SelectedDisplay()

[0/0] ErrorList.cs [0/0] ErrorPanelLayout.cs [0/0] ErrorToolbar.cs [0/0] ICodeRenderer.cs [0/0] ICodeView.cs [0/0] IErrorDisplay.cs [0/0] IErrorListRenderer.cs [0/0] IStackTraceView.cs [0/0] PaintLineLocation.cs + [0/1] SourceCodeDisplay.cs

Tasks: 1160: Leakage of exception data ("Format(...)") via Windows Forms control daniel.l BD.SECURITY.SENS-1 . SourceCodeDisplay.cs (158): catch (Exception ex)

CP SourceCodeDisplay.cs (160): _codeView.Text = String.Format( "Cannotopen file: '{0}'\r\nError: '{1}'\r\n", item.Path, ex.Message); // Sensitive data:Format(...)

[0/0] SplitterBox.cs [0/0] StackTraceDisplay.cs

+ [0/2] CSharpParser [0/0] CSCode.cs [0/0] CSParser.cs [0/0] CSToken.cs [0/0] CSTokenCollection.cs [0/0] Lexer.cs [0/0] LexToken.cs + [0/2] TokenClassifier.cs

Tasks: 2

Page 65: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 65

415: "st.get_Item(...)" may possibly be null daniel.l BD.EXCEPT.NR-1 . TokenClassifier.cs (413): State st in _states

. TokenClassifier.cs (414): if (st.InitialState == smState)! TokenClassifier.cs (415): return (st[transition].SMSTATE);. TokenClassifier.cs (315): in Transitions.C TokenClassifier.cs (318): return (null); // Null value carrier: CS$1$0000! TokenClassifier.cs (319): } // Null value carrier: CS$1$0000.P TokenClassifier.cs (415): return (st[transition].SMSTATE); // Null value carrier:st.get_Item(...)

426: "st.get_Item(...)" may possibly be null daniel.l BD.EXCEPT.NR-1 . TokenClassifier.cs (424): State st in _states

. TokenClassifier.cs (425): if (st.InitialState == smState)! TokenClassifier.cs (426): return (st[transition].TokenSMSTATE);. TokenClassifier.cs (315): in Transitions.C TokenClassifier.cs (318): return (null); // Null value carrier: CS$1$0000! TokenClassifier.cs (319): } // Null value carrier: CS$1$0000.P TokenClassifier.cs (426): return (st[transition].TokenSMSTATE); // Null valuecarrier: st.get_Item(...)

[0/0] TokenDictionary.cs [0/0] DefaultTextManager.cs + [0/1] ExceptionItem.cs

Tasks: 1230: Stream not closed: rder.stream daniel.l BD.RES.LEAKS-1 . ExceptionItem.cs (219): if (!System.IO.File.Exists(_path))

. ExceptionItem.cs (222): if (_text == null)

.C ExceptionItem.cs (224): StreamReader rder = new StreamReader(_path); //Allocated resource variable: new StreamReader.stream!E ExceptionItem.cs (225): _text = rder.ReadToEnd(); //StreamReader.ReadToEnd() throws: IOException // Allocated resource variable:rder.stream.P ExceptionItem.cs (230): } // Allocated resource variable: rder.stream

[0/0] ExceptionItemCollection.cs [0/0] ITextManager.cs + [0/0] Properties

[0/0] Resources.Designer.cs [0/0] Resources.resx

+ [0/0] StackTraceAnalysers [0/0] FunctionParser.cs [0/0] IErrorParser.cs [0/0] LineNumberParser.cs [0/0] PathCompositeParser.cs [0/0] UnixPathParser.cs [0/0] WindowsPathParser.cs

[0/0] StackTraceParser.cs + [0/28] TraceExceptionHelper.cs

Tasks: 2831: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestCodeFormatterCollection.cs (75): _empty.Register(null, "cs"); // Null value

carrier: <parameter #1 of Register()>! CodeFormatterCollection.cs (131): UiExceptionHelper.CheckNotNull(formatter,"formatter"); // Null value carrier: formatter. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestCodeFormatterCollection.cs (84): _empty.Register(_csFormatter, null); //

Null value carrier: <parameter #2 of Register()>. CodeFormatterCollection.cs (131): UiExceptionHelper.CheckNotNull(formatter,"formatter"); // Null value carrier: extension! CodeFormatterCollection.cs (132): UiExceptionHelper.CheckNotNull(extension,"language"); // Null value carrier: extension. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestCodeFormatterCollection.cs (129): if (_empty[(string)null] == null) // Null

value carrier: <parameter #1 of get_Item()>! CodeFormatterCollection.cs (60): UiExceptionHelper.CheckNotNull(language,"language"); // Null value carrier: language. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestCodeFormatterCollection.cs (137): if (_empty[null] == null) // Null value

carrier: <parameter #1 of get_Item()>

Page 66: Nunit  C# source code  defects report by Parasoft dotTEST

Page 66 dotTEST Report [09/21/11 14:13:53]

! CodeFormatterCollection.cs (60): UiExceptionHelper.CheckNotNull(language,"language"); // Null value carrier: language. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestGeneralCodeFormatter.cs (53): _formatter.DefaultFormatter = null; // Null

value carrier: <parameter #1 of set_DefaultFormatter()>! GeneralCodeFormatter.cs (62): UiExceptionHelper.CheckNotNull(value,"value"); // Null value carrier: value. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestGeneralCodeFormatter.cs (72):

_formatter.GetFormatterFromExtension(null); // Null value carrier: <parameter #1of GetFormatterFromExtension()>! GeneralCodeFormatter.cs (105): UiExceptionHelper.CheckNotNull(extension,"extension"); // Null value carrier: extension. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestGeneralCodeFormatter.cs (79):

_formatter.GetFormatterFromLanguage(null); // Null value carrier: <parameter #1of GetFormatterFromLanguage()>! GeneralCodeFormatter.cs (87):UiExceptionHelper.CheckNotNull(languageName, "language"); // Null valuecarrier: languageName. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestGeneralCodeFormatter.cs (104): _formatter.FormatFromExtension(null,

"cs"); // Null value carrier: <parameter #1 of FormatFromExtension()>! GeneralCodeFormatter.cs (125): UiExceptionHelper.CheckNotNull(code,"code"); // Null value carrier: code. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestGeneralCodeFormatter.cs (113): _formatter.FormatFromExtension("test",

null); // Null value carrier: <parameter #2 of FormatFromExtension()>. GeneralCodeFormatter.cs (125): UiExceptionHelper.CheckNotNull(code,"code"); // Null value carrier: extension! GeneralCodeFormatter.cs (126): UiExceptionHelper.CheckNotNull(extension,"extension"); // Null value carrier: extension. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestGeneralCodeFormatter.cs (122): _formatter.Format(null, "C#"); // Null

value carrier: <parameter #1 of Format()>! GeneralCodeFormatter.cs (150): UiExceptionHelper.CheckNotNull(code,"code"); // Null value carrier: code. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestGeneralCodeFormatter.cs (131): _formatter.Format("test", null); // Null

value carrier: <parameter #2 of Format()>. GeneralCodeFormatter.cs (150): UiExceptionHelper.CheckNotNull(code,"code"); // Null value carrier: language! GeneralCodeFormatter.cs (151): UiExceptionHelper.CheckNotNull(language,"language"); // Null value carrier: language. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestPlainTextCodeFormatter.cs (54): _formatter.Format(null); // Null value

carrier: <parameter #1 of Format()>! PlainTextCodeFormatter.cs (41): UiExceptionHelper.CheckNotNull(sourceCode,"sourceCode"); // Null value carrier: sourceCode. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

Page 67: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 67

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestDefaultErrorListRenderer.cs (150): _renderer.DrawToGraphics(null, null,

_gr, new Rectangle()); // Null value carrier: <parameter #1 of DrawToGraphics()>! DefaultErrorListRenderer.cs (88): UiExceptionHelper.CheckNotNull(items,"items"); // Null value carrier: items. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 !E TestDefaultErrorListRenderer.cs (150): _renderer.DrawToGraphics(null, null,

_gr, new Rectangle()); // DefaultErrorListRenderer.DrawToGraphics() throws:ArgumentNullException!E DefaultErrorListRenderer.cs (88): UiExceptionHelper.CheckNotNull(items,"items"); // UiExceptionHelper.CheckNotNull() throws: ArgumentNullException. TraceExceptionHelper.cs (30): if (value == null)!E TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName);. TestDefaultErrorListRenderer.cs (153): catch (Exception e). TestDefaultErrorListRenderer.cs (154):Assert.That(e.Message.Contains("items"));. Assert.cs (494): Assert.That(condition, Is.True, null, null);. Is.cs (73): return new TrueConstraint(); }. Assert.cs (494): Assert.That(condition, Is.True, null, null);. Assert.cs (313): Constraint constraint = expression.Resolve();. Assert.cs (315): Assert.IncrementAssertCount();. Assert.cs (316): if (!constraint.Matches(actual)). Assert.cs (322): }. Assert.cs (495): }. TestDefaultErrorListRenderer.cs (155): }. TestDefaultErrorListRenderer.cs (158): _renderer.DrawToGraphics(_filled.Items,null, null, new Rectangle());. ErrorList.cs (48): return (_items); }.C TestDefaultErrorListRenderer.cs (158):_renderer.DrawToGraphics(_filled.Items, null, null, new Rectangle()); // Null valuecarrier: <parameter #3 of DrawToGraphics()>. DefaultErrorListRenderer.cs (88): UiExceptionHelper.CheckNotNull(items,"items"); // Null value carrier: g! DefaultErrorListRenderer.cs (89): UiExceptionHelper.CheckNotNull(g, "g"); //Null value carrier: g. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestErrorBrowser.cs (70): _errorBrowser.RegisterDisplay(null); // Null value

carrier: <parameter #1 of RegisterDisplay()>! ErrorBrowser.cs (114): UiExceptionHelper.CheckNotNull(display, "display"); //Null value carrier: display. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestErrorToolbar.cs (84): _emptyToolbar.Register(null); // Null value carrier:

<parameter #1 of Register()>! ErrorToolbar.cs (119): UiExceptionHelper.CheckNotNull(display, "display"); //Null value carrier: display. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestCSCode.cs (138): FormattedCode.CheckData(null); // Null value carrier:

<parameter #1 of CheckData()>! CSCode.cs (169): UiExceptionHelper.CheckNotNull(data, "data"); // Null valuecarrier: data. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestCSParser.cs (60): _parser.Format(null); // Null value carrier: <parameter

#1 of Format()>! CSParser.cs (66): UiExceptionHelper.CheckNotNull(csharpCode,"csharpCode"); // Null value carrier: csharpCode. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestLexer.cs (42): _lexer.Parse(null); // Null value carrier: <parameter #1 of

Parse()>

Page 68: Nunit  C# source code  defects report by Parasoft dotTEST

Page 68 dotTEST Report [09/21/11 14:13:53]

! Lexer.cs (97): UiExceptionHelper.CheckNotNull(codeCSharp, "text"); // Nullvalue carrier: codeCSharp. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestTokenClassifier.cs (32): _classifier.Classify(null); // Null value carrier:

<parameter #1 of Classify()>! TokenClassifier.cs (173): UiExceptionHelper.CheckNotNull(token, "token"); //Null value carrier: token. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestTokenClassifier.cs (223): _classifier.Classify(null); // Null value carrier:

<parameter #1 of Classify()>! TokenClassifier.cs (173): UiExceptionHelper.CheckNotNull(token, "token"); //Null value carrier: token. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestTokenDictionary.cs (57): _emptyDictionary.Add(null,

LexerTag.Separator); // Null value carrier: <parameter #1 of Add()>! TokenDictionary.cs (80): UiExceptionHelper.CheckNotNull(value, "value"); // Nullvalue carrier: value. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestTokenDictionary.cs (98):

_emptyDictionary.PopulateTokenStartingWith( null, new List<LexToken>()); // Nullvalue carrier: <parameter #1 of PopulateTokenStartingWith()>! TestTokenDictionary.cs (284): base.PopulateTokenStartingWith(starter,output); // Null value carrier: starter! TokenDictionary.cs (230): UiExceptionHelper.CheckNotNull(starter, "starter"); //Null value carrier: starter. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestTokenDictionary.cs (184): _emptyDictionary.TryMatch(null, ""); // Null value

carrier: <parameter #1 of TryMatch()>! TokenDictionary.cs (163): UiExceptionHelper.CheckNotNull(text, "text"); // Nullvalue carrier: text. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestTokenDictionary.cs (191): _emptyDictionary.TryMatch("", null); // Null value

carrier: <parameter #2 of TryMatch()>. TokenDictionary.cs (163): UiExceptionHelper.CheckNotNull(text, "text"); // Nullvalue carrier: prediction! TokenDictionary.cs (164): UiExceptionHelper.CheckNotNull(prediction,"prediction"); // Null value carrier: prediction. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestExceptionItem.cs (25): new ErrorItem(null, 1); // Null value carrier:

<parameter #1 of .ctor()>. ExceptionItem.cs (51): public ErrorItem(string path, int lineNumber) // Null valuecarrier: path! ExceptionItem.cs (53): UiExceptionHelper.CheckNotNull(path, "path"); // Nullvalue carrier: path. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestExceptionItemCollection.cs (86): _items.Add(null); // Null value carrier:

<parameter #1 of Add()>! ExceptionItemCollection.cs (58): UiExceptionHelper.CheckNotNull(item,"item"); // Null value carrier: item. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

Page 69: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 69

31: "value" may possibly be null daniel.l BD.EXCEPT.AN-1 .C TestPaintLineLocation.cs (43): new PaintLineLocation(0, null, new PointF(0,

0)); // Null value carrier: <parameter #2 of .ctor()>. PaintLineLocation.cs (39): public PaintLineLocation(int lineIndex, string text,PointF location) // Null value carrier: text. PaintLineLocation.cs (41): SetLine(lineIndex); // Null value carrier: text! PaintLineLocation.cs (42): SetText(text); // Null value carrier: text! PaintLineLocation.cs (107): UiExceptionHelper.CheckNotNull(text, "text"); // Nullvalue carrier: text. TraceExceptionHelper.cs (30): if (value == null) // Null value carrier: valueEP TraceExceptionHelper.cs (31): throw newArgumentNullException(paramName); // Null value carrier: value

+ [0/0] nunit.uiexception.tests + [0/0] CodeFormatters

[0/0] TestCodeFormatterCollection.cs [0/0] TestGeneralCodeFormatter.cs [0/0] TestPlainTextCodeFormatter.cs

[0/0] CommonAssemblyInfo.cs + [0/0] Controls

[0/0] TestCodeBox.cs [0/0] TestCodeRenderingContext.cs [0/0] TestDefaultCodeRenderer.cs [0/0] TestDefaultErrorListRenderer.cs [0/0] TestErrorBrowser.cs [0/0] TestErrorList.cs [0/0] TestErrorPanelLayout.cs [0/0] TestErrorToolbar.cs [0/0] TestSourceCodeDisplay.cs [0/0] TestSplitterBox.cs [0/0] TestStackTraceDisplay.cs

+ [0/0] CSharpParser [0/0] TestCSCode.cs [0/0] TestCSParser.cs [0/0] TestLexer.cs [0/0] TestToken.cs [0/0] TestTokenClassifier.cs [0/0] TestTokenDictionary.cs

+ [0/0] data [0/0] Basic.cs [0/0] TestResource.cs

[0/0] MockHelper.cs + [0/0] StackTraceAnalysers

[0/0] TestFunctionParser.cs [0/0] TestIErrorParser.cs [0/0] TestLineNumberParser.cs [0/0] TestPathParser.cs [0/0] TestUnixPathParser.cs [0/0] TestWindowsPathParser.cs

[0/0] TestDefaultTextManager.cs [0/0] TestExceptionItem.cs [0/0] TestExceptionItemCollection.cs [0/0] TestPaintLineLocation.cs [0/0] TestStackTraceParser.cs

+ [0/27] nunit.uikit.dll + [0/0] AddConfigurationDialog.cs

[0/0] AddConfigurationDialog.resx + [0/0] AddTabPageDialog.cs

[0/0] AddTabPageDialog.resx [0/0] AppContainer.cs [0/0] AssemblyInfo.cs [0/0] CommonAssemblyInfo.cs + [0/0] ConfigurationEditor.cs

[0/0] ConfigurationEditor.resx + [0/0] EditTabPagesDialog.cs

[0/0] EditTabPagesDialog.resx + [0/1] ErrorDisplay.cs

Tasks: 1347: Leakage of ToString() result ("text") via Windows Forms control daniel.l BD.SECURITY.SENS-1 . ErrorDisplay.cs (329): if ( tipWindow != null )

. ErrorDisplay.cs (331): if( settings.GetSetting( "Gui.ResultTabs.ErrorsTab.ToolTipsEnabled", false )#x26;#x26; hoverIndex >= 0 #x26;#x26; hoverIndex < detailL.... ErrorDisplay.cs (333): Graphics g = Graphics.FromHwnd( detailList.Handle );. ErrorDisplay.cs (335): Rectangle itemRect =detailList.GetItemRectangle( hoverIndex );.C ErrorDisplay.cs (336): string text = detailList.Items[hoverIndex].ToString(); //Sensitive data: this.detailList.get_Items().get_Item(...).ToString(). ErrorDisplay.cs (338): SizeF sizeNeeded = g.MeasureString( text,detailList.Font ); // Sensitive data: text

Page 70: Nunit  C# source code  defects report by Parasoft dotTEST

Page 70 dotTEST Report [09/21/11 14:13:53]

. ErrorDisplay.cs (339): bool expansionNeeded = itemRect.Width <(int)sizeNeeded.Width || itemRect.Height < (int)sizeNeeded.Height; // Sensitivedata: text. ErrorDisplay.cs (343): if ( expansionNeeded ) // Sensitive data: text. ErrorDisplay.cs (345): tipWindow = new TipWindow( detailList, hoverIndex ); //Sensitive data: text. ErrorDisplay.cs (346): tipWindow.ItemBounds = itemRect; // Sensitive data: text. TipWindow.cs (238): itemBounds = value; }.P ErrorDisplay.cs (347): tipWindow.TipText = text; // Sensitive data: text

[0/0] ErrorDisplay.resx + [0/9] ExpandingLabel.cs

Tasks: 9130: Leakage of ToString() result ("value") via Windows Forms control daniel.l BD.SECURITY.SENS-1 ! ExceptionDetailsForm.cs (118): this.message.Text =

FormatMessage( exception );. ExceptionDetailsForm.cs (126): StringBuilder sb = new StringBuilder();. ExceptionDetailsForm.cs (128): Exception ex = exception; ex != null. ExceptionDetailsForm.cs (130): if ( ex != exception ).C ExceptionDetailsForm.cs (131): sb.Append( ex.GetType().ToString() ); //Sensitive data: ex.GetType().ToString(). ExceptionDetailsForm.cs (132): sb.Append( ": " ); // Sensitive data: sb. ExceptionDetailsForm.cs (133): sb.Append( ex.Message ); // Sensitive data: sb. ExceptionDetailsForm.cs (128): ex != null; ex = ex.InnerException // Sensitivedata: sb! ExceptionDetailsForm.cs (136): return sb.ToString(); // Sensitive data: sb! ExceptionDetailsForm.cs (137): } // Sensitive data: CS$1$0000! ExceptionDetailsForm.cs (118): this.message.Text =FormatMessage( exception ); // Sensitive data: this.FormatMessage(...).P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

130: Leakage of ToString() result ("value") via Windows Forms control daniel.l BD.SECURITY.SENS-1 ! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText;

.C TestSuiteTreeNode.cs (107): return test.RunState.ToString(); // Sensitive data:new RunState.ToString()! TestSuiteTreeNode.cs (110): } // Sensitive data: CS$1$0000! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText; // Sensitivedata: node.get_StatusText().P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

130: Leakage of ToString() result ("value") via Windows Forms control daniel.l BD.SECURITY.SENS-1 ! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText;

.C TestSuiteTreeNode.cs (109): return result.ResultState.ToString(); // Sensitivedata: new ResultState.ToString()! TestSuiteTreeNode.cs (110): } // Sensitive data: CS$1$0000! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText; // Sensitivedata: node.get_StatusText().P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

130: Leakage of exception data ("value") via Windows Forms control daniel.l BD.SECURITY.SENS-1 ! ExceptionDetailsForm.cs (118): this.message.Text =

FormatMessage( exception );. ExceptionDetailsForm.cs (126): StringBuilder sb = new StringBuilder();. ExceptionDetailsForm.cs (128): Exception ex = exception; ex != null. ExceptionDetailsForm.cs (130): if ( ex != exception ). ExceptionDetailsForm.cs (131): sb.Append( ex.GetType().ToString() );. ExceptionDetailsForm.cs (132): sb.Append( ": " );.C ExceptionDetailsForm.cs (133): sb.Append( ex.Message ); // Sensitive data:ex.get_Message(). ExceptionDetailsForm.cs (128): ex != null; ex = ex.InnerException // Sensitivedata: sb! ExceptionDetailsForm.cs (136): return sb.ToString(); // Sensitive data: sb! ExceptionDetailsForm.cs (137): } // Sensitive data: CS$1$0000! ExceptionDetailsForm.cs (118): this.message.Text =FormatMessage( exception ); // Sensitive data: this.FormatMessage(...).P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

130: Leakage of reflection data ("value") via Windows Forms control daniel.l BD.SECURITY.SENS-1 . AboutBox.cs (34): private System.ComponentModel.Container components =

null;. AboutBox.cs (36): public AboutBox(). AboutBox.cs (41): InitializeComponent();. AboutBox.cs (46): Assembly executingAssembly =Assembly.GetExecutingAssembly();.C AboutBox.cs (47): string versionText =executingAssembly.GetName().Version.ToString(); // Sensitive data:executingAssembly.GetName(). AboutBox.cs (49): object [] objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute),false); // Sensitive data: versionText. AboutBox.cs (50): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText

Page 71: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 71

. AboutBox.cs (53): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute),false); // Sensitive data: versionText. AboutBox.cs (54): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText. AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 CharliePoole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T... // Sensitivedata: versionText. AboutBox.cs (62): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute),false); // Sensitive data: versionText. AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText! AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data:versionText.P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

130: Leakage of reflection data ("value") via Windows Forms control daniel.l BD.SECURITY.SENS-1 . AboutBox.cs (34): private System.ComponentModel.Container components =

null;. AboutBox.cs (36): public AboutBox(). AboutBox.cs (41): InitializeComponent();. AboutBox.cs (46): Assembly executingAssembly =Assembly.GetExecutingAssembly();. AboutBox.cs (47): string versionText =executingAssembly.GetName().Version.ToString();.C AboutBox.cs (49): object [] objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute),false); // Sensitive data: executingAssembly.GetCustomAttributes(...). AboutBox.cs (50): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs! AboutBox.cs (51): versionText =((AssemblyInformationalVersionAttribute)objectAttrs[0]).InformationalVersion; //Sensitive data: objectAttrs. AboutBox.cs (53): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute),false); // Sensitive data: versionText. AboutBox.cs (54): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText. AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 CharliePoole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T... // Sensitivedata: versionText. AboutBox.cs (62): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute),false); // Sensitive data: versionText. AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText! AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data:versionText.P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

130: Leakage of reflection data ("value") via Windows Forms control daniel.l BD.SECURITY.SENS-1 .C AboutBox.cs (53): objectAttrs =

executingAssembly.GetCustomAttributes(typeof(AssemblyConfigurationAttribute),false); // Sensitive data: executingAssembly.GetCustomAttributes(...). AboutBox.cs (54): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs! AboutBox.cs (56): string configText =((AssemblyConfigurationAttribute)objectAttrs[0]).Configuration; // Sensitive data:objectAttrs. AboutBox.cs (57): if ( configText != "" ) // Sensitive data: configText! AboutBox.cs (58): versionText += string.Format(" ({0})",configText); // Sensitivedata: configText. AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 CharliePoole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T... // Sensitivedata: versionText. AboutBox.cs (62): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute),false); // Sensitive data: versionText. AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: versionText! AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data:versionText.P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

130: Leakage of reflection data ("value") via Windows Forms control daniel.l BD.SECURITY.SENS-1 . AboutBox.cs (61): string copyrightText = "Copyright (C) 2002-2009 Charlie

Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. T....C AboutBox.cs (62): objectAttrs =executingAssembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute),false); // Sensitive data: executingAssembly.GetCustomAttributes(...). AboutBox.cs (63): if ( objectAttrs.Length > 0 ) // Sensitive data: objectAttrs! AboutBox.cs (64): copyrightText =((AssemblyCopyrightAttribute)objectAttrs[0]).Copyright; // Sensitive data:objectAttrs. AboutBox.cs (66): versionLabel.Text = versionText; // Sensitive data:copyrightText! AboutBox.cs (67): copyright.Text = copyrightText; // Sensitive data:copyrightText

Page 72: Nunit  C# source code  defects report by Parasoft dotTEST

Page 72 dotTEST Report [09/21/11 14:13:53]

.P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value130: Leakage of reflection data ("value") via Windows Forms control daniel.l BD.SECURITY.SENS-1 . TestPropertiesDialog.cs (465): pinnedImage = new

Bitmap( typeof( TestPropertiesDialog ), "pinned.gif" );.C TestPropertiesDialog.cs (466): unpinnedImage = newBitmap( typeof( TestPropertiesDialog ), "unpinned.gif" );. TestPropertiesDialog.cs (467): pinButton.Image = unpinnedImage;! TestPropertiesDialog.cs (469): DisplayProperties();! TestPropertiesDialog.cs (486): DisplayProperties( this.node );. TestPropertiesDialog.cs (491): this.node = node;. TestPropertiesDialog.cs (492): this.test = node.Test;. TestPropertiesDialog.cs (493): this.result = node.Result;. TestPropertiesDialog.cs (495): SetTitleBarText();. TestPropertiesDialog.cs (453): string name = test.TestName.Name;. TestPropertiesDialog.cs (454): int index = name.LastIndexOfAny( new char[]{ Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar } );. TestPropertiesDialog.cs (455): if ( index >= 0 ). TestPropertiesDialog.cs (457): this.Text = string.Format( "{0} Properties - {1}",node.TestType, name );. TestPropertiesDialog.cs (458): }. TestPropertiesDialog.cs (497): categories.Items.Clear();. TestPropertiesDialog.cs (498): in test.Categories! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText;. TestSuiteTreeNode.cs (106): if ( result == null )! TestSuiteTreeNode.cs (109): return result.ResultState.ToString(); // Sensitivedata: this.result! TestResult.cs (97): return resultState; } // Sensitive data: this! TestSuiteTreeNode.cs (109): return result.ResultState.ToString(); // Sensitivedata: this.result.get_ResultState()! TestSuiteTreeNode.cs (110): } // Sensitive data: CS$1$0000! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText; // Sensitivedata: node.get_StatusText().P ExpandingLabel.cs (130): base.Text = value; // Sensitive data: value

[0/0] ExpandingLabel.resx + [0/1] ExpandingTextBox.cs

Tasks: 1171: Leakage of ToString() result ("value") via Windows Forms control daniel.l BD.SECURITY.SENS-1 . AdvancedLoaderSettingsPage.cs (150): this.settings = Services.UserSettings;

. Services.cs (68): if ( userSettings == null )

. Services.cs (73): if ( userSettings == null )

. Services.cs (76): return userSettings;

. Services.cs (77): }

. AdvancedLoaderSettingsPage.cs (150): this.settings = Services.UserSettings;

. AdvancedLoaderSettingsPage.cs (152):enableShadowCopyCheckBox.Checked =settings.GetSetting( "Options.TestLoader.ShadowCopyFiles", true );. SettingsGroup.cs (150): object result = GetSetting(settingName );. SettingsGroup.cs (68): return storage.GetSetting( settingName );. SettingsGroup.cs (69): }. SettingsGroup.cs (150): object result = GetSetting(settingName );. SettingsGroup.cs (152): if ( result == null ). SettingsGroup.cs (153): return defaultValue;. SettingsGroup.cs (176): }. AdvancedLoaderSettingsPage.cs (152):enableShadowCopyCheckBox.Checked =settings.GetSetting( "Options.TestLoader.ShadowCopyFiles", true );! AdvancedLoaderSettingsPage.cs (153): shadowCopyPathTextBox.Text =settings.GetSetting("Options.TestLoader.ShadowCopyPath", "");. SettingsGroup.cs (187): object result = GetSetting(settingName );. SettingsGroup.cs (68): return storage.GetSetting( settingName );. SettingsGroup.cs (69): }. SettingsGroup.cs (187): object result = GetSetting(settingName );. SettingsGroup.cs (189): if ( result == null ). SettingsGroup.cs (192): if ( result is string ).C SettingsGroup.cs (195): return result.ToString(); // Sensitive data:result.ToString()! SettingsGroup.cs (196): } // Sensitive data: CS$1$0000! AdvancedLoaderSettingsPage.cs (153): shadowCopyPathTextBox.Text =settings.GetSetting("Options.TestLoader.ShadowCopyPath", ""); // Sensitive data:this.settings.GetSetting(...).P ExpandingTextBox.cs (171): base.Text = value; // Sensitive data: value

[0/0] ExpandingTextBox.resx [0/0] GuiAttachedConsole.cs + [0/1] GuiTestEventDispatcher.cs

Tasks: 152: Leakage of exception data ("ex") via console daniel.l BD.SECURITY.SENS-1 . GuiTestEventDispatcher.cs (47): catch( Exception ex )

Page 73: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 73

. GuiTestEventDispatcher.cs (51): Console.WriteLine( "Exception:" );CP GuiTestEventDispatcher.cs (52): Console.WriteLine( ex );

+ [0/0] LongRunningOperationDisplay.cs [0/0] LongRunningOperationDisplay.resx

+ [0/0] NotRunTree.cs [0/0] NotRunTree.resx

+ [0/0] ProgressBar.cs [0/0] ProgressBar.resx

[0/0] RecentFileMenuHandler.cs + [0/0] RenameConfigurationDialog.cs

[0/0] RenameConfigurationDialog.resx + [0/0] ResultTabs.cs

[0/0] ResultTabs.resx [0/0] ScrollingTextDisplayForm.cs + [0/0] SettingsDialogBase.cs

[0/0] SettingsDialogBase.resx + [0/0] SettingsPage.cs

[0/0] SettingsPage.resx + [0/0] SimpleSettingsDialog.cs

[0/0] SimpleSettingsDialog.resx + [0/0] StatusBar.cs

[0/0] StatusBar.resx + [0/0] TabbedSettingsDialog.cs

[0/0] TabbedSettingsDialog.resx + [0/4] TestLoaderUI.cs

Tasks: 4122: "config" may possibly be null daniel.l BD.EXCEPT.NR-1 . TestLoaderUI.cs (115): TestLoader loader = Services.TestLoader;

. Services.cs (102): if ( loader == null )

. Services.cs (105): return loader;

. Services.cs (106): }

. TestLoaderUI.cs (115): TestLoader loader = Services.TestLoader;

. TestLoaderUI.cs (116): ProjectConfig config = configName == null ?loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];. TestLoader.cs (154): return testProject; }! TestLoaderUI.cs (116): ProjectConfig config = configName == null ?loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ). ProjectConfigCollection.cs (75): return InnerList.Contains( config );. ProjectConfigCollection.cs (76): }. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ).C NUnitProject.cs (174): activeConfig = null; // Null value carrier:loader.testProject.activeConfig, this.activeConfig. NUnitProject.cs (177): if (activeConfig == null #x26;#x26; configs.Count > 0) //Null value carrier: loader.testProject.activeConfig, this.activeConfig! NUnitProject.cs (180): return activeConfig; // Null value carrier:loader.testProject.activeConfig, this.activeConfig! NUnitProject.cs (181): } // Null value carrier: CS$1$0000! TestLoaderUI.cs (116): ProjectConfig config = configName == null ?loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName]; // Nullvalue carrier: loader.get_TestProject().get_ActiveConfig(). TestLoaderUI.cs (120): OpenFileDialog dlg = new OpenFileDialog(); // Nullvalue carrier: config. TestLoaderUI.cs (121): dlg.Title = "Add Assemblies To Project"; // Null valuecarrier: config.P TestLoaderUI.cs (122): dlg.InitialDirectory = config.BasePath; // Null valuecarrier: config

122: "config" may possibly be null daniel.l BD.EXCEPT.NR-1 . TestLoaderUI.cs (115): TestLoader loader = Services.TestLoader;

. Services.cs (102): if ( loader == null )

. Services.cs (105): return loader;

. Services.cs (106): }

. TestLoaderUI.cs (115): TestLoader loader = Services.TestLoader;

. TestLoaderUI.cs (116): ProjectConfig config = configName == null ?loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];. TestLoader.cs (154): return testProject; }. TestLoaderUI.cs (116): ProjectConfig config = configName == null ?loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];. NUnitProject.cs (267): return configs; }! TestLoaderUI.cs (116): ProjectConfig config = configName == null ?loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];. ProjectConfigCollection.cs (34): int index = IndexOf( name );. ProjectConfigCollection.cs (63): int index = 0; index < InnerList.Count. ProjectConfigCollection.cs (70): return -1;. ProjectConfigCollection.cs (71): }. ProjectConfigCollection.cs (34): int index = IndexOf( name );

Page 74: Nunit  C# source code  defects report by Parasoft dotTEST

Page 74 dotTEST Report [09/21/11 14:13:53]

.C ProjectConfigCollection.cs (35): return index >= 0 ?(ProjectConfig)InnerList[index]: null; // Null value carrier: CS$1$0000! ProjectConfigCollection.cs (36): } // Null value carrier: CS$1$0000! TestLoaderUI.cs (116): ProjectConfig config = configName == null ?loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName]; // Nullvalue carrier: loader.get_TestProject().get_Configs().get_Item(...). TestLoaderUI.cs (120): OpenFileDialog dlg = new OpenFileDialog(); // Nullvalue carrier: config. TestLoaderUI.cs (121): dlg.Title = "Add Assemblies To Project"; // Null valuecarrier: config.P TestLoaderUI.cs (122): dlg.InitialDirectory = config.BasePath; // Null valuecarrier: config

203: "config" may possibly be null daniel.l BD.EXCEPT.NR-1 . TestLoaderUI.cs (196): TestLoader loader = Services.TestLoader;

. Services.cs (102): if ( loader == null )

. Services.cs (105): return loader;

. Services.cs (106): }

. TestLoaderUI.cs (196): TestLoader loader = Services.TestLoader;

. TestLoaderUI.cs (197): ProjectConfig config = configName == null ?loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];. TestLoader.cs (154): return testProject; }! TestLoaderUI.cs (197): ProjectConfig config = configName == null ?loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ). ProjectConfigCollection.cs (75): return InnerList.Contains( config );. ProjectConfigCollection.cs (76): }. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ).C NUnitProject.cs (174): activeConfig = null; // Null value carrier:loader.testProject.activeConfig, this.activeConfig. NUnitProject.cs (177): if (activeConfig == null #x26;#x26; configs.Count > 0) //Null value carrier: loader.testProject.activeConfig, this.activeConfig! NUnitProject.cs (180): return activeConfig; // Null value carrier:loader.testProject.activeConfig, this.activeConfig! NUnitProject.cs (181): } // Null value carrier: CS$1$0000! TestLoaderUI.cs (197): ProjectConfig config = configName == null ?loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName]; // Nullvalue carrier: loader.get_TestProject().get_ActiveConfig(). TestLoaderUI.cs (201): OpenFileDialog dlg = new OpenFileDialog(); // Nullvalue carrier: config. TestLoaderUI.cs (202): dlg.Title = "Add Assembly"; // Null value carrier: config.P TestLoaderUI.cs (203): dlg.InitialDirectory = config.BasePath; // Null valuecarrier: config

203: "config" may possibly be null daniel.l BD.EXCEPT.NR-1 . TestLoaderUI.cs (196): TestLoader loader = Services.TestLoader;

. Services.cs (102): if ( loader == null )

. Services.cs (105): return loader;

. Services.cs (106): }

. TestLoaderUI.cs (196): TestLoader loader = Services.TestLoader;

. TestLoaderUI.cs (197): ProjectConfig config = configName == null ?loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];. TestLoader.cs (154): return testProject; }. TestLoaderUI.cs (197): ProjectConfig config = configName == null ?loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];. NUnitProject.cs (267): return configs; }! TestLoaderUI.cs (197): ProjectConfig config = configName == null ?loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName];. ProjectConfigCollection.cs (34): int index = IndexOf( name );. ProjectConfigCollection.cs (63): int index = 0; index < InnerList.Count. ProjectConfigCollection.cs (70): return -1;. ProjectConfigCollection.cs (71): }. ProjectConfigCollection.cs (34): int index = IndexOf( name );.C ProjectConfigCollection.cs (35): return index >= 0 ?(ProjectConfig)InnerList[index]: null; // Null value carrier: CS$1$0000! ProjectConfigCollection.cs (36): } // Null value carrier: CS$1$0000! TestLoaderUI.cs (197): ProjectConfig config = configName == null ?loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName]; // Nullvalue carrier: loader.get_TestProject().get_Configs().get_Item(...). TestLoaderUI.cs (201): OpenFileDialog dlg = new OpenFileDialog(); // Nullvalue carrier: config. TestLoaderUI.cs (202): dlg.Title = "Add Assembly"; // Null value carrier: config.P TestLoaderUI.cs (203): dlg.InitialDirectory = config.BasePath; // Null valuecarrier: config

+ [0/3] TestPropertiesDialog.csTasks: 3501: Leakage of ToString() result ("node.get_StatusText()") via Windows Forms control daniel.l BD.SECURITY.SENS-1 ! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText;

Page 75: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 75

.C TestSuiteTreeNode.cs (107): return test.RunState.ToString(); // Sensitive data:new RunState.ToString()! TestSuiteTreeNode.cs (110): } // Sensitive data: CS$1$0000.P TestPropertiesDialog.cs (501): testResult.Text = node.StatusText; // Sensitivedata: node.get_StatusText()

501: Leakage of ToString() result ("node.get_StatusText()") via Windows Forms control daniel.l BD.SECURITY.SENS-1 ! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText;

.C TestSuiteTreeNode.cs (109): return result.ResultState.ToString(); // Sensitivedata: new ResultState.ToString()! TestSuiteTreeNode.cs (110): } // Sensitive data: CS$1$0000.P TestPropertiesDialog.cs (501): testResult.Text = node.StatusText; // Sensitivedata: node.get_StatusText()

501: Leakage of reflection data ("node.get_StatusText()") via Windows Forms control daniel.l BD.SECURITY.SENS-1 . TestPropertiesDialog.cs (465): pinnedImage = new

Bitmap( typeof( TestPropertiesDialog ), "pinned.gif" );.C TestPropertiesDialog.cs (466): unpinnedImage = newBitmap( typeof( TestPropertiesDialog ), "unpinned.gif" );. TestPropertiesDialog.cs (467): pinButton.Image = unpinnedImage;! TestPropertiesDialog.cs (469): DisplayProperties();! TestPropertiesDialog.cs (486): DisplayProperties( this.node );. TestPropertiesDialog.cs (491): this.node = node;. TestPropertiesDialog.cs (492): this.test = node.Test;. TestPropertiesDialog.cs (493): this.result = node.Result;. TestPropertiesDialog.cs (495): SetTitleBarText();. TestPropertiesDialog.cs (453): string name = test.TestName.Name;. TestPropertiesDialog.cs (454): int index = name.LastIndexOfAny( new char[]{ Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar } );. TestPropertiesDialog.cs (455): if ( index >= 0 ). TestPropertiesDialog.cs (457): this.Text = string.Format( "{0} Properties - {1}",node.TestType, name );. TestPropertiesDialog.cs (458): }. TestPropertiesDialog.cs (497): categories.Items.Clear();. TestPropertiesDialog.cs (498): in test.Categories! TestPropertiesDialog.cs (501): testResult.Text = node.StatusText;. TestSuiteTreeNode.cs (106): if ( result == null )! TestSuiteTreeNode.cs (109): return result.ResultState.ToString(); // Sensitivedata: this.result! TestResult.cs (97): return resultState; } // Sensitive data: this! TestSuiteTreeNode.cs (109): return result.ResultState.ToString(); // Sensitivedata: this.result.get_ResultState()! TestSuiteTreeNode.cs (110): } // Sensitive data: CS$1$0000.P TestPropertiesDialog.cs (501): testResult.Text = node.StatusText; // Sensitivedata: node.get_StatusText()

[0/0] TestPropertiesDialog.resx [0/0] TestSuiteTreeNode.cs + [0/1] TestSuiteTreeView.cs

Tasks: 11367: "test" may possibly be null daniel.l BD.EXCEPT.NR-1 . TestTree.cs (323): if ( tests.SelectedTest != null )

. TestSuiteTreeView.cs (266): TestSuiteTreeNode node =(TestSuiteTreeNode)SelectedNode;. TestSuiteTreeView.cs (267): return node == null ? null : node.Test;. TestSuiteTreeNode.cs (80): return this.test; }. TestSuiteTreeView.cs (267): return node == null ? null : node.Test;. TestSuiteTreeView.cs (268): }. TestTree.cs (323): if ( tests.SelectedTest != null )! TestTree.cs (324): tests.ShowPropertiesDialog( tests.SelectedTest );. TestSuiteTreeView.cs (266): TestSuiteTreeNode node =(TestSuiteTreeNode)SelectedNode;.C TestSuiteTreeView.cs (267): return node == null ? null : node.Test; // Null valuecarrier: CS$1$0000! TestSuiteTreeView.cs (268): } // Null value carrier: CS$1$0000! TestTree.cs (324): tests.ShowPropertiesDialog( tests.SelectedTest ); // Nullvalue carrier: this.tests.get_SelectedTest()! TestSuiteTreeView.cs (930): ShowPropertiesDialog( this[ test ] ); // Null valuecarrier: test! TestSuiteTreeView.cs (354): return FindNode( test ); // Null value carrier: test.P TestSuiteTreeView.cs (1367): return treeMap[test.TestName.UniqueName] asTestSuiteTreeNode; // Null value carrier: test

[0/0] TestSuiteTreeView.resx + [0/0] TestTree.cs

[0/0] TestTree.resx [0/0] TextBoxDisplay.cs [0/0] TextDisplay.cs [0/0] TextDisplayTabPage.cs [0/0] TextDisplayTabSettings.cs [0/0] TextDisplayWriter.cs + [0/0] TextOutputSettingsPage.cs

Page 76: Nunit  C# source code  defects report by Parasoft dotTEST

Page 76 dotTEST Report [09/21/11 14:13:53]

[0/0] TextOutputSettingsPage.resx + [0/0] TipWindow.cs

[0/0] TipWindow.resx + [0/0] TreeBasedSettingsDialog.cs

[0/0] TreeBasedSettingsDialog.resx + [0/7] UserMessage.cs

Tasks: 742: Leakage of ToString() result ("message") via message box daniel.l BD.SECURITY.SENS-1 . UserMessage.cs (65): Exception ex = exception;

. UserMessage.cs (66): StringBuilder sb = new StringBuilder();

.C UserMessage.cs (67): sb.AppendFormat("{0} : {1}", ex.GetType().ToString(),ex.Message); // Sensitive data: ex.GetType().ToString(). UserMessage.cs (68): while (ex.InnerException != null) // Sensitive data: sb. UserMessage.cs (74): if (message != null) // Sensitive data: sb. UserMessage.cs (77): sb.Append("\r\rFor further information, use the ExceptionDetails menu item."); // Sensitive data: sb! UserMessage.cs (79): return DisplayFailure(sb.ToString(), caption); // Sensitivedata: sb! UserMessage.cs (52): return Display( message, caption,MessageBoxButtons.OK, MessageBoxIcon.Stop ); // Sensitive data: message.P UserMessage.cs (42): return MessageBox.Show( message, caption, buttons,icon ); // Sensitive data: message

42: Leakage of ToString() result ("message") via message box daniel.l BD.SECURITY.SENS-1 . UserMessage.cs (65): Exception ex = exception;

. UserMessage.cs (66): StringBuilder sb = new StringBuilder();

. UserMessage.cs (67): sb.AppendFormat("{0} : {1}", ex.GetType().ToString(),ex.Message);. UserMessage.cs (68): while (ex.InnerException != null). UserMessage.cs (70): ex = ex.InnerException;.C UserMessage.cs (71): sb.AppendFormat("\r----> {0} : {1}",ex.GetType().ToString(), ex.Message); // Sensitive data: ex.GetType().ToString(). UserMessage.cs (68): while (ex.InnerException != null) // Sensitive data: sb. UserMessage.cs (74): if (message != null) // Sensitive data: sb. UserMessage.cs (77): sb.Append("\r\rFor further information, use the ExceptionDetails menu item."); // Sensitive data: sb! UserMessage.cs (79): return DisplayFailure(sb.ToString(), caption); // Sensitivedata: sb! UserMessage.cs (52): return Display( message, caption,MessageBoxButtons.OK, MessageBoxIcon.Stop ); // Sensitive data: message.P UserMessage.cs (42): return MessageBox.Show( message, caption, buttons,icon ); // Sensitive data: message

42: Leakage of ToString() result ("message") via message box daniel.l BD.SECURITY.SENS-1 . UserMessage.cs (84): Exception ex = exception;

. UserMessage.cs (85): StringBuilder sb = new StringBuilder();

.C UserMessage.cs (86): sb.AppendFormat("{0} : {1}", ex.GetType().ToString(),ex.Message); // Sensitive data: ex.GetType().ToString(). UserMessage.cs (87): while (ex.InnerException != null) // Sensitive data: sb. UserMessage.cs (93): if (message != null) // Sensitive data: sb! UserMessage.cs (96): return DisplayFailure(sb.ToString(), caption); // Sensitivedata: sb! UserMessage.cs (52): return Display( message, caption,MessageBoxButtons.OK, MessageBoxIcon.Stop ); // Sensitive data: message.P UserMessage.cs (42): return MessageBox.Show( message, caption, buttons,icon ); // Sensitive data: message

42: Leakage of ToString() result ("message") via message box daniel.l BD.SECURITY.SENS-1 . UserMessage.cs (84): Exception ex = exception;

. UserMessage.cs (85): StringBuilder sb = new StringBuilder();

. UserMessage.cs (86): sb.AppendFormat("{0} : {1}", ex.GetType().ToString(),ex.Message);. UserMessage.cs (87): while (ex.InnerException != null). UserMessage.cs (89): ex = ex.InnerException;.C UserMessage.cs (90): sb.AppendFormat("\r----> {0} : {1}",ex.GetType().ToString(), ex.Message); // Sensitive data: ex.GetType().ToString(). UserMessage.cs (87): while (ex.InnerException != null) // Sensitive data: sb. UserMessage.cs (93): if (message != null) // Sensitive data: sb! UserMessage.cs (96): return DisplayFailure(sb.ToString(), caption); // Sensitivedata: sb! UserMessage.cs (52): return Display( message, caption,MessageBoxButtons.OK, MessageBoxIcon.Stop ); // Sensitive data: message.P UserMessage.cs (42): return MessageBox.Show( message, caption, buttons,icon ); // Sensitive data: message

42: Leakage of exception data ("message") via message box daniel.l BD.SECURITY.SENS-1 . TestLoaderUI.cs (183): catch (Exception ex)

.C TestLoaderUI.cs (185): UserMessage.DisplayFailure(ex.Message, "Invalid VSProject"); // Sensitive data: ex.get_Message()! UserMessage.cs (52): return Display( message, caption,MessageBoxButtons.OK, MessageBoxIcon.Stop ); // Sensitive data: message

Page 77: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 77

.P UserMessage.cs (42): return MessageBox.Show( message, caption, buttons,icon ); // Sensitive data: message

42: Leakage of exception data ("message") via message box daniel.l BD.SECURITY.SENS-1 . TestLoaderUI.cs (236): catch( Exception ex )

.C TestLoaderUI.cs (238): UserMessage.DisplayFailure( ex.Message, "Invalid VSProject" ); // Sensitive data: ex.get_Message()! UserMessage.cs (52): return Display( message, caption,MessageBoxButtons.OK, MessageBoxIcon.Stop ); // Sensitive data: message.P UserMessage.cs (42): return MessageBox.Show( message, caption, buttons,icon ); // Sensitive data: message

42: Leakage of reflection data ("message") via message box daniel.l BD.SECURITY.SENS-1 ! AppEntry.cs (51): string message = guiOptions.GetHelpText();

! GuiOptions.cs (77): return "NUNIT-GUI [inputfile] [options]\r\r" + "Runs a set ofNUnit tests from the console. You may specify\r" + "an ass....C CommandLineOptions.cs (306): helpText.AppendFormat("{0}{1,-20}\t{2}",optChar, field.Name+valType, att.Description); // Sensitive data: field.get_Name(). CommandLineOptions.cs (307): if (att.Short != null) // Sensitive data: helpText. CommandLineOptions.cs (309): helpText.Append( Environment.NewLine ); //Sensitive data: helpText. CommandLineOptions.cs (312): } // Sensitive data: helpText. CommandLineOptions.cs (290): in // Sensitive data: helpText! CommandLineOptions.cs (313): return helpText.ToString(); // Sensitive data:helpText! CommandLineOptions.cs (314): } // Sensitive data: CS$1$0000! GuiOptions.cs (77): return "NUNIT-GUI [inputfile] [options]\r\r" + "Runs a set ofNUnit tests from the console. You may specify\r" + "an ass... // Sensitive data:this.GetHelpText()! GuiOptions.cs (85): } // Sensitive data: CS$1$0000! AppEntry.cs (51): string message = guiOptions.GetHelpText(); // Sensitive data:guiOptions.GetHelpText()! AppEntry.cs (52): UserMessage.DisplayFailure(message, "Help Syntax"); //Sensitive data: message! UserMessage.cs (52): return Display( message, caption,MessageBoxButtons.OK, MessageBoxIcon.Stop ); // Sensitive data: message.P UserMessage.cs (42): return MessageBox.Show( message, caption, buttons,icon ); // Sensitive data: message

[0/0] UserMessage.resx [0/0] VisualState.cs [0/0] WaitCursor.cs

+ [0/0] nunit.uikit.tests [0/0] AddConfigurationDialogTests.cs [0/0] CommonAssemblyInfo.cs [0/0] ErrorDisplayTests.cs [0/0] LongRunningOperationDisplayTests.cs [0/0] ProgressBarTests.cs [0/0] RecentFileMenuHandlerTests.cs [0/0] StatusBarTests.cs [0/0] TestSuiteTreeNodeTests.cs [0/0] TestSuiteTreeViewFixture.cs [0/0] TestTreeTests.cs [0/0] VisualStateTests.cs

+ [0/15] nunit.util.dll + [0/1] AggregatingTestRunner.cs

Tasks: 1109: "runner.get_AssemblyInfo()" may possibly be null daniel.l BD.EXCEPT.AN-1 . AggregatingTestRunner.cs (107): ArrayList info = new ArrayList();

. AggregatingTestRunner.cs (108): TestRunner runner in runners

. AggregatingTestRunner.cs (109): info.AddRange( runner.AssemblyInfo );

. AggregatingTestRunner.cs (108): TestRunner runner in! AggregatingTestRunner.cs (109): info.AddRange( runner.AssemblyInfo );.C ProxyTestRunner.cs (76): return testRunner == null ? null :testRunner.AssemblyInfo; } // Null value carrier: CS$1$0000.P AggregatingTestRunner.cs (109): info.AddRange( runner.AssemblyInfo ); //Null value carrier: runner.get_AssemblyInfo()

[0/0] AssemblyInfo.cs [0/0] AssemblyList.cs [0/0] AssemblyWatcher.cs [0/0] CategoryExpression.cs [0/0] CategoryManager.cs + [0/3] CommandLineOptions.cs

Tasks: 3230: "cmdLineVal" may possibly be null daniel.l BD.EXCEPT.AN-1 .C CommandLineOptions.cs (210): object cmdLineVal = null; // Null value carrier:

cmdLineVal. CommandLineOptions.cs (211): string opt = args[index].Substring(pos,args[index].Length-pos); // Null value carrier: cmdLineVal

Page 78: Nunit  C# source code  defects report by Parasoft dotTEST

Page 78 dotTEST Report [09/21/11 14:13:53]

! CommandLineOptions.cs (212): SplitOptionAndValue(ref opt, ref cmdLineVal); //Null value carrier: cmdLineVal. CommandLineOptions.cs (248): int pos = opt.IndexOfAny( new char[] { ':','=' } ); // Null value carrier: *val. CommandLineOptions.cs (249): if (pos < 1) return; // Null value carrier: *val! CommandLineOptions.cs (253): } // Null value carrier: *val. CommandLineOptions.cs (213): FieldInfo field = GetMemberField(opt); // Nullvalue carrier: cmdLineVal. CommandLineOptions.cs (214): if (field != null) // Null value carrier: cmdLineVal. CommandLineOptions.cs (216): object value = GetOptionValue(field); // Nullvalue carrier: cmdLineVal. CommandLineOptions.cs (217): if (value == null) // Null value carrier:cmdLineVal. CommandLineOptions.cs (219): if (field.FieldType == typeof(bool)) // Null valuecarrier: cmdLineVal. CommandLineOptions.cs (221): if(field.FieldType == typeof(string)) // Null valuecarrier: cmdLineVal. CommandLineOptions.cs (229): if(field.FieldType.IsEnum) // Null value carrier:cmdLineVal.P CommandLineOptions.cs (230): value = Enum.Parse( field.FieldType,(string)cmdLineVal, true ); // Null value carrier: cmdLineVal

280: Leakage of reflection data ("this.GetHelpText()") via console daniel.l BD.SECURITY.SENS-1 ! CommandLineOptions.cs (280): Console.WriteLine(GetHelpText());

. CommandLineOptions.cs (285): StringBuilder helpText = new StringBuilder();

. CommandLineOptions.cs (287): Type t = this.GetType();

. CommandLineOptions.cs (288): FieldInfo[] fields =t.GetFields(BindingFlags.Instance|BindingFlags.Public);. CommandLineOptions.cs (289): char optChar = allowForwardSlash ? '/' : '-';. CommandLineOptions.cs (290): FieldInfo field in fields.C CommandLineOptions.cs (292): object[] atts =field.GetCustomAttributes(typeof(OptionAttribute), true); // Sensitive data:field.GetCustomAttributes(...). CommandLineOptions.cs (293): if (atts.Length > 0) // Sensitive data: atts! CommandLineOptions.cs (295): OptionAttribute att = (OptionAttribute)atts[0]; //Sensitive data: atts! CommandLineOptions.cs (296): if (att.Description != null) // Sensitive data: att! CommandLineOptions.cs (64): return description; } // Sensitive data: this. CommandLineOptions.cs (296): if (att.Description != null) // Sensitive data:((OptionAttribute)atts[0]).description, att.description. CommandLineOptions.cs (298): string valType = ""; // Sensitive data:((OptionAttribute)atts[0]).description, att.description. CommandLineOptions.cs (299): if (att.Value == null) // Sensitive data:((OptionAttribute)atts[0]).description, att.description. CommandLineOptions.cs (58): return optValue; } // Sensitive data:this.description. CommandLineOptions.cs (299): if (att.Value == null) // Sensitive data:((OptionAttribute)atts[0]).description, att.description! CommandLineOptions.cs (306): helpText.AppendFormat("{0}{1,-20}\t{2}",optChar, field.Name+valType, att.Description); // Sensitive data:((OptionAttribute)atts[0]).description, att.description! CommandLineOptions.cs (64): return description; } // Sensitive data:this.description! CommandLineOptions.cs (306): helpText.AppendFormat("{0}{1,-20}\t{2}",optChar, field.Name+valType, att.Description); // Sensitive data:att.get_Description(). CommandLineOptions.cs (307): if (att.Short != null) // Sensitive data: optChar. CommandLineOptions.cs (52): return optName; }. CommandLineOptions.cs (307): if (att.Short != null) // Sensitive data: optChar! CommandLineOptions.cs (308): helpText.AppendFormat(" (Short format: {0}{1}{2})", optChar, att.Short, valType); // Sensitive data: optChar. CommandLineOptions.cs (52): return optName; }! CommandLineOptions.cs (308): helpText.AppendFormat(" (Short format: {0}{1}{2})", optChar, att.Short, valType); // Sensitive data: *new Char. CommandLineOptions.cs (309): helpText.Append( Environment.NewLine ); //Sensitive data: helpText. CommandLineOptions.cs (312): } // Sensitive data: helpText. CommandLineOptions.cs (290): in // Sensitive data: helpText! CommandLineOptions.cs (313): return helpText.ToString(); // Sensitive data:helpText! CommandLineOptions.cs (314): } // Sensitive data: CS$1$0000.P CommandLineOptions.cs (280): Console.WriteLine(GetHelpText()); //Sensitive data: this.GetHelpText()

280: Leakage of reflection data ("this.GetHelpText()") via console daniel.l BD.SECURITY.SENS-1 ! CommandLineOptions.cs (280): Console.WriteLine(GetHelpText());

.C CommandLineOptions.cs (306): helpText.AppendFormat("{0}{1,-20}\t{2}",optChar, field.Name+valType, att.Description); // Sensitive data: field.get_Name(). CommandLineOptions.cs (307): if (att.Short != null) // Sensitive data: helpText. CommandLineOptions.cs (309): helpText.Append( Environment.NewLine ); //Sensitive data: helpText

Page 79: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 79

. CommandLineOptions.cs (312): } // Sensitive data: helpText

. CommandLineOptions.cs (290): in // Sensitive data: helpText! CommandLineOptions.cs (313): return helpText.ToString(); // Sensitive data:helpText! CommandLineOptions.cs (314): } // Sensitive data: CS$1$0000.P CommandLineOptions.cs (280): Console.WriteLine(GetHelpText()); //Sensitive data: this.GetHelpText()

[0/0] CommonAssemblyInfo.cs [0/0] ConsoleWriter.cs [0/0] DefaultTestRunnerFactory.cs + [0/0] Extensibility

[0/0] IProjectConverter.cs [0/0] ProjectConverterCollection.cs

[0/0] IAssemblyWatcher.cs [0/0] InProcessTestRunnerFactory.cs + [0/0] Interfaces

[0/0] IRuntimeFrameworkSelector.cs [0/0] ISettings.cs [0/0] ITestEvents.cs [0/0] ITestLoader.cs [0/0] ITestRunnerFactory.cs

[0/0] MemorySettingsStorage.cs + [0/2] NUnitProject.cs

Tasks: 2198: "this.get_ActiveConfig()" may possibly be null daniel.l BD.EXCEPT.NR-1 . NUnitProject.cs (198): return ActiveConfig != null #x26;#x26;

ActiveConfig.Assemblies.Count > 0;. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ). NUnitProject.cs (177): if (activeConfig == null #x26;#x26; configs.Count > 0). NUnitProject.cs (178): activeConfig = configs[0];. ProjectConfigCollection.cs (27): return (ProjectConfig)InnerList[index]; }. NUnitProject.cs (178): activeConfig = configs[0];. NUnitProject.cs (180): return activeConfig;. NUnitProject.cs (181): }! NUnitProject.cs (198): return ActiveConfig != null #x26;#x26;ActiveConfig.Assemblies.Count > 0;. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ). ProjectConfigCollection.cs (75): return InnerList.Contains( config );. ProjectConfigCollection.cs (76): }. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ).C NUnitProject.cs (174): activeConfig = null; // Null value carrier:this.activeConfig. NUnitProject.cs (177): if (activeConfig == null #x26;#x26; configs.Count > 0) //Null value carrier: this.activeConfig! NUnitProject.cs (180): return activeConfig; // Null value carrier: this.activeConfig! NUnitProject.cs (181): } // Null value carrier: CS$1$0000.P NUnitProject.cs (198): return ActiveConfig != null #x26;#x26;ActiveConfig.Assemblies.Count > 0; // Null value carrier: this.get_ActiveConfig()

500: Stream not closed: ((StreamWriter)writer.textWriter).stream daniel.l BD.RES.LEAKS-1 . NUnitProject.cs (437): projectPath = ProjectPathFromFile( projectPath );

. NUnitProject.cs (279): string fileName =Path.GetFileNameWithoutExtension(path) + NUnitProject.Extension;. NUnitProject.cs (280): return Path.Combine(Path.GetDirectoryName(path),fileName);. NUnitProject.cs (281): }. NUnitProject.cs (437): projectPath = ProjectPathFromFile( projectPath );.C NUnitProject.cs (439): XmlTextWriter writer = new XmlTextWriter( projectPath,System.Text.Encoding.UTF8 ); // Allocated resource variable: ((StreamWriter)newXmlTextWriter.textWriter).stream. NUnitProject.cs (440): writer.Formatting = Formatting.Indented; // Allocatedresource variable: ((StreamWriter)writer.textWriter).stream. NUnitProject.cs (442): writer.WriteStartElement( "NUnitProject" ); // Allocatedresource variable: ((StreamWriter)writer.textWriter).stream!E NUnitProject.cs (444): if ( configs.Count > 0 || this.BasePath != this.DefaultBasePath ) // NUnitProject.get_DefaultBasePath()throws: PathTooLongException // Allocated resource variable:((StreamWriter)writer.textWriter).stream!E NUnitProject.cs (111): return Path.GetDirectoryName( projectPath ); } //Path.GetDirectoryName() throws: PathTooLongException.P NUnitProject.cs (500): } // Allocated resource variable:((StreamWriter)writer.textWriter).stream

+ [0/2] NUnitRegistry.csTasks: 265: Registry key not closed: newKey daniel.l BD.RES.LEAKS-1

Page 80: Nunit  C# source code  defects report by Parasoft dotTEST

Page 80 dotTEST Report [09/21/11 14:13:53]

. NUnitRegistry.cs (49): if ( testMode ). NUnitRegistry.cs (52): RegistryKey newKey =Registry.CurrentUser.OpenSubKey( KEY, true );. NUnitRegistry.cs (53): if (newKey == null).C NUnitRegistry.cs (55): newKey =Registry.CurrentUser.CreateSubKey( KEY ); // Allocated resource variable:CurrentUser.CreateSubKey(...)!E NUnitRegistry.cs (56): RegistryKey oldKey =Registry.CurrentUser.OpenSubKey( LEGACY_KEY ); //RegistryKey.OpenSubKey() throws: SecurityException // Allocated resourcevariable: newKey.P NUnitRegistry.cs (65): } // Allocated resource variable: newKey

65: Registry key not closed: oldKey daniel.l BD.RES.LEAKS-1 . NUnitRegistry.cs (49): if ( testMode )

. NUnitRegistry.cs (52): RegistryKey newKey =Registry.CurrentUser.OpenSubKey( KEY, true );. NUnitRegistry.cs (53): if (newKey == null). NUnitRegistry.cs (55): newKey = Registry.CurrentUser.CreateSubKey( KEY );.C NUnitRegistry.cs (56): RegistryKey oldKey =Registry.CurrentUser.OpenSubKey( LEGACY_KEY ); // Allocated resourcevariable: CurrentUser.OpenSubKey(...). NUnitRegistry.cs (57): if ( oldKey != null ) // Allocated resource variable: oldKey!E NUnitRegistry.cs (59): CopyKey( oldKey, newKey ); //NUnitRegistry.CopyKey() throws: SecurityException // Allocated resourcevariable: oldKey!E NUnitRegistry.cs (122): fromKey.GetValueNames() //RegistryKey.GetValueNames() throws: SecurityException // Allocated resourcevariable: fromKey.P NUnitRegistry.cs (65): } // Allocated resource variable: oldKey

+ [0/1] PathUtils.csTasks: 195: "path" may possibly be null daniel.l BD.EXCEPT.NR-1 . NUnitProject.cs (139): basePath = value;

.C NUnitProject.cs (141): if (basePath != null #x26;#x26; basePath !=string.Empty #x26;#x26; !Path.IsPathRooted(basePath)) // Null value carrier:this.basePath! NUnitProject.cs (149): basePath = PathUtils.Canonicalize(basePath); // Nullvalue carrier: this.basePath.P PathUtils.cs (95): ArrayList parts = newArrayList( path.Split( DirectorySeparatorChar, AltDirectorySeparatorChar ) ); //Null value carrier: path

[0/0] ProcessRunner.cs [0/0] ProjectConfig.cs [0/0] ProjectConfigCollection.cs + [0/0] ProjectConverters

[0/0] VisualStudioConverter.cs [0/0] ProjectFormatException.cs [0/0] RecentFileEntry.cs [0/0] RecentFiles.cs [0/0] RecentFilesCollection.cs [0/0] RegistrySettingsStorage.cs + [0/1] RemoteTestAgent.cs

Tasks: 1118: "result" may possibly be null daniel.l BD.EXCEPT.NR-1 ! RemoteTestAgent.cs (115): IList result = base.AssemblyInfo;

.C ProxyTestRunner.cs (76): return testRunner == null ? null :testRunner.AssemblyInfo; } // Null value carrier: CS$1$0000! RemoteTestAgent.cs (115): IList result = base.AssemblyInfo; // Null valuecarrier: this.get_AssemblyInfo(). RemoteTestAgent.cs (116): string name =Path.GetFileName(Assembly.GetEntryAssembly().Location); // Null value carrier:result.P RemoteTestAgent.cs (118): result // Null value carrier: result

[0/0] ResultSummarizer.cs [0/0] RuntimeFrameworkSelector.cs [0/0] ServerBase.cs [0/0] ServerUtilities.cs + [0/0] Services

[0/0] AddinManager.cs [0/0] AddinRegistry.cs [0/0] DomainManager.cs [0/0] ProjectService.cs [0/0] RecentFilesService.cs [0/0] ServiceManager.cs [0/0] SettingsService.cs [0/0] TestAgency.cs

[0/0] Services.cs

Page 81: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 81

[0/0] SettingsGroup.cs [0/0] SettingsStorage.cs [0/0] StackTraceFilter.cs [0/0] TestDomain.cs [0/0] TestEventArgs.cs [0/0] TestEventDispatcher.cs [0/0] TestExceptionHandler.cs + [0/2] TestLoader.cs

Tasks: 2699: "this.get_TestProject().get_ActiveConfig()" may possibly be null daniel.l BD.EXCEPT.NR-1 . TestLoader.cs (694): if (watcher != null)

. TestLoader.cs (696): watcher.Stop();

. TestLoader.cs (697): watcher.FreeResources();

. TestLoader.cs (699): watcher.Setup(1000,TestProject.ActiveConfig.Assemblies.ToArray());. TestLoader.cs (154): return testProject; }! TestLoader.cs (699): watcher.Setup(1000,TestProject.ActiveConfig.Assemblies.ToArray());. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ). ProjectConfigCollection.cs (75): return InnerList.Contains( config );. ProjectConfigCollection.cs (76): }. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ).C NUnitProject.cs (174): activeConfig = null; // Null value carrier:this.activeConfig. NUnitProject.cs (177): if (activeConfig == null #x26;#x26; configs.Count > 0) //Null value carrier: this.activeConfig! NUnitProject.cs (180): return activeConfig; // Null value carrier: this.activeConfig! NUnitProject.cs (181): } // Null value carrier: CS$1$0000.P TestLoader.cs (699): watcher.Setup(1000,TestProject.ActiveConfig.Assemblies.ToArray()); // Null value carrier:this.get_TestProject().get_ActiveConfig()

720: "this.get_TestProject().get_ActiveConfig()" may possibly be null daniel.l BD.EXCEPT.NR-1 . TestLoader.cs (720): TestPackage package =

TestProject.ActiveConfig.MakeTestPackage();. TestLoader.cs (154): return testProject; }! TestLoader.cs (720): TestPackage package =TestProject.ActiveConfig.MakeTestPackage();. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ). ProjectConfigCollection.cs (75): return InnerList.Contains( config );. ProjectConfigCollection.cs (76): }. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ).C NUnitProject.cs (174): activeConfig = null; // Null value carrier:this.activeConfig. NUnitProject.cs (177): if (activeConfig == null #x26;#x26; configs.Count > 0) //Null value carrier: this.activeConfig! NUnitProject.cs (180): return activeConfig; // Null value carrier: this.activeConfig! NUnitProject.cs (181): } // Null value carrier: CS$1$0000.P TestLoader.cs (720): TestPackage package =TestProject.ActiveConfig.MakeTestPackage(); // Null value carrier:this.get_TestProject().get_ActiveConfig()

[0/0] TestObserver.cs [0/0] TestResultItem.cs [0/0] TestServer.cs [0/0] Transform.resx + [0/1] VSProject.cs

Tasks: 1172: "assemblyName" may possibly be null daniel.l BD.EXCEPT.NR-1 . VSProject.cs (123): if ( !IsProjectFile( projectPath ) )

. VSProject.cs (94): if (path.IndexOfAny(Path.GetInvalidPathChars()) >= 0)

. VSProject.cs (100): if ( path.ToLower().IndexOf( "http:" ) >= 0 )

. VSProject.cs (103): string extension = Path.GetExtension( path );

. VSProject.cs (105): string validExtension in validExtensions

. VSProject.cs (106): if ( extension == validExtension )

. VSProject.cs (107): return true;

. VSProject.cs (110): }

. VSProject.cs (123): if ( !IsProjectFile( projectPath ) )

. VSProject.cs (126): string projectDirectory =Path.GetFullPath( Path.GetDirectoryName( projectPath ) );. VSProject.cs (127): StreamReader rdr = new StreamReader( projectPath,System.Text.Encoding.UTF8 );. VSProject.cs (128): string[] extensions = {"", ".exe", ".dll", ".lib", "" };. VSProject.cs (132): XmlDocument doc = new XmlDocument();. VSProject.cs (133): doc.Load( rdr );. VSProject.cs (135): string extension = Path.GetExtension( projectPath );

Page 82: Nunit  C# source code  defects report by Parasoft dotTEST

Page 82 dotTEST Report [09/21/11 14:13:53]

.C VSProject.cs (136): string assemblyName = null; // Null value carrier:assemblyName. VSProject.cs (138): switch ( extension ) // Null value carrier: assemblyName. VSProject.cs (143): XmlNode configNode in doc.SelectNodes( "/VisualStudioProject/Configurations/Configuration" ) // Null value carrier:assemblyName. VSProject.cs (145): string name = RequiredAttributeValue( configNode,"Name" ); // Null value carrier: assemblyName. VSProject.cs (146): int config_type =System.Convert.ToInt32(RequiredAttributeValue(configNode,"ConfigurationType" ) ); // Null value carrier: assemblyName. VSProject.cs (147): string dirName = name; // Null value carrier: assemblyName. VSProject.cs (148): int bar = dirName.IndexOf( '|' ); // Null value carrier:assemblyName. VSProject.cs (149): if ( bar >= 0 ) // Null value carrier: assemblyName. VSProject.cs (151): string outputPath = RequiredAttributeValue( configNode,"OutputDirectory" ); // Null value carrier: assemblyName. VSProject.cs (152): outputPath = outputPath.Replace( "$(SolutionDir)",Path.GetFullPath( Path.GetDirectoryName( projectPath ) ) + Path.Direc... // Nullvalue carrier: assemblyName. VSProject.cs (153): outputPath = outputPath.Replace( "$(ConfigurationName)",dirName ); // Null value carrier: assemblyName. VSProject.cs (155): string outputDirectory = Path.Combine( projectDirectory,outputPath ); // Null value carrier: assemblyName. VSProject.cs (156): XmlNode toolNode =configNode.SelectSingleNode( "Tool[@Name='VCLinkerTool']" ); // Null valuecarrier: assemblyName. VSProject.cs (157): if ( toolNode != null ) // Null value carrier: assemblyName. VSProject.cs (167): toolNode =configNode.SelectSingleNode( "Tool[@Name='VCNMakeTool']" ); // Null valuecarrier: assemblyName. VSProject.cs (168): if ( toolNode != null ) // Null value carrier: assemblyName.P VSProject.cs (172): assemblyName = assemblyName.Replace( "$(OutDir)",outputPath ); // Null value carrier: assemblyName

[0/0] VSProjectConfig.cs [0/0] VSProjectConfigCollection.cs + [0/2] XmlResultTransform.cs

Tasks: 253: Stream not closed: new StreamWriter.stream daniel.l BD.RES.LEAKS-1 ECP XmlResultTransform.cs (53): Transform( new StreamReader( inputFile ),

new StreamWriter( outputFile ) ); // XmlResultTransform.Transform() throws:XmlException // Allocated resource variable: new StreamWriter.stream!E XmlResultTransform.cs (58): Transform( new XPathDocument( reader ),writer ); // XPathDocument..ctor() throws: XmlException // Allocated resourcevariable: ((StreamWriter)writer).stream

54: Stream not closed: new StreamReader.stream daniel.l BD.RES.LEAKS-1 EC XmlResultTransform.cs (53): Transform( new StreamReader( inputFile ),

new StreamWriter( outputFile ) ); // StreamWriter..ctor() throws:DirectoryNotFoundException // Allocated resource variable: newStreamReader.stream.P XmlResultTransform.cs (54): } // Allocated resource variable: newStreamReader.stream

[0/0] XmlResultWriter.cs [0/0] XmlSettingsStorage.cs

+ [0/12] nunit.util.tests [0/0] AssemblyListTests.cs [0/0] CategoryManagerTest.cs [0/0] CategoryParseTests.cs [0/0] CommonAssemblyInfo.cs [0/0] DomainManagerTests.cs [0/0] EventDispatcherTests.cs + [0/3] FileWatcherTest.cs

Tasks: 341: Stream not closed: writer.stream daniel.l BD.RES.LEAKS-1 . FileWatcherTest.cs (28): string tempDir = Path.GetTempPath();

. FileWatcherTest.cs (29): fileName = Path.Combine(tempDir, "temp.txt");

. FileWatcherTest.cs (30): tempFileName = Path.Combine(tempDir,"newTempFile.txt");.C FileWatcherTest.cs (32): StreamWriter writer = newStreamWriter( fileName ); // Allocated resource variable: newStreamWriter.stream!E FileWatcherTest.cs (33): writer.Write( "Hello" ); // StreamWriter.Write() throws:IOException // Allocated resource variable: writer.stream.P FileWatcherTest.cs (41): } // Allocated resource variable: writer.stream

69: Stream not closed: writer.stream daniel.l BD.RES.LEAKS-1 . FileWatcherTest.cs (59): int i=0; i<3

Page 83: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 83

.C FileWatcherTest.cs (61): StreamWriter writer = new StreamWriter( fileName,true ); // Allocated resource variable: new StreamWriter.stream!E FileWatcherTest.cs (62): writer.WriteLine("Data"); // TextWriter.WriteLine()throws: IOException // Allocated resource variable: writer.stream.P FileWatcherTest.cs (69): } // Allocated resource variable: writer.stream

83: Stream not closed: writer.stream daniel.l BD.RES.LEAKS-1 .C FileWatcherTest.cs (76): StreamWriter writer = new

StreamWriter( fileName ); // Allocated resource variable: newStreamWriter.stream!E FileWatcherTest.cs (77): writer.Write( "Goodbye" ); // StreamWriter.Write()throws: IOException // Allocated resource variable: writer.stream.P FileWatcherTest.cs (83): } // Allocated resource variable: writer.stream

[0/0] MemorySettingsStorageTests.cs [0/0] MockAssemblyWatcher.cs + [0/1] NUnitProjectLoad.cs

Tasks: 147: Stream not closed: writer.stream daniel.l BD.RES.LEAKS-1 .C NUnitProjectLoad.cs (41): StreamWriter writer = new StreamWriter( xmlfile ); //

Allocated resource variable: new StreamWriter.stream!E NUnitProjectLoad.cs (42): writer.Write( source ); // StreamWriter.Write()throws: IOException // Allocated resource variable: writer.stream.P NUnitProjectLoad.cs (47): } // Allocated resource variable: writer.stream

+ [0/1] NUnitProjectSave.csTasks: 141: Stream not closed: reader.stream daniel.l BD.RES.LEAKS-1 .C NUnitProjectSave.cs (37): StreamReader reader = new

StreamReader( xmlfile ); // Allocated resource variable: newStreamReader.stream!E NUnitProjectSave.cs (38): string contents = reader.ReadToEnd(); //StreamReader.ReadToEnd() throws: IOException // Allocated resource variable:reader.stream.P NUnitProjectSave.cs (41): } // Allocated resource variable: reader.stream

+ [0/1] NUnitProjectTests.csTasks: 1193: "this.project.get_ActiveConfig()" may possibly be null daniel.l BD.EXCEPT.NR-1 . NUnitProjectTests.cs (192): project.Configs.Add("Debug");

. NUnitProject.cs (267): return configs; }

. NUnitProjectTests.cs (192): project.Configs.Add("Debug");

. ProjectConfigCollection.cs (49): Add( new ProjectConfig( name ) );

. ProjectConfig.cs (34): protected NUnitProject project = null;

. ProjectConfig.cs (59): private BinPathType binPathType = BinPathType.Auto;

. ProjectConfig.cs (69): public ProjectConfig( string name )

. ProjectConfig.cs (71): this.name = name;

. ProjectConfig.cs (72): this.assemblies = new AssemblyList();

. ProjectConfig.cs (73): assemblies.Changed += newEventHandler( assemblies_Changed );. ProjectConfig.cs (74): }. ProjectConfigCollection.cs (49): Add( new ProjectConfig( name ) );. ProjectConfigCollection.cs (43): List.Add( config );. ProjectConfigCollection.cs (44): config.Project = this.project;. ProjectConfigCollection.cs (45): }. ProjectConfigCollection.cs (50): }! NUnitProjectTests.cs (193): Assert.AreEqual( "Debug",project.ActiveConfig.Name );. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ). ProjectConfigCollection.cs (75): return InnerList.Contains( config );. ProjectConfigCollection.cs (76): }. NUnitProject.cs (173): if ( activeConfig != null #x26;#x26; !configs.Contains( activeConfig ) ).C NUnitProject.cs (174): activeConfig = null; // Null value carrier:this.activeConfig. NUnitProject.cs (177): if (activeConfig == null #x26;#x26; configs.Count > 0) //Null value carrier: this.activeConfig! NUnitProject.cs (180): return activeConfig; // Null value carrier: this.activeConfig! NUnitProject.cs (181): } // Null value carrier: CS$1$0000.P NUnitProjectTests.cs (193): Assert.AreEqual( "Debug",project.ActiveConfig.Name ); // Null value carrier: this.project.get_ActiveConfig()

[0/0] NUnitProjectXml.cs [0/0] NUnitRegistryTests.cs [0/0] PathUtilTests.cs [0/0] ProcessRunnerTests.cs [0/0] ProjectConfigTests.cs [0/0] RecentFileEntryTests.cs [0/0] RecentFilesTests.cs + [0/1] RegistrySettingsStorageTests.cs

Page 84: Nunit  C# source code  defects report by Parasoft dotTEST

Page 84 dotTEST Report [09/21/11 14:13:53]

Tasks: 182: Registry key not closed: sub1.storageKey daniel.l BD.RES.LEAKS-1 ! RegistrySettingsStorageTests.cs (74): RegistrySettingsStorage sub1 =

(RegistrySettingsStorage)storage.MakeChildStorage( "Sub1" );.C RegistrySettingsStorage.cs (135): return newRegistrySettingsStorage( storageKey.CreateSubKey( storageName ) ); //Allocated resource variable: this.storageKey.CreateSubKey(...). RegistrySettingsStorage.cs (40): public RegistrySettingsStorage( RegistryKeystorageKey ) // Allocated resource variable: storageKey! RegistrySettingsStorage.cs (42): this.storageKey = storageKey; // Allocatedresource variable: storageKey! RegistrySettingsStorage.cs (43): } // Allocated resource variable: storageKey,this.storageKey! RegistrySettingsStorage.cs (135): return newRegistrySettingsStorage( storageKey.CreateSubKey( storageName ) ); //Allocated resource variable: new RegistrySettingsStorage.storageKey! RegistrySettingsStorage.cs (136): } // Allocated resource variable:((RegistrySettingsStorage)CS$1$0000).storageKey! RegistrySettingsStorageTests.cs (74): RegistrySettingsStorage sub1= (RegistrySettingsStorage)storage.MakeChildStorage( "Sub1" ); //Allocated resource variable:((RegistrySettingsStorage)this.storage.MakeChildStorage(...)).storageKey!E RegistrySettingsStorageTests.cs (75): RegistrySettingsStorage sub2= (RegistrySettingsStorage)storage.MakeChildStorage( "Sub2" ); //RegistrySettingsStorage.MakeChildStorage() throws: SecurityException //Allocated resource variable: sub1.storageKey!E RegistrySettingsStorage.cs (135): return newRegistrySettingsStorage( storageKey.CreateSubKey( storageName ) ); //RegistryKey.CreateSubKey() throws: SecurityException.P RegistrySettingsStorageTests.cs (82): } // Allocated resource variable:sub1.storageKey

[0/0] RemoteTestResultTest.cs + [0/0] resources

[0/0] ClassLibrary1.csproj [0/0] csharp-sample.csproj [0/0] csharp-sample_VS2005.csproj [0/0] csharp-sample_VS2005_noplatform.csproj [0/0] HebrewFileProblem.csproj [0/0] MultiplePlatformProject.csproj [0/0] vb-sample.vbproj [0/0] vb-sample_VS2005.vbproj [0/0] XNAWindowsProject.csproj

[0/0] RuntimeFrameworkSelectorTests.cs [0/0] ServerUtilityTests.cs [0/0] ServiceManagerSetUpFixture.cs [0/0] SettingsGroupTests.cs [0/0] SummaryResultFixture.cs [0/0] TestAgencyTests.cs + [0/2] TestAgentTests.cs

Tasks: 227: "path" may possibly be null daniel.l BD.PB.STRNULL-2 ! TestAgentTests.cs (26): string path =

NUnit.Core.NUnitConfiguration.GetTestAgentExePath(Environment.Version);. NUnitConfiguration.cs (365): string binDir = GetNUnitBinDirectory(v);. NUnitConfiguration.cs (311): string dir = NUnitBinDirectory;. NUnitConfiguration.cs (139): if (nunitBinDirectory == null). NUnitConfiguration.cs (146): return nunitBinDirectory;. NUnitConfiguration.cs (147): }. NUnitConfiguration.cs (311): string dir = NUnitBinDirectory;. NUnitConfiguration.cs (313): if ((Environment.Version.Major >= 2) == (v.Major>= 2)). NUnitConfiguration.cs (314): return dir;. NUnitConfiguration.cs (361): }. NUnitConfiguration.cs (365): string binDir = GetNUnitBinDirectory(v);. NUnitConfiguration.cs (366): if ( binDir == null ). NUnitConfiguration.cs (369): Assembly a =System.Reflection.Assembly.GetEntryAssembly();. NUnitConfiguration.cs (370): string agentName = v.Major > 1#x26;#x26; a != null #x26;#x26; a.GetName().ProcessorArchitecture ==ProcessorArchitecture.X86 ? "nunit-a.... NUnitConfiguration.cs (377): string agentExePath = Path.Combine(binDir,agentName);.C NUnitConfiguration.cs (378): return File.Exists(agentExePath) ?agentExePath : null; // Null value carrier: CS$1$0000! NUnitConfiguration.cs (379): } // Null value carrier: CS$1$0000! TestAgentTests.cs (26): string path =NUnit.Core.NUnitConfiguration.GetTestAgentExePath(Environment.Version); //Null value carrier: GetTestAgentExePath(...)

Page 85: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 85

.P TestAgentTests.cs (27): Assert.That(System.IO.File.Exists(path), "Cannot find" + path); // Null value carrier: path

27: "path" may possibly be null daniel.l BD.PB.STRNULL-2 ! TestAgentTests.cs (26): string path =

NUnit.Core.NUnitConfiguration.GetTestAgentExePath(Environment.Version);. NUnitConfiguration.cs (365): string binDir = GetNUnitBinDirectory(v);. NUnitConfiguration.cs (311): string dir = NUnitBinDirectory;. NUnitConfiguration.cs (139): if (nunitBinDirectory == null). NUnitConfiguration.cs (141): nunitBinDirectory = NUnitLibDirectory;. NUnitConfiguration.cs (142): if (Path.GetFileName(nunitBinDirectory).ToLower()== "lib"). NUnitConfiguration.cs (146): return nunitBinDirectory;. NUnitConfiguration.cs (147): }. NUnitConfiguration.cs (311): string dir = NUnitBinDirectory;. NUnitConfiguration.cs (313): if ((Environment.Version.Major >= 2) == (v.Major>= 2)). NUnitConfiguration.cs (314): return dir;. NUnitConfiguration.cs (361): }. NUnitConfiguration.cs (365): string binDir = GetNUnitBinDirectory(v);.C NUnitConfiguration.cs (366): if ( binDir == null ) return null; // Null value carrier:CS$1$0000! NUnitConfiguration.cs (379): } // Null value carrier: CS$1$0000! TestAgentTests.cs (26): string path =NUnit.Core.NUnitConfiguration.GetTestAgentExePath(Environment.Version); //Null value carrier: GetTestAgentExePath(...).P TestAgentTests.cs (27): Assert.That(System.IO.File.Exists(path), "Cannot find" + path); // Null value carrier: path

+ [0/1] TestDomainFixture.csTasks: 1148: Stream not closed: sw.stream daniel.l BD.RES.LEAKS-1 . TestDomainFixture.cs (130): string badfile = Path.GetFullPath("x.dll");

.C TestDomainFixture.cs (133): StreamWriter sw = new StreamWriter( badfile ); //Allocated resource variable: new StreamWriter.stream!E TestDomainFixture.cs (136): sw.WriteLine("This is a new entry to add to thefile"); // TextWriter.WriteLine() throws: IOException // Allocated resource variable:sw.stream. TestDomainFixture.cs (144): if ( File.Exists( badfile ) ) // Allocated resourcevariable: sw.stream.P TestDomainFixture.cs (148): } // Allocated resource variable: sw.stream

[0/0] TestDomainTests_Multiple.cs [0/0] TestEventCatcher.cs + [0/1] TestLoaderAssemblyTests.cs

Tasks: 1133: Stream not closed: sw.stream daniel.l BD.RES.LEAKS-1 . TestLoaderAssemblyTests.cs (112): FileInfo file = new FileInfo(badFile);

.C TestLoaderAssemblyTests.cs (115): StreamWriter sw = file.AppendText(); //Allocated resource variable: file.AppendText().stream!E TestLoaderAssemblyTests.cs (116): sw.WriteLine("This is a new entry to addto the file"); // TextWriter.WriteLine() throws: IOException // Allocated resourcevariable: sw.stream. TestLoaderAssemblyTests.cs (130): if ( file.Exists ) // Allocated resourcevariable: sw.stream.P TestLoaderAssemblyTests.cs (133): } // Allocated resource variable: sw.stream

[0/0] TestLoaderWatcherTests.cs [0/0] TestRunnerFactoryTests.cs [0/0] TestServerTests.cs [0/0] VisualStudioConverterTests.cs + [0/1] VSProjectTests.cs

Tasks: 126: Stream not closed: writer.stream daniel.l BD.RES.LEAKS-1 .C VSProjectTests.cs (23): StreamWriter writer = new

StreamWriter( invalidFile ); // Allocated resource variable: newStreamWriter.stream!E VSProjectTests.cs (24): writer.WriteLine( text ); // TextWriter.WriteLine()throws: IOException // Allocated resource variable: writer.stream.P VSProjectTests.cs (26): } // Allocated resource variable: writer.stream

[0/0] XmlResultWriterTest.cs + [0/2] pnunit-agent

+ [0/1] agent.csTasks: 169: Leakage of reflection data ("log4netpath") via console daniel.l BD.SECURITY.SENS-1 .C agent.cs (68): string log4netpath =

Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),"agent.log.conf"); // Sensitive data: GetExecutingAssembly().get_Location()

Page 86: Nunit  C# source code  defects report by Parasoft dotTEST

Page 86 dotTEST Report [09/21/11 14:13:53]

.P agent.cs (69): Console.WriteLine(log4netpath); // Sensitive data: log4netpath + [0/1] AgentConfig.cs

Tasks: 119: Injection of parameter of entry point method ("file") to filename using method daniel.l BD.SECURITY.TDFNAMES-1 .C agent.cs (26): AgentConfig config = new AgentConfig(); // Tainted data: args

. agent.cs (30): ServiceManager.Services.AddService(new SettingsService()); //Tainted data: args. ServiceManager.cs (27): return defaultServiceManager; }. agent.cs (30): ServiceManager.Services.AddService(new SettingsService()); //Tainted data: args. agent.cs (31): ServiceManager.Services.AddService(new DomainManager()); //Tainted data: args. ServiceManager.cs (27): return defaultServiceManager; }. agent.cs (31): ServiceManager.Services.AddService(new DomainManager()); //Tainted data: args. agent.cs (33): ServiceManager.Services.AddService(new ProjectService()); //Tainted data: args. ServiceManager.cs (27): return defaultServiceManager; }. agent.cs (33): ServiceManager.Services.AddService(new ProjectService()); //Tainted data: args. agent.cs (37): if( args.Length != 1 #x26;#x26; args.Length != 2) // Tainted data:args. agent.cs (42): if (args.Length == 1) // Tainted data: args! agent.cs (45): string configfile = args[0]; // Tainted data: args! agent.cs (47): config = AgentConfigLoader.LoadFromFile(configfile); // Tainteddata: configfile.P AgentConfig.cs (19): FileStream reader = new FileStream(file, FileMode.Open,FileAccess.Read); // Tainted data: file

[0/0] App.config [0/0] AssemblyInfo.cs [0/0] PNUnitTestRunner.cs

+ [0/1] pnunit-launcher [0/0] App.config [0/0] AssemblyInfo.cs [0/0] Barrier.cs [0/0] launcher.cs [0/0] Runner.cs + [0/1] TestConf.cs

Tasks: 137: Injection of parameter of entry point method ("file") to filename using method daniel.l BD.SECURITY.TDFNAMES-1 .C launcher.cs (25): if( args.Length == 0 ) // Tainted data: args

! launcher.cs (31): string configfile = args[0]; // Tainted data: args! launcher.cs (33): TestGroup group = TestConfLoader.LoadFromFile(configfile); //Tainted data: configfile.P TestConf.cs (37): FileStream reader = new FileStream(file, FileMode.Open,FileAccess.Read); // Tainted data: file

+ [0/0] pnunit.framework [0/0] AssemblyInfo.cs [0/0] Interfaces.cs [0/0] PNUnitServices.cs

+ [0/0] pnunit.tests [0/0] AssemblyInfo.cs [0/0] Cmp.cs [0/0] Testing.cs

+ [0/0] test-assembly [0/0] AttributeDescriptionTests.cs [0/0] AttributeInheritance.cs [0/0] CategoryAttributeTests.cs [0/0] CommonAssemblyInfo.cs [0/0] ConsoleRunnerTest.cs [0/0] CultureAttributeTests.cs [0/0] DatapointFixture.cs [0/0] DirectoryChangeFixture.cs [0/0] ExpectExceptionTest.cs [0/0] FailFixtureTests.cs [0/0] FixtureSetUpTearDownTests.cs [0/0] IgnoreFixtureTests.cs [0/0] LegacySuiteData.cs [0/0] MaxTimeFixture.cs [0/0] ParameterizedTestFixture.cs [0/0] PropertyAttributeTests.cs [0/0] RepeatedTestFixtureTests.cs [0/0] SetupFixtureTests.cs [0/0] SetUpTest.cs [0/0] TestCaseAttributeFixture.cs [0/0] TestCaseSourceAttributeFixture.cs [0/0] TestCaseTest.cs

Page 87: Nunit  C# source code  defects report by Parasoft dotTEST

dotTEST Report [09/21/11 14:13:53] Page 87

[0/0] TestContextData.cs [0/0] TestData.cs [0/0] TestFixtureBuilderTests.cs [0/0] TestFixtureData.cs [0/0] TestFixtureExtensionTests.cs [0/0] TestMethodSignatureFixture.cs [0/0] TheoryFixture.cs [0/0] ThreadingFixture.cs [0/0] TypeHelperFixture.cs [0/0] UnhandledExceptions.cs

+ [0/1] test-utilities [0/0] CommonAssemblyInfo.cs [0/0] FormTester.cs [0/0] MockTestEventSource.cs + [0/1] TempResourceFile.cs

Tasks: 135: Stream not closed: stream daniel.l BD.RES.LEAKS-1 . TempResourceFile.cs (18): public TempResourceFile(Type type, string name,

string path). TempResourceFile.cs (20): this.path = path;.C TempResourceFile.cs (21): Stream stream =type.Assembly.GetManifestResourceStream(type, name); // Allocated resourcevariable: type.get_Assembly().GetManifestResourceStream(...). TempResourceFile.cs (22): byte[] buffer = new byte[(int)stream.Length]; //Allocated resource variable: stream!E TempResourceFile.cs (23): stream.Read(buffer, 0, buffer.Length); //Stream.Read() throws: IOException // Allocated resource variable: stream.P TempResourceFile.cs (35): } // Allocated resource variable: stream

[0/0] TestAssert.cs [0/0] TestBuilder.cs [0/0] TestFinder.cs

+ [0/0] timing-tests [0/0] AssemblyLoadTests.cs [0/0] ClientTimeoutFixture.cs [0/0] CommonAssemblyInfo.cs

BugDetective Legend: C - violation cause E - throws an exception P - violation point ! - important data flow

Active Rules

[0/7] Collection Usage Guidelines (ARRU) [20/21] BugDetective (License Required) (BD) [1/1] Threads & Synchronization (BD.TRS) Do not abandon unreleased mutexes (BD.TRS.MUTEX-1) [1/1] Resources (BD.RES) Ensure resources are deallocated (BD.RES.LEAKS-1) [1/1] Collections (BD.CO) Do not modify collection while iterating over it (BD.CO.ITMOD-1) [2/2] Exceptions (BD.EXCEPT) Avoid ArgumentNullException (BD.EXCEPT.AN-1) Avoid NullReferenceException (BD.EXCEPT.NR-1) [10/11] Security (BD.SECURITY) Prevent exposure of sensitive data (BD.SECURITY.SENS-1) Protect against command injection (BD.SECURITY.TDCMD-1) Protect against file name injection (BD.SECURITY.TDFNAMES-1) Protect against LDAP injection (BD.SECURITY.TDLDAP-1) Protect against log forging (BD.SECURITY.TDLOG-1) Protect against network resource injection (BD.SECURITY.TDNET-1) Protect against HTTP response splitting (BD.SECURITY.TDRESP-1) Protect against SQL query injection (BD.SECURITY.TDSQL-1) Protect against SQL connection injection (BD.SECURITY.TDSQLC-1) Protect against XSS vulnerabilities (BD.SECURITY.TDXSS-1) [5/5] Possible Bugs (BD.PB) Avoid division by zero (BD.PB.ZERO-1) Avoid dereferencing before checking for null (BD.PB.DEREF-2) Do not use disposed resources (BD.PB.DISP-2) Do not use managed resources in finalizers (BD.PB.FIN-2) Do not append null value to strings (BD.PB.STRNULL-2) [0/16] Better readability and maintainability (BRM) [0/1] Commentaries (BRM.CMT) [0/19] CLS Compliance (CLS) [0/42] Class Member Usage Guidelines (CMUG) [0/7] Constructor Usage (CMUG.CU) [0/5] Field Usage (CMUG.FU) [0/13] Property Usage (CMUG.PRU) [0/10] Method Usage (CMUG.MU)

Page 88: Nunit  C# source code  defects report by Parasoft dotTEST

Page 88 dotTEST Report [09/21/11 14:13:53]

[0/7] Event Usage (CMUG.EVU) [0/5] COM Guidelines (COM) [0/60] CSharp only (CS) [0/5] Better readability and maintainability (CS.BRM) [0/3] Serialization Guidelines. (CS.SERIAL) [0/1] Operator Overloading Usage Guidelines (CS.OPU) [0/20] Possible Bugs (CS.PB) [0/1] Logical Errors (CS.PB.LOGIC) [0/1] Numerical Errors (CS.PB.NUM) [0/1] Implementing Finalize and Dispose (CS.IFD) [0/1] Internationalization (CS.INTER) [0/3] Threads & Synchronization (CS.TRS) [0/4] Security inspection (CS.SEC) [0/1] Possiple Exception (CS.PE) [0/1] Exceptions (CS.EXCEPT) [0/1] Class Member Usage Guidelines (CS.CMUG) [0/1] Property Usage (CS.CMUG.PRU) [0/2] Object Oriented Metrics (CS.OOM) [0/3] Casting Types Guidelines (CT) [0/4] Error Raising and Handling (ERR) [0/4] Exceptions (EXCEPT) [0/3] Garbage Collector (GC) [0/20] Implementing Finalize and Dispose (IFD) [0/2] Internationalization (INTER) [0/13] Metrics (METRICS) [0/121] Naming Guidelines (NG) [0/1] Attribute Naming (NG.AN) [0/2] Property Naming (NG.PRN) [0/28] Capitalization Styles (NG.CAPSTY) [0/2] Camel Case for Names (NG.CAPSTY.CAMEL) [0/13] Pascal Case for Names (NG.CAPSTY.PASCAL) [0/13] Upper Case for Names (NG.CAPSTY.UPPER) [0/5] Class Naming (NG.CN) [0/5] Case Sensitivity (NG.CASE) [0/6] Event Naming (NG.EVN) [0/13] Avoiding Type Name Confusion (NG.ATNC) [0/11] Use universal type names (NG.ATNC.UUTN) [0/2] Avoid language-specific names (NG.ATNC.ALSN) [0/1] Field Naming (NG.FN) [0/2] Parameter Naming (NG.PN) [0/4] Enumeration Type Naming (NG.ETN) [0/11] Avoid mysterious acronyms (NG.MYST) [0/2] Static Field Naming (NG.SFN) [0/11] Well known acronyms (NG.ACRO) [0/11] Abbreviations (NG.ABBR) [0/16] Word Choice (NG.WC) [0/11] Conflicting with Keywords (NG.WC.KEYWORD) [0/5] Common Names (NG.WC.COMMON) [0/2] Interface Naming (NG.IN) [0/1] Namespace Naming (NG.NN) [0/12] Object Oriented Metrics (OOM) [0/18] Operator Overloading Usage Guidelines (OPU) [0/18] Possible Bugs (PB) [0/28] Security Inspection (License Required) (SEC) [0/14] Serialization Guidelines (SERIAL) [0/8] Xml Serialization Guidelines (SERIAL.XML) [0/6] Security Policy Rules (License Required) (SPR) [0/19] Type Usage Guidelines (TUG) [0/1] Struct Usage (TUG.SU) [0/2] Nested Type Usage (TUG.NTU) [0/4] Attribute Usage (TUG.AU) [0/1] Derived Class Usage (TUG.DCU) [0/2] Sealed Class Usage (TUG.SCU) [0/3] Base Class Usage (TUG.BCU) [0/6] Enum Usage (TUG.EU) [0/2] Windows Presentation Foundation (WPF)

©Parasoft Corp. - dotTEST 9.1.0.57 Reporting System