Skip to content

Latest commit

 

History

History
72 lines (60 loc) · 4.63 KB

README.md

File metadata and controls

72 lines (60 loc) · 4.63 KB

Downloads Build status Twitter

Havoc

Project Description

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! 😄 💫 💪

Download & Install

Nuget Package Havoc

Install-Package Havoc

Minimum Requirements: .NET Standard 2.0 or .NET Framework 4.0.

Usage

Havoc Scenarios

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 calls Abort() randomly causing thread pool threads to randomly abort executing code.
    • ProcessExit - Calls Environment.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 causes OutOfMemoryException.
    • 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 of System.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.