SlideShare a Scribd company logo
Thread base theory test
Thread base theory test
Thread base theory test
Thread base theory test
[TestMethod]
public void ExplorePossibleRaceCondition()
{
var random = new Random();
Func<int[]> inputGenerator =
() => new int[] { random.Next(1000),
random.Next(1000),
random.Next(1000) };
Func<int[], string> toString =
n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]);
var stateCalulator = new StateCalulator();
Func<int[], object> raceConditionsFunction =
s=> stateCalulator.Sum(s[0],s[1],s[2]);
Func<int[], object> knownGoodFunction =
f => new StateCalulator().Sum(f[0],f[1],f[2]);
ThreadSafetyTheory.VerifyNoRaceConditions(10000,
inputGenerator, toString,
raceConditionsFunction, knownGoodFunction);
}
[TestMethod]
public void ExplorePossibleRaceCondition()
{
var random = new Random();
Func<int[]> inputGenerator =
() => new int[] { random.Next(1000),
random.Next(1000),
random.Next(1000) };
Func<int[], string> toString =
n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]);
var stateCalulator = new StateCalulator();
Func<int[], object> raceConditionsFunction =
s=> stateCalulator.Sum(s[0],s[1],s[2]);
Func<int[], object> knownGoodFunction =
f => new StateCalulator().Sum(f[0],f[1],f[2]);
ThreadSafetyTheory.VerifyNoRaceConditions(10000,
inputGenerator, toString,
raceConditionsFunction, knownGoodFunction);
}
[TestMethod]
public void ExplorePossibleRaceCondition()
{
var random = new Random();
Func<int[]> inputGenerator =
() => new int[] { random.Next(1000),
random.Next(1000),
random.Next(1000) };
Func<int[], string> toString =
n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]);
var stateCalulator = new StateCalulator();
Func<int[], object> raceConditionsFunction =
s=> stateCalulator.Sum(s[0],s[1],s[2]);
Func<int[], object> knownGoodFunction =
f => new StateCalulator().Sum(f[0],f[1],f[2]);
ThreadSafetyTheory.VerifyNoRaceConditions(10000,
inputGenerator, toString,
raceConditionsFunction, knownGoodFunction);
}
[TestMethod]
public void ExplorePossibleRaceCondition()
{
var random = new Random();
Func<int[]> inputGenerator =
() => new int[] { random.Next(1000),
random.Next(1000),
random.Next(1000) };
Func<int[], string> toString =
n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]);
var stateCalulator = new StateCalulator();
Func<int[], object> raceConditionsFunction =
s=> stateCalulator.Sum(s[0],s[1],s[2]);
Func<int[], object> knownGoodFunction =
f => new StateCalulator().Sum(f[0],f[1],f[2]);
ThreadSafetyTheory.VerifyNoRaceConditions(10000,
inputGenerator, toString,
raceConditionsFunction, knownGoodFunction);
}
[TestMethod]
public void ExplorePossibleRaceCondition()
{
var random = new Random();
Func<int[]> inputGenerator =
() => new int[] { random.Next(1000),
random.Next(1000),
random.Next(1000) };
Func<int[], string> toString =
n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]);
var stateCalulator = new StateCalulator();
Func<int[], object> raceConditionsFunction =
s=> stateCalulator.Sum(s[0],s[1],s[2]);
Func<int[], object> knownGoodFunction =
f => new StateCalulator().Sum(f[0],f[1],f[2]);
ThreadSafetyTheory.VerifyNoRaceConditions(10000,
inputGenerator, toString,
raceConditionsFunction, knownGoodFunction);
}
[TestMethod]
public void ExplorePossibleRaceCondition()
{
var random = new Random();
Func<int[]> inputGenerator =
() => new int[] { random.Next(1000),
random.Next(1000),
random.Next(1000) };
Func<int[], string> toString =
n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]);
var stateCalulator = new StateCalulator();
Func<int[], object> raceConditionsFunction =
s=> stateCalulator.Sum(s[0],s[1],s[2]);
Func<int[], object> knownGoodFunction =
f => new StateCalulator().Sum(f[0],f[1],f[2]);
ThreadSafetyTheory.VerifyNoRaceConditions(10000,
inputGenerator, toString,
raceConditionsFunction, knownGoodFunction);
}
[TestMethod]
public void ExplorePossibleRaceCondition()
{
var random = new Random();
Func<int[]> inputGenerator =
() => new int[] { random.Next(1000),
random.Next(1000),
random.Next(1000) };
Func<int[], string> toString =
n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]);
var stateCalulator = new StateCalulator();
Func<int[], object> raceConditionsFunction =
s=> stateCalulator.Sum(s[0],s[1],s[2]);
Func<int[], object> knownGoodFunction =
f => new StateCalulator().Sum(f[0],f[1],f[2]);
ThreadSafetyTheory.VerifyNoRaceConditions(10000,
inputGenerator, toString,
raceConditionsFunction, knownGoodFunction);
}
[TestMethod]
public void ExplorePossibleRaceCondition()
{
var random = new Random();
Func<int[]> inputGenerator =
() => new int[] { random.Next(1000),
random.Next(1000),
random.Next(1000) };
Func<int[], string> toString =
n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]);
var stateCalulator = new StateCalulator();
Func<int[], object> raceConditionsFunction =
s=> stateCalulator.Sum(s[0],s[1],s[2]);
Func<int[], object> knownGoodFunction =
f => new StateCalulator().Sum(f[0],f[1],f[2]);
ThreadSafetyTheory.VerifyNoRaceConditions(10000,
inputGenerator, toString,
raceConditionsFunction, knownGoodFunction);
}
[TestMethod]
public void ExplorePossibleRaceCondition()
{
var random = new Random();
Func<int[]> inputGenerator =
() => new int[] { random.Next(1000),
random.Next(1000),
random.Next(1000) };
Func<int[], string> toString =
n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]);
var stateCalulator = new StateCalulator();
Func<int[], object> raceConditionsFunction =
s=> stateCalulator.Sum(s[0],s[1],s[2]);
Func<int[], object> knownGoodFunction =
f => new StateCalulator().Sum(f[0],f[1],f[2]);
ThreadSafetyTheory.VerifyNoRaceConditions(10000,
inputGenerator, toString,
raceConditionsFunction, knownGoodFunction);
}
Thread base theory test
Thread base theory test
ApprovalTests

More Related Content

Thread base theory test

  • 5. [TestMethod] public void ExplorePossibleRaceCondition() { var random = new Random(); Func<int[]> inputGenerator = () => new int[] { random.Next(1000), random.Next(1000), random.Next(1000) }; Func<int[], string> toString = n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]); var stateCalulator = new StateCalulator(); Func<int[], object> raceConditionsFunction = s=> stateCalulator.Sum(s[0],s[1],s[2]); Func<int[], object> knownGoodFunction = f => new StateCalulator().Sum(f[0],f[1],f[2]); ThreadSafetyTheory.VerifyNoRaceConditions(10000, inputGenerator, toString, raceConditionsFunction, knownGoodFunction); }
  • 6. [TestMethod] public void ExplorePossibleRaceCondition() { var random = new Random(); Func<int[]> inputGenerator = () => new int[] { random.Next(1000), random.Next(1000), random.Next(1000) }; Func<int[], string> toString = n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]); var stateCalulator = new StateCalulator(); Func<int[], object> raceConditionsFunction = s=> stateCalulator.Sum(s[0],s[1],s[2]); Func<int[], object> knownGoodFunction = f => new StateCalulator().Sum(f[0],f[1],f[2]); ThreadSafetyTheory.VerifyNoRaceConditions(10000, inputGenerator, toString, raceConditionsFunction, knownGoodFunction); }
  • 7. [TestMethod] public void ExplorePossibleRaceCondition() { var random = new Random(); Func<int[]> inputGenerator = () => new int[] { random.Next(1000), random.Next(1000), random.Next(1000) }; Func<int[], string> toString = n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]); var stateCalulator = new StateCalulator(); Func<int[], object> raceConditionsFunction = s=> stateCalulator.Sum(s[0],s[1],s[2]); Func<int[], object> knownGoodFunction = f => new StateCalulator().Sum(f[0],f[1],f[2]); ThreadSafetyTheory.VerifyNoRaceConditions(10000, inputGenerator, toString, raceConditionsFunction, knownGoodFunction); }
  • 8. [TestMethod] public void ExplorePossibleRaceCondition() { var random = new Random(); Func<int[]> inputGenerator = () => new int[] { random.Next(1000), random.Next(1000), random.Next(1000) }; Func<int[], string> toString = n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]); var stateCalulator = new StateCalulator(); Func<int[], object> raceConditionsFunction = s=> stateCalulator.Sum(s[0],s[1],s[2]); Func<int[], object> knownGoodFunction = f => new StateCalulator().Sum(f[0],f[1],f[2]); ThreadSafetyTheory.VerifyNoRaceConditions(10000, inputGenerator, toString, raceConditionsFunction, knownGoodFunction); }
  • 9. [TestMethod] public void ExplorePossibleRaceCondition() { var random = new Random(); Func<int[]> inputGenerator = () => new int[] { random.Next(1000), random.Next(1000), random.Next(1000) }; Func<int[], string> toString = n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]); var stateCalulator = new StateCalulator(); Func<int[], object> raceConditionsFunction = s=> stateCalulator.Sum(s[0],s[1],s[2]); Func<int[], object> knownGoodFunction = f => new StateCalulator().Sum(f[0],f[1],f[2]); ThreadSafetyTheory.VerifyNoRaceConditions(10000, inputGenerator, toString, raceConditionsFunction, knownGoodFunction); }
  • 10. [TestMethod] public void ExplorePossibleRaceCondition() { var random = new Random(); Func<int[]> inputGenerator = () => new int[] { random.Next(1000), random.Next(1000), random.Next(1000) }; Func<int[], string> toString = n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]); var stateCalulator = new StateCalulator(); Func<int[], object> raceConditionsFunction = s=> stateCalulator.Sum(s[0],s[1],s[2]); Func<int[], object> knownGoodFunction = f => new StateCalulator().Sum(f[0],f[1],f[2]); ThreadSafetyTheory.VerifyNoRaceConditions(10000, inputGenerator, toString, raceConditionsFunction, knownGoodFunction); }
  • 11. [TestMethod] public void ExplorePossibleRaceCondition() { var random = new Random(); Func<int[]> inputGenerator = () => new int[] { random.Next(1000), random.Next(1000), random.Next(1000) }; Func<int[], string> toString = n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]); var stateCalulator = new StateCalulator(); Func<int[], object> raceConditionsFunction = s=> stateCalulator.Sum(s[0],s[1],s[2]); Func<int[], object> knownGoodFunction = f => new StateCalulator().Sum(f[0],f[1],f[2]); ThreadSafetyTheory.VerifyNoRaceConditions(10000, inputGenerator, toString, raceConditionsFunction, knownGoodFunction); }
  • 12. [TestMethod] public void ExplorePossibleRaceCondition() { var random = new Random(); Func<int[]> inputGenerator = () => new int[] { random.Next(1000), random.Next(1000), random.Next(1000) }; Func<int[], string> toString = n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]); var stateCalulator = new StateCalulator(); Func<int[], object> raceConditionsFunction = s=> stateCalulator.Sum(s[0],s[1],s[2]); Func<int[], object> knownGoodFunction = f => new StateCalulator().Sum(f[0],f[1],f[2]); ThreadSafetyTheory.VerifyNoRaceConditions(10000, inputGenerator, toString, raceConditionsFunction, knownGoodFunction); }
  • 13. [TestMethod] public void ExplorePossibleRaceCondition() { var random = new Random(); Func<int[]> inputGenerator = () => new int[] { random.Next(1000), random.Next(1000), random.Next(1000) }; Func<int[], string> toString = n => string.Format("{0} + {1} + {2} = ", n[0], n[1], n[2]); var stateCalulator = new StateCalulator(); Func<int[], object> raceConditionsFunction = s=> stateCalulator.Sum(s[0],s[1],s[2]); Func<int[], object> knownGoodFunction = f => new StateCalulator().Sum(f[0],f[1],f[2]); ThreadSafetyTheory.VerifyNoRaceConditions(10000, inputGenerator, toString, raceConditionsFunction, knownGoodFunction); }