You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Armin Balalaie (JIRA)" <ji...@apache.org> on 2019/04/05 23:41:00 UTC
[jira] [Created] (GEODE-6610) Using Failify for e2e testing of
Geode
Armin Balalaie created GEODE-6610:
-------------------------------------
Summary: Using Failify for e2e testing of Geode
Key: GEODE-6610
URL: https://issues.apache.org/jira/browse/GEODE-6610
Project: Geode
Issue Type: Test
Reporter: Armin Balalaie
Hi,
I am the author of Failify, a test framework for end-to-end testing of distributed systems. Failify can be used to deterministically inject failures during a normal test case execution. Currently, node failure, network partition, network delay, network packet loss, and clock drift is supported. For a few supported languages (right now, Java and Scala), it is possible to enforce a specific order between nodes in order to reproduce a specific time-sensitive scenario and inject failures before or after a specific method is called when a specific stack trace is present. You can find more information in [https://failify.io|https://failify.io/].
My reasons for Failify being useful to Geode are:
* It is Docker-based and less messy and you can run the test cases in a single node and in parallel (there are plans for implementing the ability of deploying the same test case on a K8S or a Swarm cluster).
* It is Docker-based so you can easily have test cases that run on different OSes. Also, you can define the services you depend on as another node in your deployment definition.
* You can inject fault including network partition, clock drift, node failure, network delay and loss in your regular JUnit test cases by just calling a method
* There will be more control over when a failure should be introduced in a test case.
* You can write your test cases in Java or Scala or any other language that can be run on JVM and can use Java libraries.
* It can be easily integrated into your build pipeline as you will be writing your regular JUnit test cases.
* The API is compact and intuitive and there is a good documentation for the tool
Please let me know if you want to give it a try.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)