Hello. I'm your host Brian Chavez (twitter). Havoc is a collection of dangerous code that wreck havoc in .NET applications and the operating system for chaos-engineering. Havoc is built on Bogus generator fake data generator for .NET.
Havoc can help you stress test your .NET applications under various load conditions, simulation, fault and failure-injection scenarios. If you like Havoc star ⭐ the repository and show your friends! 😄 💫 💪
Nuget Package Havoc
Install-Package Havoc
Minimum Requirements: .NET Standard 2.0 or .NET Framework 4.0.
Legend: ❌ - Not Implemented Yet.
Cpu
Stress
- Saturate the CPU with excessive computational work.- ❌
ContextSwitching
- Create a high amount of thread context switching.
Process
- ❌
MassDeadlock
- Create a massive mount of deadlocked threads. MassThread
- Create a massive amount of threads in a process.FileOpenHandles
- Excessively create large amount of open file handles.ThreadPoolStarvation
- Create a situation where the thead pool is starved.ThreadPoolChaos
- Keeps reference to thread pool threads, then later callsAbort()
randomly causing thread pool threads to randomly abort executing code.ProcessExit
- CallsEnvironment.FailFast
and terminates the current running process immediately.
- ❌
Disk
CachedWrites
- Write as fast as possible using the same data to disk.- ❌
CachedReads
- Read as fast as possible reading the same data on disk. - ❌
RandomWrites
- Write random data to disk as fast as possible. - ❌
RandomReads
- Read random data on disk as fast as possible. - ❌
RandomIO
- Random reads and writes as fast as possible. - ❌
CachedIO
- Cached reads and writes as fast as possible.
Memory
MemoryLeak
- Create a slow memory leak situation.OutOfMemory
- Excessive memory allocation that causesOutOfMemoryException
.StackOverflow
- Generate a stack overflow exception.- ❌
ExcessiveGC
- Create a work load that causes excessive amounts of GC pauses. - ❌
MemoryCorruption
- Reflects into object and manipulates private values. - ❌
DotNetFrameworkCorruption
- Static values in the .NET Framework are manipulated at runtime with various out of range values that can cause problems if calling code is invoked.
Network
LocalTcpPortExhaustionAsync
- Exhaust the number of available TCP/IP ports on the local operating system.- ❌
TcpConnectionExhaustion
- Create a massive amount of TCP/IP connections to a given host. - ❌
TcpSend
- Sends TCP data as fast as possible saturating a TCP link with random data. - ❌
UdpSend
- Send UDP data as fast as possible saturating UDP packets with random data.
Os
- ❌
WaitHandles
- Create a massive amount of wait handles registered in the operating system. MassMutex
- Register a massive amount of handles in the operating system.MassSystemTimer
- Create massive amounts ofSystem.Timers.Timer
that fire at random times.- ❌
Processes
- Create a massive amount of processes in the operating system.
- ❌
Windows
- ❌
BlueScreen
- Cause a blue screen kernel bug check.
- ❌
Dangerous
- ❌
DiskCorruption
- Randomly modify executing assembly and reference assemblies. DiskFull
- Continuously fill the disk until there is no free space left.WriteEicar
- Write an EICAR test string to disk that will cause an anti-virus scanners to trigger.WriteEicarMany
- Write an anti-virus test string to a folder on disk, creating as many Eicar files as possible. The directory will be filled with random file names and their contents with the Eicar test value.
- ❌