It's been a longterm pet peeve of mine that we don't name test functions TestAutoTLS etc, because this
function will mutilate the names in to t-l-s, etc.
So collect a list of well known names and catch them separately.
This is not superperformant, some trie would do this job better, but since
this is test name generation, I'll let it slide :-D
* Shorten object name to avoid DNS issue defined (RFC 1035)
In serving, when running e2e test after changing the domainTempalte to
`{{.Name}}-{{.Namespace}}.{{Domain}}`, some tests failed with
following error:
```
Retrying for DNS error: Get http://service-to-service-call-via-activator-a-disabled-qgoluwzd-serving-tests.apps.ci-op-y42hx5lj-23b3e.origin-ci-int-aws.dev.rhcloud.com: dial tcp: lookup service-to-service-call-via-activator-a-disabled-qgoluwzd-serving-tests.apps.ci-op-y42hx5lj-23b3e.origin-ci-int-aws.dev.rhcloud.com: no such host
```
This is because DNS
label(`service-to-service-call-via-activator-a-disabled-qgoluwzd-serving-tests`)
became longer than 63 characters (RFC 1035).
To fix it, this patch changes the object name to less than 35
characters.
Note, the `35` is estimated by `Max(63) - (namespace(23) + buffer(5))`.
* Use kmeta.ChildName
Working to introduce structured logging to our tests. See #907
This work allows these test functions to be called by objects other
than *testing.T. The t.Error() calls are made compatible with
structured logging (wrapping Zap sugared logger calls) or code using
testing.T.
* add slack operations and the main alerter
* function renaming
* solve the codereview issues
* address feedbacks
* add unit test and fix some old unit tests
* Simplify and comment AppenRandomString
Port and rewrite the comment from the original.
Remove the sync.Once(). Initializing during package initialization is just as good.
Mutex doesn't have to be a pointer
* remove fancy rnd, remove mutex, add example, which would also check compilation
* actually commit the example
* add licence