SSH e2e: Limit to 100 nodes, limit combinatorics

This limits the "for all hosts" to 100 nodes, and also limits the
combinatorial section so that we only do the other SSH command variant
testing on the first host rather than *all* of the hosts. I also
killed one of the variants because it didn't seem to be testing much
important.

Fixes #26600
pull/6/head
Zach Loafman 2016-05-31 17:24:33 -07:00
parent 430bb9442a
commit 3d66c3be82
1 changed files with 18 additions and 6 deletions

View File

@ -25,6 +25,8 @@ import (
. "github.com/onsi/ginkgo"
)
const maxNodes = 100
var _ = framework.KubeDescribe("SSH", func() {
f := framework.NewDefaultFramework("ssh")
@ -50,17 +52,27 @@ var _ = framework.KubeDescribe("SSH", func() {
expectedCode int
expectedError error
}{
{`echo "Hello"`, true, "Hello", "", 0, nil},
// Same as previous, but useful for test output diagnostics.
// Keep this test first - this variant runs on all nodes.
{`echo "Hello from $(whoami)@$(hostname)"`, false, "", "", 0, nil},
{`echo "foo" | grep "bar"`, true, "", "", 1, nil},
{`echo "Out" && echo "Error" >&2 && exit 7`, true, "Out", "Error", 7, nil},
}
// Run commands on all nodes via SSH.
for _, testCase := range testCases {
By(fmt.Sprintf("SSH'ing to all nodes and running %s", testCase.cmd))
for _, host := range hosts {
for i, testCase := range testCases {
// Only run the first testcase against max 100 nodes. Run
// the rest against the first node we find only, since
// they're basically testing SSH semantics (and we don't
// need to do that against each host in the cluster).
nodes := len(hosts)
if i > 0 {
nodes = 1
} else if nodes > maxNodes {
nodes = maxNodes
}
testhosts := hosts[:nodes]
By(fmt.Sprintf("SSH'ing to %d nodes and running %s", len(testhosts), testCase.cmd))
for _, host := range testhosts {
result, err := framework.SSH(testCase.cmd, host, framework.TestContext.Provider)
stdout, stderr := strings.TrimSpace(result.Stdout), strings.TrimSpace(result.Stderr)
if err != testCase.expectedError {