Files
coredns/plugin/erratic
Miek Gieben f3134da45e Clean up tests logging (#1979)
* Clean up tests logging

This cleans up the travis logs so you can see the failures better.

Older tests in tests/ would call log.SetOutput(ioutil.Discard) in
a haphazard way. This add log.Discard and put an `init` function in each
package's dir (no way to do this globally). The cleanup in tests/ is
clear.

All plugins also got this init function to have some uniformity and kill
any (future) logging there in the tests as well.

There is a one-off in pkg/healthcheck because that does log.

Signed-off-by: Miek Gieben <miek@miek.nl>

* bring back original log_test.go

Signed-off-by: Miek Gieben <miek@miek.nl>

* suppress logging here as well

Signed-off-by: Miek Gieben <miek@miek.nl>
2018-07-19 16:23:06 +01:00
..
2017-09-14 09:36:06 +01:00
2018-05-17 16:59:57 -04:00
2018-07-19 16:23:06 +01:00
2018-02-08 10:55:51 +00:00
2018-02-28 19:56:14 -08:00
2018-02-28 19:56:14 -08:00

erratic

Name

erratic - a plugin useful for testing client behavior.

Description

erratic returns a static response to all queries, but the responses can be delayed, dropped or truncated. The erratic plugin will respond to every A or AAAA query. For any other type it will return a SERVFAIL response. The reply for A will return 192.0.2.53 (see RFC 5737, for AAAA it returns 2001:DB8::53 (see RFC 3849).

erratic can also be used in conjunction with the autopath plugin. This is mostly to aid in testing.

Syntax

erratic {
    drop [AMOUNT]
    truncate [AMOUNT]
    delay [AMOUNT [DURATION]]
}
  • drop: drop 1 per AMOUNT of queries, the default is 2.
  • truncate: truncate 1 per AMOUNT of queries, the default is 2.
  • delay: delay 1 per AMOUNT of queries for DURATION, the default for AMOUNT is 2 and the default for DURATION is 100ms.

Health

This plugin implements dynamic health checking. For every dropped query it turns unhealthy.

Examples

. {
    erratic {
        drop 3
    }
}

Or even shorter if the defaults suits you. Note this only drops queries, it does not delay them.

. {
    erratic
}

Delay 1 in 3 queries for 50ms

. {
    erratic {
        delay 3 50ms
    }
}

Delay 1 in 3 and truncate 1 in 5.

. {
    erratic {
        delay 3 5ms
        truncate 5
    }
}

Drop every second query.

. {
    erratic {
        drop 2
        truncate 2
    }
}

Also See

RFC 3849 and RFC 5737.