mirror of
https://github.com/moby/moby.git
synced 2025-12-09 10:01:25 +03:00
integ-cli: fix clock skew against remote test daemon
This fixes the `docker events`-related tests as they have been failing due to clock skew between CI machine and test daemon on some other machine (even 1-2 seconds of diff causes races as we pass local time to --since/--until). If we're running in same host, we keep using time.Now(), otherwise we read the system time of the daemon from `/info` endpoint. Fixes pretty much all events-related tests on windows CI. Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
This commit is contained in:
@@ -981,6 +981,32 @@ func readContainerFileWithExec(containerId, filename string) ([]byte, error) {
|
||||
return []byte(out), err
|
||||
}
|
||||
|
||||
// daemonTime provides the current time on the daemon host
|
||||
func daemonTime(t *testing.T) time.Time {
|
||||
if isLocalDaemon {
|
||||
return time.Now()
|
||||
}
|
||||
|
||||
body, err := sockRequest("GET", "/info", nil)
|
||||
if err != nil {
|
||||
t.Fatal("daemonTime: failed to get /info: %v", err)
|
||||
}
|
||||
|
||||
type infoJSON struct {
|
||||
SystemTime string
|
||||
}
|
||||
var info infoJSON
|
||||
if err = json.Unmarshal(body, &info); err != nil {
|
||||
t.Fatalf("unable to unmarshal /info response: %v", err)
|
||||
}
|
||||
|
||||
dt, err := time.Parse(time.RFC3339Nano, info.SystemTime)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
return dt
|
||||
}
|
||||
|
||||
func setupRegistry(t *testing.T) func() {
|
||||
testRequires(t, RegistryHosting)
|
||||
reg, err := newTestRegistryV2(t)
|
||||
|
||||
Reference in New Issue
Block a user