test: add additional checks, waits in integration tests (#12056)

This commit is contained in:
Joshua Powers 2022-10-19 09:54:00 -06:00 committed by GitHub
parent df8bd32b22
commit c5e2c7aa00
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 5 deletions

View File

@ -26,7 +26,7 @@ func TestMysqlDefaultsToLocalIntegration(t *testing.T) {
},
ExposedPorts: []string{servicePort},
WaitingFor: wait.ForAll(
wait.ForLog("/usr/sbin/mysqld: ready for connections"),
wait.ForLog("/usr/sbin/mysqld: ready for connections").WithOccurrence(2),
wait.ForListeningPort(nat.Port(servicePort)),
),
}
@ -63,7 +63,7 @@ func TestMysqlMultipleInstancesIntegration(t *testing.T) {
},
ExposedPorts: []string{servicePort},
WaitingFor: wait.ForAll(
wait.ForLog("/usr/sbin/mysqld: ready for connections"),
wait.ForLog("/usr/sbin/mysqld: ready for connections").WithOccurrence(2),
wait.ForListeningPort(nat.Port(servicePort)),
),
}

View File

@ -2,9 +2,11 @@ package sql
import (
"fmt"
"io"
"math/rand"
"os"
"path/filepath"
"strings"
"testing"
"time"
@ -263,7 +265,7 @@ func TestPostgresIntegration(t *testing.T) {
ExposedPorts: []string{servicePort},
WaitingFor: wait.ForAll(
wait.ForListeningPort(nat.Port(servicePort)),
wait.ForLog("database system is ready to accept connections"),
wait.ForLog("database system is ready to accept connections").WithOccurrence(2),
),
}
err = container.Start()
@ -352,7 +354,7 @@ func TestClickHouseIntegration(t *testing.T) {
WaitingFor: wait.ForAll(
wait.NewHTTPStrategy("/").WithPort(nat.Port("8123")),
wait.ForListeningPort(nat.Port(servicePort)),
wait.ForLog("Saved preprocessed configuration to '/var/lib/clickhouse/preprocessed_configs/users.xml'"),
wait.ForLog("Saved preprocessed configuration to '/var/lib/clickhouse/preprocessed_configs/users.xml'").WithOccurrence(2),
),
}
err = container.Start()
@ -379,9 +381,27 @@ func TestClickHouseIntegration(t *testing.T) {
p.Convert.ConversionStyle = "literal"
require.NoError(t, p.Connect())
require.NoError(t, p.Write(testMetrics))
// wait for last test metric to get written
require.Eventually(t, func() bool {
var out io.Reader
_, out, err = container.Exec([]string{
"bash",
"-c",
"clickhouse-client" +
" --user=" + username +
" --database=" + dbname +
" --format=TabSeparatedRaw" +
" --multiquery --query=" +
"\"SELECT * FROM \\\"metric three\\\"\";",
})
require.NoError(t, err)
bytes, err := io.ReadAll(out)
require.NoError(t, err)
return strings.Contains(string(bytes), "!2021-05-17 22:04:45 tag4 string2")
}, 5*time.Second, 10*time.Millisecond)
// dump the database
var rc int
for _, testMetric := range testMetrics {