Giter Site home page Giter Site logo

bchavez / havoc Goto Github PK

View Code? Open in Web Editor NEW
33.0 4.0 1.0 87 KB

:volcano: A set of dangerous algorithms that cause havoc in .NET applications and operating systems for use in chaos engineering.

License: Other

C# 58.82% F# 40.96% Batchfile 0.23%
chaos-engineering chaos-monkey chaos failure failure-injection failure-injection-testing

havoc's Introduction

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.