From 66bf91f3ed614f1654bd3b2c4fb8a2172bac82ab Mon Sep 17 00:00:00 2001 From: Danielle Maywood Date: Tue, 29 Jul 2025 16:40:24 +0100 Subject: [PATCH 1/2] chore(agent/agentcontainers): skip part of test if on `darwin` Relates to https://github.com/coder/internal/issues/765 I've been unable to figure out how to fix this (unfortunately my macOS file system knowledge is lacking). Given that this test is causing a lot of flakes at the moment, I think it is best to skip this part of the test on macOS for now. --- agent/agentcontainers/watcher/watcher_test.go | 45 ++++++++++++------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/agent/agentcontainers/watcher/watcher_test.go b/agent/agentcontainers/watcher/watcher_test.go index 6cddfbdcee276..a603d9f75de13 100644 --- a/agent/agentcontainers/watcher/watcher_test.go +++ b/agent/agentcontainers/watcher/watcher_test.go @@ -4,6 +4,7 @@ import ( "context" "os" "path/filepath" + "runtime" "testing" "github.com/fsnotify/fsnotify" @@ -88,24 +89,34 @@ func TestFSNotifyWatcher(t *testing.T) { break } - err = os.WriteFile(testFile+".atomic", []byte(`{"test": "atomic"}`), 0o600) - require.NoError(t, err, "write new atomic test file failed") - - err = os.Rename(testFile+".atomic", testFile) - require.NoError(t, err, "rename atomic test file failed") - - // Verify that we receive the event we want. - for { - event, err := wut.Next(ctx) - require.NoError(t, err, "next event failed") - require.NotNil(t, event, "want non-nil event") - if !event.Has(fsnotify.Create) { - t.Logf("Ignoring event: %s", event) - continue + // TODO(DanielleMaywood): + // Unfortunately it appears this atomic-rename phase of the test is flakey on macOS. + // + // This test flake could be indicative of an issue that may present itself + // in a running environment. Fortunately, we only use this (as of 2025-07-29) + // for our dev container integration. We do not expect the host workspace + // (where this is used), to ever be ran on macOS, as containers are a linux + // paradigm. + if runtime.GOOS != "darwin" { + err = os.WriteFile(testFile+".atomic", []byte(`{"test": "atomic"}`), 0o600) + require.NoError(t, err, "write new atomic test file failed") + + err = os.Rename(testFile+".atomic", testFile) + require.NoError(t, err, "rename atomic test file failed") + + // Verify that we receive the event we want. + for { + event, err := wut.Next(ctx) + require.NoError(t, err, "next event failed") + require.NotNil(t, event, "want non-nil event") + if !event.Has(fsnotify.Create) { + t.Logf("Ignoring event: %s", event) + continue + } + require.Truef(t, event.Has(fsnotify.Create), "want create event: %s", event.String()) + require.Equal(t, event.Name, testFile, "want event for test file") + break } - require.Truef(t, event.Has(fsnotify.Create), "want create event: %s", event.String()) - require.Equal(t, event.Name, testFile, "want event for test file") - break } // Test removing the file from the watcher. From 94b7413e78eb99cfbd98291dce3ce73cdee337f3 Mon Sep 17 00:00:00 2001 From: Danielle Maywood Date: Tue, 29 Jul 2025 16:54:53 +0100 Subject: [PATCH 2/2] chore: copilot fix Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- agent/agentcontainers/watcher/watcher_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agent/agentcontainers/watcher/watcher_test.go b/agent/agentcontainers/watcher/watcher_test.go index a603d9f75de13..08222357d5fd0 100644 --- a/agent/agentcontainers/watcher/watcher_test.go +++ b/agent/agentcontainers/watcher/watcher_test.go @@ -95,7 +95,7 @@ func TestFSNotifyWatcher(t *testing.T) { // This test flake could be indicative of an issue that may present itself // in a running environment. Fortunately, we only use this (as of 2025-07-29) // for our dev container integration. We do not expect the host workspace - // (where this is used), to ever be ran on macOS, as containers are a linux + // (where this is used), to ever be run on macOS, as containers are a linux // paradigm. if runtime.GOOS != "darwin" { err = os.WriteFile(testFile+".atomic", []byte(`{"test": "atomic"}`), 0o600) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy