Files
Tom Hvitved d2a431e6f3 C#: Add more nullness tests
Port many of the nullness test from Java, as well as add new tests.
2018-11-30 17:02:05 +01:00

56 lines
1.5 KiB
C#

using System;
using System.Diagnostics;
using Microsoft.VisualStudio.TestTools.UnitTesting;
class AssertTests
{
void Fn(bool b)
{
string s = b ? null : "";
Debug.Assert(s != null);
Console.WriteLine(s.Length); // GOOD
s = b ? null : "";
Assert.IsNull(s);
Console.WriteLine(s.Length); // BAD (always)
s = b ? null : "";
Assert.IsNotNull(s);
Console.WriteLine(s.Length); // GOOD
s = b ? null : "";
Assert.IsTrue(s == null);
Console.WriteLine(s.Length); // BAD (always)
s = b ? null : "";
Assert.IsTrue(s != null);
Console.WriteLine(s.Length); // GOOD
s = b ? null : "";
Assert.IsFalse(s != null);
Console.WriteLine(s.Length); // BAD (always)
s = b ? null : "";
Assert.IsFalse(s == null);
Console.WriteLine(s.Length); // GOOD
s = b ? null : "";
Assert.IsTrue(s != null && b);
Console.WriteLine(s.Length); // GOOD
s = b ? null : "";
Assert.IsFalse(s == null || b);
Console.WriteLine(s.Length); // GOOD
s = b ? null : "";
Assert.IsTrue(s == null && b);
Console.WriteLine(s.Length); // BAD (always)
s = b ? null : "";
Assert.IsFalse(s != null || b);
Console.WriteLine(s.Length); // BAD (always)
}
}
// semmle-extractor-options: ${testdir}/../../resources/stubs/Microsoft.VisualStudio.TestTools.UnitTesting.cs